Interroger efficacement
des bases de donn´ees relationnelles
avec SPARQL et Ontop
Benjamin Cogrel
KRDB Research Centre for K...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
´Etapes
1 Pourquoi utiliser SPARQL
2 Comment reformule...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Analyse de donn´ees pour l’exploration p´etroli`ere
Co...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Utilisation simple : requˆetes pr´ed´efinies
G´eologue ...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Nouvelle requˆete : besoins utilisateurs (simplifi´es)
...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
D´efinition d’une nouvelle requˆete SQL
G´eologue Appli...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
D´efinition d’une nouvelle requˆete SQL
G´eologue Appli...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Requˆete SQL typique (extrait anonymis´e)
SELECT [...]...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Automatisation avec la plateforme Optique
Ontology-Bas...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Requˆete SPARQL de haut-niveau
Niveau conceptuel
Ind´e...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
SPARQL et les bases de donn´ees relationnelles
Transfo...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
SPARQL et les bases de donn´ees relationnelles
Transfo...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
SPARQL et les bases de donn´ees relationnelles
Transfo...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Mapping SQL-RDF
Format natif d’Ontop
Source (SQL)
SELE...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Reformulation de requˆete
R´e´ecriture
(optionnelle)
R...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Reformulation de requˆete
R´e´ecriture
(optionnelle)
R...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Optimisation de la requˆete SQL
Objectif : obtenir une...
Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion
Conclusion
Ontop
Logiciel libre (Apache 2)
Interfaces ...
Annexe
Profil d’ontologie OWL 2 QL
Principales fonctionnalit´es
Hi´erarchies de classes
(rdfs:subclassOf) et de propri´et´e...
Prochain SlideShare
Chargement dans…5
×

Interroger efficacement des bases de données relationnelles avec sparql et ontop

340 vues

Publié le

L’élaboration manuelle de nouvelles requêtes SQL à l’adresse de bases de données relationnelles ayant des schémas complexes est un processus lent et coûteux qui se révèle être critique pour de nombreuses industries. Ce processus nécessite de combiner deux types d’expertise : celle du domaine concerné (exprimer une question pertinente de façon précise) et celle de la base de données (localiser les informations recherchées dans la base de données). L’approche OBDA (Ontology-Based Data Access) vise à automatiser une partie de ce processus en (i) permettant aux utilisateurs d’exprimer les requêtes à partir d’un modèle conceptuel de leur domaine indépendant du schéma relationnel et (ii) en traduisant automatiquement ces requêtes dans le langage supporté par la base de données (SQL). Dans cette présentation, nous nous intéresserons au système OBDA développé à l’Université Libre de Bozen-Bolzano (Italie) dénommé Ontop. Ce projet, débuté en 2010, repose sur plusieurs standards du Web sémantique : (i) OWL 2 QL pour la modélisation des concepts du domaine, (ii) SPARQL pour la formulation des requêtes utilisateurs et (iii) R2RML pour l’exposition du contenu de la base de données sous forme de graphe RDF virtuel. Ce logiciel est disponible sous licence libre. Le principal enjeu pour un système OBDA est de générer des requêtes SQL optimisées pouvant être exécutées efficacement par le moteur de base de données. Ontop propose de nombreuses optimisations sémantiques et structurelles lui permettant d’obtenir une performance suffisamment élevée pour permettre l’exécution de requêtes complexes sur des bases de données de grande taille en un temps acceptable. Ce système intègre également des capacités d’inférence à faible coût ne nécessitant aucune matérialisation des données. Nous présenterons ensuite son intégration dans la plateforme développée dans le cadre du projet européen Optique et sur son utilisation par les géologues d’un de nos partenaires industriels, Statoil. À cette occasion, nous reviendrons sur les principaux défis introduits par ce cas d’usage industriel. L’équipe participant au développement d’Ontop au sein de l’Université Libre de Bozen-Bolzano est actuellement composée de Martin Rezk, Guohui Xiao, Sarah Komla Ebri, Elem Güzel, David Lanti, Elena Botoeva et Benjamin Cogrel. Elle est coordonnée par Diego Calvanese.
Par Benjamin Cogrel

Publié dans : Internet
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
340
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Interroger efficacement des bases de données relationnelles avec sparql et ontop

  1. 1. Interroger efficacement des bases de donn´ees relationnelles avec SPARQL et Ontop Benjamin Cogrel KRDB Research Centre for Knowledge and Data Universit´e Libre de Bozen-Bolzano, Italie Free University of Bozen-Bolzano SemWeb.Pro 2015, Paris
  2. 2. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion ´Etapes 1 Pourquoi utiliser SPARQL 2 Comment reformuler une requˆete SPARQL vers SQL Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (1/14)
  3. 3. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Analyse de donn´ees pour l’exploration p´etroli`ere Construction de mod`eles stratigraphiques Strat´egique Env. 900 g´eologues et g´eophysiciens Source principale : Exploitation and Production Data Store (EPDS) Donn´ees d’exploration et de production Env. 1500 tables Env. 1600 vues mat´erialis´ees Centaines de gigaoctets Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (2/14)
  4. 4. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Utilisation simple : requˆetes pr´ed´efinies G´eologue Application Requˆetes SQL pr´ed´efinies R´esultats Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (3/14)
  5. 5. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Nouvelle requˆete : besoins utilisateurs (simplifi´es) Tous les puits norv´egiens de tel type `a proximit´e de tel lieu ayant une perm´eabilit´e proche de telle valeur. Attributs : date de mise en service, pro- fondeur, etc. Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (4/14)
  6. 6. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion D´efinition d’une nouvelle requˆete SQL G´eologue Application Expert SI Traduction Besoin d’information Requˆete SQL R´esultats Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (5/14)
  7. 7. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion D´efinition d’une nouvelle requˆete SQL G´eologue Application Expert SI Traduction Besoin d’information Requˆete SQL R´esultats Prend 4 jours en moyenne ! Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (5/14)
  8. 8. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Requˆete SQL typique (extrait anonymis´e) SELECT [...] FROM db_name.table1 table1, db_name.table2 table2a, db_name.table2 table2b, db_name.table3 table3a, db_name.table3 table3b, db_name.table3 table3c, db_name.table3 table3d, db_name.table4 table4a, db_name.table4 table4b, db_name.table4 table4c, db_name.table4 table4d, db_name.table4 table4e, db_name.table4 table4f, db_name.table5 table5a, db_name.table5 table5b, db_name.table6 table6a, db_name.table6 table6b, db_name.table7 table7a, db_name.table7 table7b, db_name.table8 table8, db_name.table9 table9, db_name.table10 table10a, db_name.table10 table10b, db_name.table10 table10c, db_name.table11 table11, db_name.table12 table12, db_name.table13 table13, db_name.table14 table14, db_name.table15 table15, db_name.table16 table16 WHERE [...] table2a.attr1=‘keyword’ AND table3a.attr2=table10c.attr1 AND table3a.attr6=table6a.attr3 AND table3a.attr9=‘keyword’ AND table4a.attr10 IN (‘keyword’) AND table4a.attr1 IN (‘keyword’) AND table5a.kinds=table4a.attr13 AND table5b.kinds=table4c.attr74 AND table5b.name=‘keyword’ AND (table6a.attr19=table10c.attr17 OR (table6a.attr2 IS NULL AND table10c.attr4 IS NULL)) AND table6a.attr14=table5b.attr14 AND table6a.attr2=‘keyword’ AND (table6b.attr14=table10c.attr8 OR (table6b.attr4 IS NULL AND table10c.attr7 IS NULL)) AND table6b.attr19=table5a.attr55 AND table6b.attr2=‘keyword’ AND table7a.attr19=table2b.attr19 AND table7a.attr17=table15.attr19 AND table4b.attr11=‘keyword’ AND table8.attr19=table7a.attr80 AND table8.attr19=table13.attr20 AND table8.attr4=‘keyword’ AND table9.attr10=table16.attr11 AND table3b.attr19=table10c.attr18 AND table3b.attr22=table12.attr63 AND table3b.attr66=‘keyword’ AND table10a.attr54=table7a.attr8 AND table10a.attr70=table10c.attr10 AND table10a.attr16=table4d.attr11 AND table4c.attr99=‘keyword’ AND table4c.attr1=‘keyword’ AND table11.attr10=table5a.attr10 AND table11.attr40=‘keyword’ AND table11.attr50=‘keyword’ AND table2b.attr1=table1.attr8 AND table2b.attr9 IN (‘keyword’) AND table2b.attr2 LIKE ‘keyword’% AND table12.attr9 IN (‘keyword’) AND table7b.attr1=table2a.attr10 AND table3c.attr13=table10c.attr1 AND table3c.attr10=table6b.attr20 AND table3c.attr13=‘keyword’ AND table10b.attr16=table10a.attr7 AND table10b.attr11=table7b.attr8 AND table10b.attr13=table4b.attr89 AND table13.attr1=table2b.attr10 AND table13.attr20=’‘keyword’’ AND table13.attr15=‘keyword’ AND table3d.attr49=table12.attr18 AND table3d.attr18=table10c.attr11 AND table3d.attr14=‘keyword’ AND table4d.attr17 IN (‘keyword’) AND table4d.attr19 IN (‘keyword’) AND table16.attr28=table11.attr56 AND table16.attr16=table10b.attr78 AND table16.attr5=table14.attr56 AND table4e.attr34 IN (‘keyword’) AND table4e.attr48 IN (‘keyword’) AND table4f.attr89=table5b.attr7 AND table4f.attr45 IN (‘keyword’) AND table4f.attr1=‘keyword’ AND table10c.attr2=table4e.attr19 AND (table10c.attr78=table12.attr56 OR (table10c.attr55 IS NULL AND table12.attr17 IS NULL)) Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (6/14)
  9. 9. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Automatisation avec la plateforme Optique Ontology-Based Data Access (OBDA) G´eologue Application Ontop 1. Requˆete SPARQL (haut-niveau) 4. R´esultats SPARQL 2. Requˆete SQL (bas-niveau) 3. R´esultats SQL Onto- logie Map- pings Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (7/14)
  10. 10. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Requˆete SPARQL de haut-niveau Niveau conceptuel Ind´ependant du stockage Terminologie du domaine formalis´ee (ontologie) Requˆetes concises SELECT DISTINCT ?wellbore ?wc ?well ?length WHERE { ?wellbore npdv:wellboreForDiscovery ?discovery; npdv:belongsToWell ?well. ?wc npdv:coreForWellbore ?wellbore; npdv:coresTotalLength ?length. FILTER (?length < 56796) } Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (8/14)
  11. 11. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion SPARQL et les bases de donn´ees relationnelles Transformation d’une BD relationnelle en un graphe RDF Pour ˆetre requˆet´ee avec SPARQL Mappings SQL-RDF (R2RML) Contraintes de l’ontologie (opt.) Virtuelle ou mat´erielle RDFR2RML Graphe RDF mat´erialis´e Mat´erialisation du graphe RDF satur´e − Maintenance + Profils d’ontologie expressifs (comme OWL 2 RL) Graphe RDF virtuel Reformulation de requˆete + Aucune mat´erialisation − Profil d’ontologie moins expressif (OWL 2 QL) * Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (9/14)
  12. 12. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion SPARQL et les bases de donn´ees relationnelles Transformation d’une BD relationnelle en un graphe RDF Pour ˆetre requˆet´ee avec SPARQL Mappings SQL-RDF (R2RML) Contraintes de l’ontologie (opt.) Virtuelle ou mat´erielle RDFR2RML Graphe saturé Graphe RDF mat´erialis´e Mat´erialisation du graphe RDF satur´e − Maintenance + Profils d’ontologie expressifs (comme OWL 2 RL) Graphe RDF virtuel Reformulation de requˆete + Aucune mat´erialisation − Profil d’ontologie moins expressif (OWL 2 QL) * (*) Inclut toutefois un m´ecanisme d’inf´erence absent du profil OWL 2 RL Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (9/14)
  13. 13. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion SPARQL et les bases de donn´ees relationnelles Transformation d’une BD relationnelle en un graphe RDF Pour ˆetre requˆet´ee avec SPARQL Mappings SQL-RDF (R2RML) Contraintes de l’ontologie (opt.) Virtuelle ou mat´erielle RDFR2RML Graphe saturé Graphe RDF mat´erialis´e Mat´erialisation du graphe RDF satur´e − Maintenance + Profils d’ontologie expressifs (comme OWL 2 RL) Graphe RDF virtuel Reformulation de requˆete + Aucune mat´erialisation − Profil d’ontologie moins expressif (OWL 2 QL) * (*) Inclut toutefois un m´ecanisme d’inf´erence absent du profil OWL 2 RL Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (9/14)
  14. 14. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Mapping SQL-RDF Format natif d’Ontop Source (SQL) SELECT wellbore_s, year, month, day FROM wellbore WHERE wellbore.r_existence_kd_nm = ’actual’ Cible (RDF, Turtle-like) :Wellbore-{wellbore_s} :completionDate "{year}-{month}-{day}"^^xsd:date Format ´equivalent au standard R2RML (support´e, utilis´e dans Optique) Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (10/14)
  15. 15. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Reformulation de requˆete R´e´ecriture (optionnelle) Reformulation `a partir des mappings Optimisation SPARQL SPARQL SQL SQL Rˆole de l’ontologie OWL 2 QL Marginal : r´e´ecriture de la requˆete SPARQL (cas tr`es particuliers) Principal : saturation des mappings (hors-ligne) Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (11/14)
  16. 16. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Reformulation de requˆete R´e´ecriture (optionnelle) Reformulation `a partir des mappings satur´es Optimisation SPARQL SPARQL SQL SQL Rˆole de l’ontologie OWL 2 QL Marginal : r´e´ecriture de la requˆete SPARQL (cas tr`es particuliers) Principal : saturation des mappings (hors-ligne) Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (11/14)
  17. 17. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Optimisation de la requˆete SQL Objectif : obtenir une requˆete SQL. . . Proche de celles ´ecrites par des humains Adapt´ee aux planificateurs existants Optimisations structurelles Jointures d’unions vers unions de jointures D´ecomposition des IRIs pour faciliter les jointures Optimisations s´emantiques ´Elimination des unions et des jointures redondantes `A partir de contraintes fonctionnelles Contraintes fonctionnelles Cl´es primaires, uniques ou ´etrang`eres Implicites dans les processus m´etiers (Statoil) Vitales pour la reformulation de requˆete ! Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (12/14)
  18. 18. Pourquoi utiliser SPARQL? Traitement de requˆetes SPARQL Conclusion Conclusion Ontop Logiciel libre (Apache 2) Interfaces Sesame et OWLAPI Extension Prot´eg´e Int´egration Plateforme Optique (FluidOps) Stardog 4.0 (graphes virtuels) Quelques exp´erimentations Agr´egation SPARQL owl:sameAs via les mappings Support partiel de SWRL NoSQL Liens Github : ontop/ontop ontop4obda@googlegroups.com Twitter : @ontop4obda http://optique-project.eu Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (13/14)
  19. 19. Annexe Profil d’ontologie OWL 2 QL Principales fonctionnalit´es Hi´erarchies de classes (rdfs:subclassOf) et de propri´et´es (rdfs:subPropertyOf) Signature de propri´et´es (rdfs:domain, rdfs:range) Propri´et´es inverses (owl:inverseOf) Disjonction de classes (owl:disjointWith) Participation obligatoire (avanc´e) Manques Identit´e d’individus (owl:sameAs) Contraintes de cardinalit´e (propri´et´e fonctionnelle, etc.) Et bien d’autres En r´esum´e Ontologies l´eg`eres Un peu plus que RDFS Traductibilit´e garantie vers SQL Benjamin Cogrel (Universit´e Libre de Bolzano) Interroger des BDR avec SPARQL et Ontop 05/11/2015 (14/14)

×