Festival Raisons d'agir 2013, Poitiers, France : « Education et émancipation »
Laboratoire dInformatique Scientifique et Industrielle École Nationale Supérieure de Mécanique et...
-
Upload
alexandrine-casanova -
Category
Documents
-
view
111 -
download
6
Transcript of Laboratoire dInformatique Scientifique et Industrielle École Nationale Supérieure de Mécanique et...
Laboratoire d’Informatique Scientifique et Industrielle
École Nationale Supérieure de Mécanique et d’Aérotechniqueet Université de Poitiers
OntoQL, un langage d’exploitation des bases de données à base
ontologique
Présenté par Stéphane JEAN
sous la direction de Yamine AIT-AMEUR et Guy PIERRA
le 5 décembre 2007 à l’ENSMA, Futuroscope
Laboratoire Informatique Scientifique et Industrielle (LISI)
2
MotivationBase de Données à Base Ontologique
Ontologies
liens
Données
=> Bases de Données à Base Ontologique (BDBO) Ontologies + Données + Liens Ontologies / Données
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
3
MotivationLangage d’exploitation de BDBO
Ontologies Données
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
Unification des modèles d’ontologies Elaboration d’un langage d’exploitation pour
les BDBO
RDF-Schema pourRDF-Suite, Sesame, RSTAR ...PLIB pourOntoDB, OntoDB2 OWL pourDLDB, OntoMS
Table de triplets pour 3Store, Jena1 ...
Représentation binaire pour RDF-Suite, Sesame ...Représentation horizontale pour OntoMS, OntoDB ...
Différents schémas de représentation
Différents modèles d’ontologies
4
MotivationIntégration de bases de données
Problème : l’hétérogénéité sémantique
Banque 1 Banque 2
Clients
ID Nom Crédit Adresse
AAA Dupont 5 000€ 01 avenue Clément Ader
Customer
ID Name VIP Credit Address
AAA Dupont Yes 1 000$ dup@far
Conflits de nommage Conflits de structures
Conflits d’unités de mesures
Une solution : les BDBO [NGuyen Xuan 06]
Préservation d’une compatibilité avec les BD usuelles
Ontologie partagée
Modèle Logique Modèle Logique Modèle Logique Ontologie Modèle Logique Ontologie
5
PLAN
1- Architecture de BDBO cible
2- Exigences pour le langage
3- Le langage OntoQL 4- Mise en œuvre
5- Conclusion et perspectives
1- Architecture de BDBO cible Notion d’ontologie
Modèle d’ontologies Base de données à base ontologique
2- Exigences pour le langage
3- Le langage OntoQL 4- Mise en œuvre
5- Conclusion et perspectives
6
Ontologie de domaineUne définition
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 »
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
7
Typologie des ontologies
BD Vocabulaire canonique des concepts d’un domaine
Trois points de vue = trois types d'ontologies complémentaires => modèle en couches
identifiants + notions primitives {classes / propriétés / types}
IA Possibilités de déductions
Linguistique Informatique Termes d’un domaine
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Ontologie Conceptuelle Canonique (OCC)
Opérateurs d’équivalence conceptuelle
Ontologie Conceptuelle Non Canonique (OCNC)
{ mots } + relations de similarités et linguistiques
Ontologie Linguistique (OL)
• Traitement du langage naturel• Interface langagière pour les
données
OL = Représentation linguistique
Couche Discours
OL
• Référence pour l’intégration sémantique
• Accès au niveau connaissance• Vocabulaire canonique pour
l’échange
8
Liens entre les différents types d’ontologies : le modèle en oignon
OCC = Prolongement naturel des modèles conceptuels
Couche Intégration
OCNC
expression de classes
Logique de description
Fonction de Dérivation
expression de propriétés
Règles de dérivation
OCNC = Introduction d’équivalence conceptuelle• Possibilité d’inférence
• Flexibilité pour l’intégration
Modèle en oignon 3 couches aux capacités spécifiques Coexistence des différents modèles
OCC
Couche Caractérisation
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
PLIB
9
Les modèles d’ontologies et le modèle en oignon
Modèle d’ontologies unifié Modèle noyau extensible
~ RDF-S
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
OCNC
OCC
PLIBFonctions
de dérivation
OWLExpressions booléennes de classes,
...
F-LogicRègles déductives …
~ RDF-SClasse,
Property,Datatype
LO
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
10
Une typologie des BDBO
Type 1 : Jena, 3Store
Métabase
Données
DonnéesOntologie
Métabase
Type 2 : Sesame, RDF-Suite
MétabaseMétaschéma
DonnéesOntologie
Type 3 : OntoDB[Dehainsala 07]
+Flexibilité
- Efficacité• Ajout/Suppression de propriétés/instances
• Beaucoup d' auto-jointures • Clustering
+ Meilleure efficacité [RDF-Suite]
- Modèle d’ontologies figé
- Cadre d’hypothèses
+ Modèle d’ontologies évolutif+ Passage à l’échelle
• Typage fort des propriétés
• Mono-instantiation
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
TRIPLES
SUBJECT PREDICATE OBJECT
Personne rdf:type rdfs:class
Etudiant rdf:type rdfs:class
Etudiant rdfs:subClass Personne
nom rdf:type rdf:property
nom rdf:range xsd:String
… … …
Etudiant#1 rdf:type Etudiant
Etudiant#1 nom Peter
… … …
Ontologie
Instance
Student
ID
student#1
name
ID VALUE
student#1 Peter
grade
ID VALUE
student#1 PHD
Property
ID name
3 name
4 grade
Class
ID name
1 Person
2 Student
Property
ID name
3 name
4 grade
Class
ID name
1 Person
2 Student
Attribute
ID name
3 ID
4 name
Entity
ID name
1 Class
2 Property
Student
ID name grade
Student# Peter PHD
… … …
11
Architecture cibleGénéralisation des BDBO de type
3Métabase
DonnéesOntologie
Méta-Schéma
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
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
F-Logic
OWL PLIB
~ RDF-S
12
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
13
Principales exigences pour un langage d’exploitation de BDBO
Métabase
DonnéesOntologie
Méta-Schéma
- 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
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
F-Logic
OWL PLIB~ RDF-S
14
Les langages d’exploitation pour les BDBO de type I
Langages définis pour exploiter des données RDF• Exemples : SPARQL, RDQL, etc.
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
Langage représentatif : SPARQL• W3C Proposed Recommendation• « graph-matching query language »
Métabase
Données
BDBO de Type 1
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Analyse du langage SPARQL
Quelles sont les instances de la classe
personne ?
TRIPLES
SUBJECT PREDICATE OBJECT
Etudiant rdfs:subClassOf Personne
Salarié rdfs:subClassOf Personne
… … …
durand rdf:type Personne
jean rdf:type Personne
dupont rdf:type Personne
morin rdf:type Etudiant
dupont rdf:type Salarié
Métabase
SELECT ?pWHERE { ?p rdf:type Personne }
Données
15
- Exploitation des données au niveau logique : Compatibilité SQL
- Exploitation des données au niveau ontologique
- Indépendance d’un modèle d’ontologies particulier
Instances liées à leurs classes directesInstances liées à leurs classes directes et indirectes
: dépend de l’implantation
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
caché dans l’interpréteur
TRIPLES
SUBJECT PREDICATE OBJECT
Etudiant rdfs:subClassOf Personne
Salarié rdfs:subClassOf Personne
… … …
durand rdf:type Personne
morin rdf:type Etudiant
dupont rdf:type Salarié
?p
durand
?p
durand
morin
dupont
en fonction de l’implantation
?p
durand
morin
dupont
16
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.
SELECT P, Email
FROM Person{P}.name{Name}, {P}mbox{Email}
WHERE Name=“durand”
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
DonnéesOntologie
Métabase
BDBO de type 2
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Analyse du langage RQL
C
Person
Student
Employee
P
durand
P
durand
morin
dupont
Métabase
SELECT PFROM Person{P}DonnéesOntologie
SELECT PFROM ^Person{P}
Salarié
ID
jean
17
Requête sur les données - Exploitation des données au niveau logique : Compatibilité
SQL
- Exploitation des données au niveau ontologique
- Indépendance d’un modèle d’ontologies particulier
Requête sur les ontologies
Quelles sont les instances de la classe personne ?
Quelles sont les classes des ontologies ?
SELECT *FROM Class{C}
(pas OL)
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Personne
ID
durand
Salarié
ID
dupont
Etudiant
ID
morin
Class
ID nameFR nameEN …
Person Personne Person
Student Etudiant Student
Employee Salarié Employee
Subsomption
sub sup
Student Personne
Employee Personne
18
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
Exigence 1 : Exploitation des données au niveau
logique
Métabase
Données
Sous-ensemble de SQL supporté par les SGBD usuels
19
CREATE TABLE Table_Student (
id INTEGER,
pname VARCHAR(32),
pgrade VARCHAR(32)
)
LDD
INSERT INTO Table_Person
VALUES (‘p2‘, ‘Tony’, ‘M’)
LMD
SELECT id, pgender
FROM Table_Person
LID
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
id pgrade
p1 M
Table_Person
ID pname pgender
p1 Jack M
p2 Tony M
Table_Student
ID pname pgrade
CREATE #Class l:Student UNDER l:Person (
DESCRIPTOR (#name[fr]=‘Etudiant’)
#Property ( l:grade String ) )
Exigence 2 : Exploitation des données au niveau ontologique,
couche OCC
Métabase
DonnéesOntologie
Entity
ID name
1 Class
2 Property
Attribute
ID name
3 ID
4 name
Extension et adaptation de SQL99
20
SELECT l:oid, l:gender
FROM ONLY (l:Person)
Couche OCC
INSERT INTO l:Person VALUES (‘Tony‘, ‘M’)
SET NAMESPACE l = http://www.lisi.ensma.fr
LDD
LMD
Distinction niveaux logique/ontologique :
CREATE EXTENT OF l:Student (name, grade)
SELECT l:oid, l:gender
FROM l:Person
LID
Distinction niveaux ontologie/modèle d’ontologie : #
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
oid gender
p1 M
e1 NULL
oid gender
p1 M
Class
ID nameFR nameEN …
Person Personne Person
Student Etudiant Student
Subsomption
sub sup
Employee Personne
Student Personne
Table_PersonID pname pgenderp1 Jack Mp2 Tony M
Table_EmployeeID pname psalarye1 Tim 10000
Table_EmployeeID pname pgrade
Exigence 2 : Exploitation des données au niveau ontologique,
couche OCNC
Métabase
DonnéesOntologie
Entity
ID name
1 Class
2 Property
Attribute
ID name
3 ID
4 name
Langage de définition de vues (LDV)
21
Couche OCNC
Ex : Homme = Personne & sexe = ‘M’
CREATE #Class Homme AS
VIEW UNDER Personne
CREATE VIEW OF Homme AS
SELECT *
FROM Personne
WHERE gender = ‘M’
Définition de classes OCNC
Définition d’instances
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Class
ID nameFR isView …
Personne Personne False
Homme Homme True
Subsomption
sub sup
Homme Personne
Table_PersonID pname pgenderp1 Jack M… … …
Vue_HommeID pname pgenderp1 Jack M… … …
Exigence 2 : Exploitation des données au niveau ontologique,
couche OL
Métabase
DonnéesOntologie
Entity
ID name
1 Class
2 Property
Attribute
ID name
3 ID
4 name
Utilisation de termes dans les instructions OntoQL
22
Couche OL
SET LANGUAGE = ‘EN’
SELECT oid, gender
FROM Person
SET LANGUAGE = ‘FR’
SELECT oid, sexe
FROM Personne
SELECT oid, gender
FROM Person
Ex : rechercher l’identifiant et le sexe des personnes
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Class
ID nameFR nameEN …
Person Personne Person
Student Etudiant Student
Person
ID nameFR nameEN …
gender sexe gender
Table_PersonID pname pgenderp1 Jack M… … …
Table_StudentID pname pgrades1 Peter PHD… … …
Exigence 3 : Indépendance d’un modèle d’ontologies
particulier
Métabase
DonnéesOntologie
Définition d’un modèle d’ontologies noyau extensible (préfixe #)
23
~ RDF-SCREATE ENTITY #PLIB_Class
UNDER #Class (
#note String)
PLIB
CREATE ENTITY #OWL_Class
UNDER #Class (
#deprecated Boolean)
OWL
Langage de Définition d’Ontologies (LDO)
INSERT INTO #PLIB_Class
(#name, #note)
VALUES (‘Personne’, ‘…’)
LMO
SELECT #name[fr],
#definition
FROM #Class
LIO
Métaschéma
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Table_PersonID pname pgenderp1 Jack M… … …
Table_StudentID pname pgrades1 Peter PHD… … …
ClassID nameFR …
PLIB_ClassID nameFR note …
Person Person … …
OWL_ClassID nameFR deprecated …
Employee Salarié False
name[fr] definition
Personne …
Salarié …
EntityID name1 Class2 PLIB_Class3 OWL_Class
AttributeID name10 id11 name12 note13 deprecated
Interrogation simultanée des ontologies et des données
Métabase
DonnéesOntologie
Combinaison du LID et du LIO
24
SELECT C.#name[fr]
FROM #Class AS C
WHERE C.#name LIKE ‘Per%’
SELECT p.name
FROM Personne p
typeOf(.)
Ontologie vers Données
Données vers Ontologie
LIDLIO
, C AS i, i.oid
C AS i
, typeof(p).#name[fr]
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
EntityID name1 Class2 Property
AttributeID name10 id11 name
Class
ID nameFR nameEN …
Person Personne Person
Student Etudiant Student
Subsomptionsub sup
Student Person
Table_StudentID pname pgrades1 Peter PHD… … …
Table_PersonID pname pgenderp1 Jack M… … …
name[fr] oid
Personne p1
Personne s1
… …
name[fr]
Personne
name #name[fr]
Jack Personne
Peter Etudiant
… …
name
Jack
Peter
…
25
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
26
FormalisationModèle formel d’une BDBO
Métabase
DonnéesOntologie
Méta-Schéma
Content: Extent, I
Type I Extent
SchemaProp Extent 2p
Val I P I
Ontology: C, P
SuperClasses C 2C
propDomain P C
propRange P C
Nomination: C Extent
Abstraction: Extent C
Model
M = (E, A, OC, C, P, Extent)
Meta-schema: E, A, OC
SuperEntities E 2E
Type OC E
AttDomain A E
AttRange A E
Val OC A OC
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
F-Logic
OWL PLIB~ RDF-S
27
Formalisation Algèbre OntoAlgebra pour les
BDBO Conçue à partir de l’algèbre Encore définie pour les BDOO Signature des opérateurs
Relation x … Relation
Tuples composés de • valeurs simples, • d’éléments des ontologies (OC) ou • d’instances de classes (I)
Principaux opérateurs : OntoProject, OntoSelect, OntoOJoin
Supprime les tuples de la relation en entrée ne respectant pas un prédicat donné
OntoProject : Relation x 2String x Fonction Relation
OntoSelect : Relation x Prédicat Relation
Applique une ou plusieurs fonctions aux tuples en paramètre
OntoOJoin : Relation x Relation X Predicat Relation Réalise la jointure entre deux relations
TUPLE [<(String, ADT), …, (String, ADT)>] x 2V TUPLE [<(String, ADT), …, (String, ADT)>] x 2V
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
28
Formalisation Sémantique des opérateurs
Opérateurs d’interrogation des ontologies
Opérateurs d’interrogation des données
Propriétés non valuées
Opérateurs d’interrogation des ontologies et des données
Lien entre les éléments de l’ontologie et les instances de classes
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
éléments des ontologies = instance d’un modèle d’ontologies (un modèle orienté-objet)
Sémantique des opérateurs de ENCORE
Introduction de la valeur NULL
TYPEOF : I C
OntoAlgebra Interprétation du langage OntoQL Requête OntoQL Expression algébrique de OntoAlgebra
29
Formalisation Techniques d’optimisation
Règles d’équivalence : Ex : pousser les sélections en bas de l’arbre algébrique
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
Métabase
DonnéesOntologie
SELECT * FROM Person
WHERE gender = ‘M’
SELECT * FROM ONLY(Person)
WHERE gender = ‘M’
UNIONSELECT * FROM ONLY(Employee) WHERE gender = ‘M’UNIONSELECT * FROM ONLY(Student) WHERE gender = ‘M’
SELECT * FROM ONLY(Person)
WHERE gender = ‘M’
Méta-schéma
Technique d’évaluation partielle : Propriété non utilisée => pas d’accès à la partie données pour cette propriété
Class
ID nameFR nameEN …
Person Personne Person
Employee Salarié Employee
Student Etudiant Student
Subsomptionsub sup
Employee PersonStudent Person
Table_PersonID pname pgenderp1 Jack M
Table_EmployeeID pname psalarye1 Tim 10000
Table_StudentID pname pgrades1 John PhD
30
PrototypageImplantation de OntoQL sur
OntoDB Modèle de données
Content: ExtentOntology: C
Nomination: C Extent
Meta-schema: E
, I, P
, A, OC
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
nameID VALUE111 Durand
PersonneID111
Partie méta-schéma
Partie ontologie
Partie méta-base
Partie données
emailID VALUE111 dura@
titleID VALUE112 BD
CoursID112
noteID VALUE112 4
EPersonnerid Pname Pemail111 Durand dura@
ECoursrid Ptitle Pnote112 BD 20
Item_Classrid name …11 Personne …
Property_detrid name …12 email …
rdfs:ClassId label …11 Personne …
rdf:PropertyId label …12 email …
AttributeId name …12 name …
EntityId name …11 Item_Class …
Représentation binaire
31
PrototypageTraitement d’une requête OntoQL
Requête OntoQL
SELECT nom as n
FROM Personne
Expression algébrique OntoAlgebra
Expression algébrique Algèbre Relationnelle
Requête SQL
OntoDB
Exemple
Traitement d’une requête OntoQL
OntoQL
SELECT pnom AS n
FROM EPersonneUNIONSELECT pnom AS nFROM ESalarié
SQL
OntoProject
<(n, nom)>ext*
Personne
Arbre OntoAlgebra
EPersonnepnomnESalarié nulln
Arbre Algèbre Relationnelle
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
32
PrototypageOutils associés au langage
OntoQLMétabase
DonnéesOntologie
Méta-Schéma
Moteur OntoQL
JOBDBC
OntoQL+OntoQBE
OntoAPI
SPARQL
Outils
Applications Projet ANR e-WOK HUB : Géosciences Projet EpiSEM : Pétrographie Bases de données techniques : Ingénierie
Recherche par mots-clés
1- Architecture cible2- Exigences3- Le langage OntoQL4- Mise en œuvre
33
PLAN
1- Architecture de BDBO cible
2- Exigences pour le langage
3- Le langage OntoQL
4- Mise en œuvre
5- Conclusion et perspectives
34
Conclusion
2. Conception des BD : extension de l’architecture ANSI/SPARC
1.Théorie des ontologies : modèle d’ontologies unifié à sémantique partagée
et extensible
3. Définition d’un langage d’exploitation de BDBO : le langage OntoQL
4. Mise en oeuvre du langage OntoQL
Exploitation des données au niveau logique : compatibilité SQL Exploitation des données au niveau ontologique (OCC, OCNC, OL)
Formalisation : modèle de données d’une BDBO + OntoAlgebra
Indépendance vis-à-vis d’un modèle d’ontologies donné (LDO, LMO, LIO)
Prototypage : implantation de OntoQL sur OntoDB + outils associés
Model = (E, A, OC, C, P,
Extent)
OntoProject : Relation x 2String x Fonction Relation
OntoSelect : Relation x Predicat Relation
OntoOJoin : Relation x Relation X Predicat Relation
Moteur OntoQL
JOBDBC
OntoQL+
OntoQBE
…
MétaSchéma
Ontologie
Métabase
Données
35
Perspectives
Extension sémantique du modèle noyau de OntoQL
Évolution du langage OntoQL
Autres contextes d’utilisation de OntoQL
Ingénierie Dirigée par les Modèles : transformation de modèles
Optimisation des requêtes OntoQL
Indexation sémantique de base de données
Construction automatique des relations de subsomptions
• Approche « plugin »
Ontologies émergentes : enrichissement d’ontologies locales
• Techniques usuelles (Vues matérialisées, Index, etc.)• Techniques particulières (Partitionnement par langue naturelle)
• Requêtes paramétriques
36
Merci de votre écoute
?