Laboratoire d’Informatique Scientifique et Industrielle École Nationale Supérieure de Mécanique et d’Aérotechnique et Université de Poitiers OntoQL, un langage d’exploitation des bases de données à base ontologique Présenté par Stéphane JEAN le 5 décembre 2007 à l’ENSMA, Futuroscope Laboratoire Informatique Scientifique et Industrielle (LISI) sous la direction de Yamine AIT-AMEUR et Guy PIERRA Motivation Base de Données à Base Ontologique Utilisation accrue des ontologies Nombreux modèles d’ontologies : RDF-Schema, OWL, PLIB, etc. Gros volumes de données à base ontologique Méta-données du Web Sémantique Bases de données composants et e-catalogue => Bases de Données à Base Ontologique (BDBO) Ontologies + Données + Liens Ontologies / Données Données Ontologies liens 2 Motivation Langage d’exploitation de BDBO Utilisation des ontologies par différentes communautés BD : Intégration, Indexation Sémantique IA : Web Sémantique Linguistique informatique : traitement du langage naturel => Grande hétérogénéité des architectures de BDBO Différents modèles d’ontologies Différents schémas de représentation RDF-Schema pour RDF-Suite, Sesame, RSTAR ... Ontologies Données Table de triplets pour 3Store, Jena1 ... PLIB pour OntoDB, OntoDB2 Représentation binaire pour RDF-Suite, Sesame ... OWL pour DLDB, OntoMS Représentation horizontale pour OntoMS, OntoDB ... Unification des modèles d’ontologies Elaboration d’un langage d’exploitation pour les BDBO 3 Motivation Intégration de bases de données Problème : l’hétérogénéité sémantique Conflits de nommage Conflits de structures Conflits d’unités de mesures Ontologie partagée Ontologie Modèle Logique Ontologie Customer Modèle Logique Clients ID Name VIP Credit Address ID Nom Crédit Adresse AAA Dupont Yes 1 000$ dup@far AAA Dupont 5 000€ 01 avenue Clément Ader Banque 1 Banque 2 Une solution : les BDBO [NGuyen Xuan 06] Préservation d’une compatibilité avec les BD usuelles 4 PLAN 1Architecturede deBDBO BDBOcible cible 1- Architecture Notion d’ontologie Modèle d’ontologies 2- Exigences pour le langage Base de données à base ontologique 3- Le langage OntoQL 2- Exigences pour le langage 4- Mise en œuvre 3- Le langage OntoQL 5- Conclusion et perspectives 4- Mise en œuvre 5- Conclusion et perspectives 5 Ontologie de domaine Une définition 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Qu’est-ce qu’une ontologie ? « An explicit specification of a conceptualization » [Gruber 93] Une ontologie = conceptualisation d'un domaine classes et propriétés Formelle Consensuelle Référençable « un dictionnaire formel et consensuel des catégories et propriétés d’entités existant dans un domaine d’étude et des relations qui les lient » 6 Typologie des ontologies 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre BD Vocabulaire canonique des concepts d’un domaine identifiants + notions primitives {classes / propriétés / types} Ontologie Conceptuelle Canonique (OCC) IA Possibilités de déductions Opérateurs d’équivalence conceptuelle Ontologie Conceptuelle Non Canonique (OCNC) Linguistique Informatique Termes d’un domaine { mots } + relations de similarités et linguistiques Ontologie Linguistique (OL) Trois points de vue = trois types d'ontologies complémentaires => modèle en couches 7 Liens entre les différents types d’ontologies : le modèle en oignon OCC = Prolongement naturel des modèles conceptuels • • • 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Couche Caractérisation Référence pour l’intégration sémantique Accès au niveau connaissance Vocabulaire canonique pour l’échange Couche Intégration Couche Discours OL OCNC OCNC = Introduction d’équivalence conceptuelle • • Possibilité d’inférence Flexibilité pour l’intégration OL = Représentation linguistique • • expression de propriétés Règles de dérivation OCC expression de classes Logique de description Fonction de Dérivation Traitement du langage naturel Interface langagière pour les données Modèle en oignon 3 couches aux capacités spécifiques Coexistence des différents modèles 8 Les modèles d’ontologies et le modèle en oignon 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre RDF-Schema ~ Classe, Propriété, Type de données PLIB Noyau + Fonctions de dérivation OWL Noyau + Opérateurs des Logiques de Description F-Logic Noyau + Opérateurs de la Logique des Frames LO OCNC PLIB OWL Expressions booléennes de classes, ... Fonctions ~ RDF-S PLIB Classe, Property, ~ RDF-S Datatype OCC de dérivation F-Logic Règles déductives … Modèle d’ontologies unifié Modèle noyau extensible 9 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Une typologie des BDBO Métabase TRIPLES +Flexibilité SUBJECT PREDICATE OBJECT Etudiant - Efficacité rdf:type rdfs:class Etudiant rdfs:subClass Personne … … … Etudiant#1 rdf:type Etudiant Etudiant#1 nom Peter • Ajout/Suppression Personne rdf:type de propriétés/instances rdfs:class Données Ontologie • Beaucoup d' auto-jointures nom rdf:type rdf:property • Clustering nom rdf:range xsd:String Type 1 : Jena, 3Store Métabase Instance + Meilleure efficacité [RDF-Suite] … … … Class Property Ontologie Données - Modèle d’ontologies figé ID name ID name Student 1 Person 3 name ID ID VALUE ID VALUE 2 Student 4 grade student#1 student#1 Peter student#1 PHD name grade Type 2 : Sesame, RDF-Suite Entity Attribute ID name ID name 1 Class 3 ID 2 Property 4 name Class Property ID name ID name 1 Person 3 name 2 Student 4 grade Métaschéma Ontologie Métabase + Passage à l’échelle + Modèle d’ontologies évolutif Données Student - Cadre d’hypothèses ID name grade • Typage des propriétés Student# fort Peter PHD … … • Mono-instantiation Type 3 : OntoDB[Dehainsala 07] … 10 Architecture cible Généralisation des BDBO de type 3 Méta-Schéma OWL 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Métabase PLIB ~ RDF-S F-Logic Ontologie Données Compatibilité avec l’architecture ANSI/SPARC Ajout du niveau ontologique suivant le modèle en couches Représentation du modèle d’ontologies utilisé Besoin d’un langage homogène pour ce modèle cible 11 PLAN 1- Architecture de BDBO cible 2- Exigences pour le langage Principales exigences Les langages SPARQL et RQL 3- Le langage OntoQL 4- Mise en œuvre 5- Conclusion et perspectives 12 Principales exigences pour un langage d’exploitation de BDBO Méta-Schéma 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Métabase OWL PLIB ~ RDF-S F-Logic Ontologie Données - Exploitation des données au niveau logique : compatibilité SQL - Exploitation des données au niveau ontologique indépendance par rapport à une représentation logique Selon les 3 couches du modèle en oignon - Indépendance vis-à-vis d’un modèle d’ontologies particulier 13 Les langages d’exploitation pour les BDBO de type I Langages définis pour exploiter des données RDF • Exemples : SPARQL, RDQL, etc. Langage représentatif : SPARQL • W3C Proposed Recommendation • « graph-matching query language » 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Métabase Données BDBO de Type 1 SELECT ?p ?email FROM http://example.org/foaf/aliceFoaf WHERE { ?p type Person . ?p mbox ?email ?p name ?name FILTER (name=“durand”) } ORDER BY DESC (?email) LIMIT 5 14 Analyse du langage SPARQL 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Quelles sont les instances de la classe personne ? Métabase SELECT ?p WHERE { ?p rdf:type Personne } Données SUBJECT TRIPLES PREDICATE OBJECT Etudiant rdfs:subClassOf Personne Salarié rdfs:subClassOf Personne … … … durand rdf:type Personne jean morin rdf:type Personne Etudiant dupont rdf:type Personne Salarié morin rdf:type Etudiant dupont rdf:type Salarié ?p durand ?p ?p durand durand morin morin dupont directes dupont Instances liées à leurs classes Instances liées leurs classes directes et enàfonction de l’implantation indirectes - Exploitation des données au niveau logique : Compatibilité SQL - Exploitation des données au niveau ontologique : dépend de l’implantation - Indépendance d’un modèle d’ontologies particuliercaché dans l’interpréteur 15 Les langages d’exploitation pour les BDBO de type II Langages définis pour exploiter des ontologies RDF-Schema et leurs instances • Exemples : RQL, SeRQL, eRQL, etc. Langage représentatif : RQL • Implanté sur RDF-Suite et Sesame • Complété par RUL et RVL (LMD et LDV) • Notion d’expression de chemin généralisée 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Métabase Ontologie Données BDBO de type 2 SELECT P, Email FROM Person{P}.name{Name}, {P}mbox{Email} WHERE Name=“durand” 16 Analyse du langage RQL Quelles Quelles sont sont les les classes instances des ontologies de la classe? personne ? Métabase Ontologie ID Person Student Class nameFR Personne Etudiant Employee Salarié SELECT * SELECT P FROM Class{C} FROM Person{P} Données nameEN … Person Student Personne Salarié ID ID ID durand jean dupont Employee Subsomption sub sup Student Personne Employee Personne 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Etudiant Salarié C Person SELECT P Student FROM ^Person{P} Employee P durand morin dupont P durand ID morin Requête sur les ontologies Requête sur les données - Exploitation des données au niveau logique : Compatibilité SQL - Exploitation des données au niveau ontologique (pas OL) - Indépendance d’un modèle d’ontologies particulier 17 PLAN 1- Architecture de BDBO cible 2- Exigences pour le langage 3- Le langage OntoQL Exigence 1 : Compatibilité SQL Exigence 2 : Exploitation niveau ontologique Exigence 3 : Exploitation des ontologies 4- Mise en œuvre 5- Conclusion et perspectives 18 Exigence 1 : Exploitation des données au niveau logique 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Sous-ensemble de SQL supporté par les SGBD usuels LID Métabase SELECT id, pgender FROM Table_Person id pgrade p1 M Données LMD INSERT INTO Table_Person VALUES (‘p2‘, ‘Tony’, ‘M’) ID p1 p2 Table_Person pname pgender Jack M Tony M Table_Student ID pname pgrade LDD CREATE TABLE Table_Student ( id INTEGER, pname VARCHAR(32), pgrade VARCHAR(32) ) 19 Exigence 2 : Exploitation des données au niveau ontologique, couche OCC 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Extension et adaptation de SQL99 Distinction niveaux logique/ontologique : Métabase SET NAMESPACE l = http://www.lisi.ensma.fr LID 1 SELECT l:oid, l:gender FROM l:Person ONLY (l:Person) LMD Entity ID oid p1 gender M INSERT INTO l:Person VALUES (‘Tony‘, ‘M’) e1 NULL LDD Distinction niveaux ontologie/modèle d’ontologie : # 2 Attribute name ID Class 3 ID 4 name Property name Ontologie ID Person Student Class nameFR Personne Etudiant nameEN … Person Student Subsomption sub sup Employee Personne Student Personne CREATE #Class l:Student UNDER l:Person ( DESCRIPTOR (#name[fr]=‘Etudiant’) #Property ( l:grade String ) ) CREATE EXTENT OF l:Student (name, grade) ID p1 p2 Données Table_Person pname pgender Jack M Tony M Table_Employee ID pname psalary e1 Tim 10000 Table_Employee ID pname pgrade Couche OCC 20 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Exigence 2 : Exploitation des données au niveau ontologique, couche OCNC Langage de définition de vues (LDV) Métabase Définition de classes OCNC Entity ID Ex : Homme = Personne & sexe = ‘M’ CREATE #Class Homme AS VIEW UNDER Personne Définition d’instances CREATE VIEW OF Homme AS SELECT * FROM Personne WHERE gender = ‘M’ 1 2 Attribute name ID Class 3 ID 4 name Property name Ontologie ID Personne Homme Données Class nameFR Personne Homme isView False True Subsomption sub sup Homme Personne … ID p1 … Table_Person pname pgender Jack M … … ID p1 … Vue_Homme pname pgender Jack M … … Couche OCNC 21 Exigence 2 : Exploitation des données au niveau ontologique, couche OL 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Utilisation de termes dans les instructions OntoQL Ex : rechercher l’identifiant et le sexe des personnes Métabase Entity ID 1 SELECT oid, gender FROM Person SET LANGUAGE = ‘EN’ ‘FR’ sexe SELECT oid, gender Personne FROM Person 2 Attribute name ID Class 3 ID 4 name Property name Ontologie ID Person Student Class nameFR Personne Etudiant ID gender Person nameFR sexe Données nameEN … Person Student nameEN … gender ID p1 … Table_Person pname pgender Jack M … … Table_Student ID pname pgrade s1 Peter PHD … … … Couche OL 22 Exigence 3 : Indépendance d’un modèle d’ontologies particulier 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Définition d’un modèle d’ontologies noyau extensible (préfixe #) Langage de Définition d’Ontologies (LDO) PLIB CREATE ENTITY #PLIB_Class ~ RDF-S UNDER #Class ( #note String) OWL CREATE ENTITY #OWL_Class UNDER #Class ( #deprecated Boolean) LMO INSERT INTO #PLIB_Class (#name, #note) VALUES (‘Personne’, ‘…’) LIO SELECT #name[fr], #definition FROM #Class Métabase Métaschéma Entity ID name 1 Class 2 PLIB_Class 3 OWL_Class Attribute ID name 10 id 11 name 12 note 13 deprecated Ontologie Class nameFR ID ID Person Données … PLIB_Class nameFR note Person … ID Employee name[fr] definition Personne … Salarié … … … OWL_Class nameFR deprecated … Salarié False ID p1 … Table_Person pname pgender Jack M … … Table_Student ID pname pgrade s1 Peter PHD … … … 23 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Interrogation simultanée des ontologies et des données Combinaison du LID et du LIO Ontologie vers Données SELECT C.#name[fr], i.oid FROM #Class AS C , C AS i WHERE C.#name LIKE ‘Per%’ name[fr] oid Personne p1 Personne s1 … … Métabase Entity ID name 1 Class 2 Property Ontologie ID Person Student Données vers Ontologie SELECT p.name, typeof(p) .#name[fr] FROM Personne p name #name[fr] Jack Personne Peter Etudiant … … Attribute ID name 10 id 11 name Class nameFR Personne Etudiant Subsomption sub sup Student Person Données nameEN … Person Student C AS i typeOf(.) LIO ID p1 … ID s1 … Table_Person pname pgender Jack M … … Table_Student pname pgrade Peter PHD … … LID 24 PLAN 1- Architecture de BDBO cible 2- Exigences pour le langage 3- Le langage OntoQL 4- Mise en œuvre Formalisation Prototypage 5- Conclusion et perspectives 25 Formalisation Modèle formel d’une BDBO 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Model M = (E, A, OC, C, P, Extent) Meta-schema: E, A, OC SuperEntities Type AttDomain E 2E OC E Méta-Schéma OWL PLIB ~ RDF-S AE AttRange AE Val OC A OC Métabase F-Logic Ontologie Ontology: C, P SuperClasses C 2C propDomain P C propRange PC Données Nomination: Content: Extent, I C Extent Type I Extent Abstraction: SchemaProp Extent 2p Extent C Val IPI 26 Formalisation Algèbre OntoAlgebra pour les BDBO 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Conçue à partir de l’algèbre Encore définie pour les BDOO Signature des opérateurs TUPLE ADT), …, (String, ADT)>] x 2V Relation[<(String, x … Relation TUPLE [<(String, ADT), …, (String, ADT)>] x 2V Tuples composés de Principaux : OntoProject, OntoSelect, OntoOJoin • valeursopérateurs simples, • d’éléments des ontologies (OC) ou String x Fonction Relation OntoProject : Relation • d’instances de classesx(I)2 Applique une ou plusieurs fonctions aux tuples en paramètre OntoSelect : Relation x Prédicat Relation Supprime les tuples de la relation en entrée ne respectant pas un prédicat donné OntoOJoin : Relation x Relation X Predicat Relation Réalise la jointure entre deux relations 27 Formalisation Sémantique des opérateurs 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Opérateurs d’interrogation des ontologies éléments des ontologies = instance d’un modèle d’ontologies (un modèle orienté-objet) Sémantique des opérateurs de ENCORE Opérateurs d’interrogation des données Propriétés non valuées Introduction de la valeur NULL Opérateurs d’interrogation des ontologies et des données Lien entre les éléments de l’ontologie et les instances de classes TYPEOF : I C OntoAlgebra Interprétation du langage OntoQL Requête OntoQL Expression algébrique de OntoAlgebra 28 Formalisation Techniques d’optimisation 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Règles d’équivalence : Ex : pousser les sélections en bas de l’arbre algébrique Technique d’évaluation partielle : Propriété non utilisée => pas d’accès à la partie données pour cette propriété SELECT * FROM Person WHERE gender = ‘M’ SELECT * FROM ONLY(Person) WHERE gender = ‘M’ UNION SELECT * FROM ONLY(Employee) WHERE gender = ‘M’ UNION SELECT * FROM ONLY(Student) WHERE gender = ‘M’ SELECT * FROM ONLY(Person) WHERE gender = ‘M’ Méta-schéma Métabase Données Ontologie ID Person Employee Student Class nameFR nameEN … Personne Person Salarié Employee Etudiant Student Subsomption sub sup Employee Person Student Person ID p1 Table_Person pname pgender Jack M Table_Employee ID pname psalary e1 Tim 10000 Table_Student ID pname pgrade s1 John PhD 29 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Prototypage Implantation de OntoQL sur OntoDB Modèle de données Meta-schema: E, A, OC Partie méta-schéma Id 11 Entity name Item_Class … … Id 12 Attribute name name … … Partie ontologie Id 11 rdfs:Class label Personne … … rdf:Property Id label … 12 email … Item_Class name Personne Partie méta-base Partie données … … rid 111 EPersonne Pname Pemail Durand dura@ Property_det rid name … 12 email … rid 112 ECours Ptitle Pnote BD 20 rid 11 Personne ID 111 name ID VALUE 111 Durand email ID VALUE 111 dura@ Cours ID 112 title ID VALUE 112 BD note ID VALUE 112 4 Représentation binaire Ontology: C, P Content: Extent, I Nomination: C Extent 30 Prototypage Traitement d’une requête OntoQL 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Traitement d’une requête OntoQL Requête OntoQL Expression algébrique OntoAlgebra Expression algébrique Requête SQL Algèbre Relationnelle OntoDB Exemple SELECT nom as n FROM Personne OntoQL OntoProject ext* <(n, nom)> Personne Arbre OntoAlgebra EPersonnepnomn ESalarié nulln Arbre SELECT pnom AS n FROM EPersonne UNION SELECT pnom AS n FROM ESalarié SQL Algèbre Relationnelle 31 Prototypage Outils associés au langage OntoQL 1- Architecture cible 2- Exigences 3- Le langage OntoQL 4- Mise en œuvre Méta-Schéma Outils Métabase OntoQL+ OntoQBE OntoAPI JOBDBC Moteur OntoQL Ontologie Données SPARQL Recherche par mots-clés Applications Projet ANR e-WOK HUB : Géosciences Projet EpiSEM : Pétrographie Bases de données techniques : Ingénierie 32 PLAN 1- Architecture de BDBO cible 2- Exigences pour le langage 3- Le langage OntoQL 4- Mise en œuvre 5- Conclusion et perspectives 33 Conclusion 1. Théorie des ontologies : modèle d’ontologies unifié à sémantique partagée et extensible 2. Conception des BD : extension de l’architecture ANSI/SPARC 3. Définition d’un langage d’exploitation de BDBO : le langage OntoQL Exploitation des données au niveau logique : compatibilité SQL Exploitation des données au niveau ontologique (OCC, OCNC, OL) Indépendance vis-à-vis d’un modèle d’ontologies donné (LDO, LMO, LIO) 4. Mise en oeuvre du langage OntoQL Formalisation : modèle de données d’une BDBO + OntoAlgebra Prototypage : implantation de OntoQL sur OntoDB + outils associés JOBDBC MétaSchéma Métabase OntoProject : Relation x 2String x Fonction Relation OntoQL+ OntoQBE … Moteur OntoQL Ontologie Données OntoSelect : Relation x Predicat Relation OntoOJoin : Relation x Relation X Predicat Relation Model = (E, A, OC, C, P, Extent) 34 Perspectives Évolution du langage OntoQL Extension sémantique du modèle noyau de OntoQL • Requêtes paramétriques • Approche « plugin » Optimisation des requêtes OntoQL • Techniques usuelles (Vues matérialisées, Index, etc.) • Techniques particulières (Partitionnement par langue naturelle) Construction automatique des relations de subsomptions Autres contextes d’utilisation de OntoQL Ingénierie Dirigée par les Modèles : transformation de modèles Indexation sémantique de base de données Ontologies émergentes : enrichissement d’ontologies locales 35 Merci de votre écoute ? 36