M2 DAC – LODAS 2019 – – Bernd Amann
M2 – DAC - LODAS - 2019MU5IN860 Linked Open Data, Apprentisssage Symbolique
Bernd Amann
SU
8 octobre 2019
164 / 365
M2 DAC – LODAS 2019 – – Bernd Amann
Règles et OWL : Inférence
1 Inférence et Règles RDF
2 Logiques de Description
3 OWL
165 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Bernd Amann
Outline
1 Inférence et Règles RDF
2 Logiques de Description
3 OWL
166 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
1 - Inférence et Règles RDF
Règles RDF : SyntaxeRègles RDF : Inférence
167 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
Règles RDFObjectif
Etant donné un graphe RDF (ensembles de triplets), on veut inférer desnouvelles connaissances (triplets).
Exemple
Toutes les personnes qui ont plus que 18 ans sont des adultes.
ex : p1 ex : age " 20 " ; ex : name " Susan " .ex : p4 ex : age " 15 " ; ex : name " Tim " .
Règle adultes
@prefix ex : h t t p : / / www. asws . com/ s o c i a l #[ adu l tes : (? s ex : age ?a ) ge (?a ,18 ) −> (? s r d f : type ex : Adu l t ) ]
produit un nouveau triplet :
ex : p1 r d f : type ex : Adu l t .
168 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
Jena : Types de règlesrègle type de règle LHS/RHS
[nom : LHS < −RHS] backward LHS : atom simple sans fonctionRHS : conjonction d’atomes avec fonctions
[nom : LHS− > RHS] forward LHS : conjonction d’atomes avec fonctionsRHS : conjonction d’atomes avec fonctions
[nom : LHS− > [nom1 : LHS1 < −RHS1]...) hybrid LHS : conjonction d’atomes avec fonctionsRHS : une ou plusieurs règles backward
Règle friendsforward
@prefix r d f : < h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#> .@prefix ex : h t t p : / / www. asws . com / s o c i a l #[ f r i ends fo rwa rd : (? s ex : f r i e n d ?a ) (?a ex : f r i e n d ?b ) (?b ex : age ?x ) ge (?x ,18 ) notEqual (?s ,? b )
−> (? s ex : f r i e n d ?b ) ]
Règle friendsbackward
@prefix r d f : < h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#> .@prefix ex : h t t p : / / www. asws . com / s o c i a l #[ f r iendsbackward : (? s ex : f r i e n d ?b )
<− (? s ex : f r i e n d ?a ) (?a ex : f r i e n d ?b ) (?b ex : age ?x ) ge (?x ,18 ) ]
Règle friendshybrid
@prefix r d f : < h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#> .@prefix ex : h t t p : / / www. asws . com / s o c i a l #[ f r i e n d s h y b r i d : (? s ex : f r i e n d ?a ) (?a ex : f r i e n d ?b ) notEqual (?s ,? b )
−> [ ( ? s ex : f r i e n d ?b ) <− (?b ex : age ?x ) ge (?x ,18 ) ] ]
169 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
Jena Rules : Syntaxe AbstraiteRule := bare−r u l e .
or [ bare−r u l e ]or [ ruleName : bare−r u l e ]
bare−r u l e := te rm, . . . term −> hterm, . . . hterm / / forward r u l eor te rm, . . . term <− te rm, . . . term / / backward r u l e
hterm := termor [ bare−r u l e ]
term := ( node, node, node ) / / t r i p l e pa t t e rnor ( node, node, f u n c t o r ) / / extended t r i p l e pa t t e rnor b u i l t i n ( node, . . . node ) / / p rocedura l p r i m i t i v e
f u n c t o r := functorName ( node, . . . node ) / / s t r u c t u r e d l i t e r a l
node := u r i−r e f / / e . g . h t t p : / / foo . com/ egor p r e f i x : localname / / e . g . r d f : typeor < u r i−re f > / / e . g . <myscheme : myuri >or ?varname / / v a r i a b l eor ’ a l i t e r a l ’ / / a p l a i n s t r i n g l i t e r a lor ’ lex ’ ^ ^ typeURI / / a typed l i t e r a lor number / / e . g . 42 or 25.5
170 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
Jena : Fonctions et prédicats
jena.apache.org/documentation/inference/#RULEbuiltins
isLiteral( ?x), notLiteral( ?x), isBNode(?x), notBNode(?x)bound(?x, ...), unbound(?x, ...)equal( ?x,?y) , notEqual( ?x,?y), lessThan(?x,?y), greaterThan(?x,?y),le(?x,?y), ge(?x,?y)sum(?a,?b,?c), difference(?a,?b,?c)strConcat(?a1, ..., ?an,?t), uriConcat(?a1, ..., ?an,?t)now(?x)noValue(?x,?p), noValue(?x?p?v)remove(n, ...), drop(n, ...)makeSkolem(?x,?v1, ..., ?vn)
171 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
Exemple : Fonction SkolemTurtle test
@prefix ex : < h t t p : / / www. asws . com/ s o c i a l #> .@prefix r d f : < h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#> .[ ] a r d f : Resource ; ex : name "Tom" .
Règle skolem
@prefix ex : h t t p : / / www. asws . com/ s o c i a l #
makeSkolem(?s , " Susan " ) −> (? s r d f : type r d f : Resource ) (? s ex :nom " Susan " ) .makeSkolem(?m, " Mary " ) (? t ex : name "Tom" ) −> (?m ex :nom " Mary " )
(? t ex : f r i e n d ?m) .makeSkolem(?s , " Susan " ) (? t ex : name "Tom" ) −> (? t ex : f r i e n d ?s ) .
Résultat de skolem
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix ex: <http://www.asws.com/social#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
[ a rdf:Resource ;ex:friend [ a rdf:Resource ;
ex:nom "Susan"] ;
ex:friend [ ex:nom "Mary" ] ;ex:name "Tom"
] .
172 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
Exemple : Noeuds BlancsRègle blanknode
@prefix ex : h t t p : / / www. asws . com/ s o c i a l #
(? s r d f : type ex : BlankNode ) <− (? s r d f : type r d f : Resource ) isBNode (? s ) .
Résultat de blanknode
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix ex: <http://www.asws.com/social#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
[ a rdf:Resource , ex:BlankNode ;ex:friend [ ex:nom "Mary" ] ;ex:friend [ a rdf:Resource , ex:BlankNode ;
ex:nom "Susan"] ;
ex:name "Tom"] .
173 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Syntaxe Bernd Amann
Exemple : Suppression de tripletsRègle remove
@prefix ex : h t t p : / / www. asws . com/ s o c i a l #
(? s r d f : type r d f : Resource ) (? s ex :nom " Susan " ) −> remove ( 0 ) .
Résultat de remove
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix ex: <http://www.asws.com/social#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
[ a rdf:Resource ;ex:friend [ ex:nom "Mary" ] ;ex:friend [ ex:nom "Susan" ] ;ex:name "Tom"
] .
Règles avec suppression :la suppression de triplets introduit une forme de négationlogique non-monotone : il existe plusieurs solutions (modèles)
174 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
1 - Inférence et Règles RDF
Règles RDF : SyntaxeRègles RDF : Inférence
175 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Jena : Types d’InférenceInférence backward chaining
inférence Programmation Logique (PL)résolution SLD : Datalog sans négation sur une table triplet(s,p,o)tabling : matérialisation de résultats intermédiaires (memoizing)résultat virtuel : matérialisation dynamique au moment où les données sont accédées(requêtes)
Inférence forward chaining
algorithme RETE (moteur par défaut) :graphe de déductiondéclenchement de règles non-deterministe
peut aussi évaluer des règles backward (sans propriétés symétriques et reflexives)résultat matérialisé : matérialisation statique produisant l’union du graphe d’entrée et dugraphe inféré
Inférence hybride
forward chaining génère des règles backwardpermet d’équilibrer le coût de matérialisation (forward) et d’évaluation dynamique(backward)
176 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Jena : Inférence hybride
forward engine (RETE) : génération de faits et de règles (avec desvariables) instanciéesbackward engine (LP) : évaluation des règles instanciés
177 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Exemple : Forward et Backward ChainingRègle friendssymforward
@prefix r d f : < h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#> .@prefix ex : h t t p : / / www. asws . com/ s o c i a l #
[ fr iendssymmforward : (? s ex : f r i e n d ?a ) −> (?a ex : f r i e n d ?s ) ]
backward chaining : impossibleforward chaining : génération de graphe de déduction et calcul de point fixe.
Règle friendssymbackward
@prefix r d f : < h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#> .@prefix ex : h t t p : / / www. asws . com/ s o c i a l #
[ friendssymmbackward : (? s ex : f r i e n d ?a ) <− (?a ex : f r i e n d ?s ) ]
backward chaining : évaluation récursive (résolution SLD)forward chaining : possible, mais boucle infinie sur la relation symétrique ex:friend (propriété del’algorithme RETE)
178 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Exemple : Graphe SocialTurtle sn
@prefix r d f s : < h t t p : / / www.w3 . org /2000/01 / rd f−schema#> .@prefix ex : < h t t p : / / www. asws . com/ s o c i a l #> .@prefix r d f : < h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#> .
ex : user3 a ex : User ;ex : age " 35 " ^^< h t t p : / / www.w3 . org /2001/XMLSchema# i n t > ;ex : f r i e n d ex : user4 ;ex : name "Tom" .
ex : user1 a ex : User ;ex : age " 20 " ^^< h t t p : / / www.w3 . org /2001/XMLSchema# i n t > ;ex : f r i e n d ex : user2 , ex : user3 ;ex : name " Susan " .
ex : user4 a ex : User ;ex : age " 15 " ^^< h t t p : / / www.w3 . org /2001/XMLSchema# i n t > ;ex : f r i e n d ex : user2 ;ex : name " Tim " .
ex : user2 a ex : User ;ex : age " 40 " ^^< h t t p : / / www.w3 . org /2001/XMLSchema# i n t > ;ex : f r i e n d ex : user1 ;ex : name " Mike " .
ex : user5 a ex : User ;ex : age " 25 " ^^< h t t p : / / www.w3 . org /2001/XMLSchema# i n t > ;ex : f r i e n d ex : user2 ;ex : name " Mary " .
179 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Règle forwardRésultat de friendssymforward
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix ex: <http://www.asws.com/social#> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
ex:user4 a ex:User ;ex:age "15"^^<http://www.w3.org/2001/XMLSchema#int> ;ex:friend ex:user3 , ex:user2 ;ex:name "Tim" .
ex:user3 a ex:User ;ex:age "35"^^<http://www.w3.org/2001/XMLSchema#int> ;ex:friend ex:user1 , ex:user4 ;ex:name "Tom" .
ex:user2 a ex:User ;ex:age "40"^^<http://www.w3.org/2001/XMLSchema#int> ;ex:friend ex:user5 , ex:user4 , ex:user1 ;ex:name "Mike" .
ex:user1 a ex:User ;ex:age "20"^^<http://www.w3.org/2001/XMLSchema#int> ;ex:friend ex:user3 , ex:user2 ;ex:name "Susan" .
ex:user5 a ex:User ;ex:age "25"^^<http://www.w3.org/2001/XMLSchema#int> ;ex:friend ex:user2 ;ex:name "Mary" .
180 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Exemple : Backward, Forward, HybridRègle backwardsub
@prefix r d f s : h t t p : / / www.w3 . org /2000/01 / rd f−schema#[ backwardsub : (?a ?q ?b ) <− (?p r d f s : subPropertyOf ?q )
notEqual (?p ,? q ) (?a ?p ?b ) ]
→ foward chaining (avec RETE) ne termine pas (rdfs:subProperty est reflexive)→ backward chaining est inefficace
Règle forwardsub
@prefix r d f s : h t t p : / / www.w3 . org /2000/01 / rd f−schema#[ forwardsub : (?p r d f s : subPropertyOf ?q )
notEqual (?p ,? q ) (?a ?p ?b ) −> (?a ?q ?b ) ]
→ forward chaining génère beaucoup de triplets ...
Règle hybridsub
@prefix r d f s : h t t p : / / www.w3 . org /1999/02/22− rd f−syntax−ns#[ hybr idsub : (?p r d f s : subPropertyOf ?q )
notEqual (?p ,? q ) −> [ (?a ?q ?b ) <− (?a ?p ?b ) ] ]
→ génère une règle backward pour chaque relation rdfs:subPropertyOf
181 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Architecture Générale
ModelFactory : création d’associations entre un ou plusieurs moteursd’inférence (Reasoner) et des Graphes RDFReasonerRegistry : catalogue de moteurs d’inférence connusOntModel API : identification automatique d’un moteur d’inférence pour untype d’ontologie donnéeInfGraph : graphe inféré
182 / 365
M2 DAC – LODAS 2019 – Inférence et Règles RDF – Règles RDF : Inférence Bernd Amann
Moteurs d’inférence existantsTransitive reasoner : matérialisation des relations transitives etreflexives rdfs:subPropertyOf et rdfs:subClassOf d’un schémaRDFS (commande infer).RDF/RDFS rule reasoner: matérialisation d’un sous-ensembleconfigurable de règles RDFS (RDF/RDFS entailment rules, voirsémantique formelle).OWL, OWL Mini, OWL Micro Reasoners: matérialisation « utilemais incomplète » de OWL/Lite.Generic rule reasoner : matérialisation de règles d’utilisateurs(inférence forward chaining, tabled backward chaining et hybride)
183 / 365
M2 DAC – LODAS 2019 – Logiques de Description – Bernd Amann
Outline
1 Inférence et Règles RDF
2 Logiques de Description
3 OWL
184 / 365
M2 DAC – LODAS 2019 – Logiques de Description – Bernd Amann
Logiques de DescriptionUne logique de description permet
la définition de concepts par des contraintes logiques sur leurinterprétation (“ensemble d’instances”) :
relations sémantiques entre concepts (incusion, equivalence)composition logique / ensembliste de concepts (union, intersection,complément)
le raisonnement logique sur les concept :satisfiabilité des concepts : est-ce qu’il peut exister une instance(interprétation non-vide) pour un concept?cohérence de plusieurs concepts : est-ce qu’il existe une interprétationnon-vide pour un ensemble de concepts?inclusion de concepts (subsomption) : est-ce que l’ensemble des instancesd’un concept est incluse dans l’ensemble des instance d’un autre concept(pour toutes les interprétations)?
L’ensemble des instances (l’interprétation) d’un concept peut être infini(définition et raisonnement intensionnels).
185 / 365
M2 DAC – LODAS 2019 – Logiques de Description – Bernd Amann
Exemples d’expressionsTous les artistes sont des personnes :
Artiste v Personne
Un sculpteur est une personne qui a créé une sculpture (définition) :
Sculpteur ≡ Personne u ∃a_cree.Sculpture
Toutes les personnes qui ont créé une peinture sont des peintres :
Personne u ∃a_cree.Peinture v Peintre
Un artefact est un objet créé par une personne (définition) :
Artefact ≡ Objet u ∃cree_par .Personne
Toutes les sculptures et peintures sont des artefacts créés par desartistes :
Sculpture t Peinture v Artefact u ∃cree_par .Artiste
186 / 365
M2 DAC – LODAS 2019 – Logiques de Description – Bernd Amann
Interprétation de concepts et de rôles
Interprétation
Soit donné un ensemble de concepts C et de rôles R. Une interprétation Iest un couple (∆I , .I) où :
∆I est un domaine non-vide d’instances.I est une fonction d’interprétation qui associe à
chaque concept A ∈ C un ensemble d’instances dans ∆I :
AI ⊆ ∆I
chaque rôle r ∈ R une relation binaire entre des instances du domaine ∆I :
rI ⊆ ∆I ×∆I
187 / 365
M2 DAC – LODAS 2019 – Logiques de Description – Bernd Amann
Interprétation et sémantique)
Expr. Fonction d’interprétation Commentairea aI ⊆ ∆I concept ar rI ⊆ ∆I ×∆I rôle rc u d cI ∩ dI intersection∀r .c {x ∈ ∆I | ∀y : (x , y) ∈ rI → y ∈ cI} quant. univ. qualifié∃r {x ∈ ∆I | ∃y ∈ ∆I : (x , y) ∈ rI} quant. exist. non-
qualifié¬c ∆I \ cI négation/complémentc t d cI ∪ dI union∃r .c {x ∈ ∆I | ∃y ∈ ∆I : (x , y) ∈ rI ∧ y ∈ cI} quantif. exist. quali-
fiée
188 / 365
M2 DAC – LODAS 2019 – Logiques de Description – Bernd Amann
Satisfiabilité et Subsomption
Satisfiabilité
Un concept c est satisfiable, noté sat(c), si et seulement si (ssi) il existeune interprétation I telle que cI n’est pas vide :
sat(c)⇔ ∃I : cI 6= ∅
Subsomption
c subsume d , noté d v c, ssi pour toute interprétation (∆I , .I), dI est unsous-ensemble de cI :
d v c ⇔ ∀I : dI ⊆ cI
La subsomption peut être réduite à la satisfiabilité :
d v c ⇔ ¬sat(¬c u d)⇔6 ∃I : (¬c u d)I 6= ∅
189 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
2 - Logiques de Description
TBox et ABoxLa famille des Logiques de Description
190 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
TBox
TBox et terminologie
Une TBox est un ensemble de définitions de concepts nommés.L’ensemble de noms de concepts est appelé une terminologie.
Services d’inférence sur une TBox
Test de cohérence : trouver tous les concepts insatisfiablesExtraction de taxinomie : calculer l’hiérarchie de subsomption ou lataxinomie des concepts nommés.
191 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
TBox : Construction de Taxinomie
Terminologie :1 Woman ≡ Person u Female2 Parent ≡ Person u ∃has_child.Person3 Mother ≡ Parent u Female ≡ Parent u
Woman4 Mother_only_daughters ≡Woman u
Parent u ∀ has_child.Woman ≡ Mother u∀ has_child.Woman
5 Grandma ≡Woman u ∃has_child.Parent≡ Mother u ∃has_child.Parent
6 Great_grandma ≡Woman u∃has_child.∃has_child.Parent ≡ Grandmau ∃has_child.∃has_child.Parent
Taxinomie :
Woman
Person
Female
Parent
Mother
Mother_only_daughers
Grandma
Great_grandma
192 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
TBox : Construction de Taxinomie
Terminologie :1 Woman ≡ Person u Female2 Parent ≡ Person u ∃has_child.Person3 Mother ≡ Parent u Female ≡ Parent u
Woman4 Mother_only_daughters ≡Woman u
Parent u ∀ has_child.Woman ≡ Mother u∀ has_child.Woman
5 Grandma ≡Woman u ∃has_child.Parent≡ Mother u ∃has_child.Parent
6 Great_grandma ≡Woman u∃has_child.∃has_child.Parent ≡ Grandmau ∃has_child.∃has_child.Parent
Taxinomie :
Woman
Person
Female
Parent
Mother
Mother_only_daughers
Grandma
Great_grandma
192 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
TBox : Construction de Taxinomie
Terminologie :1 Woman ≡ Person u Female2 Parent ≡ Person u ∃has_child.Person3 Mother ≡ Parent u Female ≡ Parent u
Woman4 Mother_only_daughters ≡Woman u
Parent u ∀ has_child.Woman ≡ Mother u∀ has_child.Woman
5 Grandma ≡Woman u ∃has_child.Parent≡ Mother u ∃has_child.Parent
6 Great_grandma ≡Woman u∃has_child.∃has_child.Parent ≡ Grandmau ∃has_child.∃has_child.Parent
Taxinomie :
Woman
Person
Female
Parent
Mother
Mother_only_daughers
Grandma
Great_grandma
192 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
TBox : Construction de Taxinomie
Terminologie :1 Woman ≡ Person u Female2 Parent ≡ Person u ∃has_child.Person3 Mother ≡ Parent u Female ≡ Parent u
Woman4 Mother_only_daughters ≡Woman u
Parent u ∀ has_child.Woman ≡ Mother u∀ has_child.Woman
5 Grandma ≡Woman u ∃has_child.Parent≡ Mother u ∃has_child.Parent
6 Great_grandma ≡Woman u∃has_child.∃has_child.Parent ≡ Grandmau ∃has_child.∃has_child.Parent
Taxinomie :
Woman
Person
Female
Parent
Mother
Mother_only_daughers
Grandma
Great_grandma
192 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
TBox : Construction de Taxinomie
Terminologie :1 Woman ≡ Person u Female2 Parent ≡ Person u ∃has_child.Person3 Mother ≡ Parent u Female ≡ Parent u
Woman4 Mother_only_daughters ≡Woman u
Parent u ∀ has_child.Woman ≡ Mother u∀ has_child.Woman
5 Grandma ≡Woman u ∃has_child.Parent≡ Mother u ∃has_child.Parent
6 Great_grandma ≡Woman u∃has_child.∃has_child.Parent ≡ Grandmau ∃has_child.∃has_child.Parent
Taxinomie :
Woman
Person
Female
Parent
Mother
Mother_only_daughers
Grandma
Great_grandma
192 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
Individus nommés et assertions
Individus nommés
Soit donné un ensemble d’individus N :La fonction d’interprétation .I associe à chaque nom dans N uneinstance dans ∆I : a ∈ N : aI ∈ ∆I
Supposition du nom unique (unique name assumption) :a 6= b ⇒ aI 6= bI
Assertions sur les individus
Une assertion définit des contraintes sur les individus :Assertions de concepts “a : c” où a ∈ N et c ∈ C :
L’assertion a : c est satisfaite ssi aI ∈ cI ;Exemple : pierre : etudiant
Assertions de rôles “(a,b) : r ” où a,b ∈ N et r ∈ R :L’assertion (a, b) : r est satisfaite ssi (aI , bI) ∈ rI ;Exemple : (pierre, bdia) : inscrit
193 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
ABox
ABox
Une ABox est ensemble d’assertions de concepts et de rôles. Lasatisfiabilité d’assertions est définie par rapport à une ABox et une TBoxdonnées au départ.
Services d’inférence sur une ABox
Est-ce qu’une ABox A est satisfiable étant donné une TBox T : asat(A) ?Est-ce que a est une instance du concept c : instance(a, c,A) ?
Tous les services d’inférence peuvent être réduits à asat
a est une instance de c dans A : instance(a, c,A) ≡ ¬asat(A ∪ {a : ¬c})c est satisfiable : sat(c) ≡ ∃a : asat({a : c})c est subsumé par d : c v d ≡ ¬sat(¬c u d) ≡ ¬asat({a : ¬c u d})
194 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
Suppposition du monde ouvert (OWA)Exemple
C = {Homme,Femme},R = {enfant}A = {andre : Homme, charles : Homme, (charles,andre) : enfant}
CWA (Closed-World Assumption)
Il n’existe que les instances définies dansA :
andre est l’enfant de charles.il y a que deux hommes et pas defemmes (compter).andre n’a pas d’enfant (negation byfailure)
OWA (Open-World Assumption)
D’autres instances que celles définiesdans A peuvent exister :
il peut y avoir d’autres hommes,femmes et enfants
OWA→ CWA
Pour obtenir la sémantique CWA (BD) avec OWA, il faut « fermer » les concepts etles rôles pour chaque individu :
La contrainte femme v⊥ indique qu’il n’y a pas de femmes (⊥I= ∅)L’assertion andre : 6 ∃a_enfant indique qu’andre est une instance du concept desindividus qui n’ont pas d’enfants.L’assertion charles :≤ 1a_enfant indique que charles à au maximum un enfant.
195 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
Suppposition du monde ouvert (OWA)Exemple
C = {Homme,Femme},R = {enfant}A = {andre : Homme, charles : Homme, (charles,andre) : enfant}
CWA (Closed-World Assumption)
Il n’existe que les instances définies dansA :
andre est l’enfant de charles.il y a que deux hommes et pas defemmes (compter).andre n’a pas d’enfant (negation byfailure)
OWA (Open-World Assumption)
D’autres instances que celles définiesdans A peuvent exister :
il peut y avoir d’autres hommes,femmes et enfants
OWA→ CWA
Pour obtenir la sémantique CWA (BD) avec OWA, il faut « fermer » les concepts etles rôles pour chaque individu :
La contrainte femme v⊥ indique qu’il n’y a pas de femmes (⊥I= ∅)L’assertion andre : 6 ∃a_enfant indique qu’andre est une instance du concept desindividus qui n’ont pas d’enfants.L’assertion charles :≤ 1a_enfant indique que charles à au maximum un enfant.
195 / 365
M2 DAC – LODAS 2019 – Logiques de Description – TBox et ABox Bernd Amann
Suppposition du monde ouvert (OWA)Exemple
C = {Homme,Femme},R = {enfant}A = {andre : Homme, charles : Homme, (charles,andre) : enfant}
CWA (Closed-World Assumption)
Il n’existe que les instances définies dansA :
andre est l’enfant de charles.il y a que deux hommes et pas defemmes (compter).andre n’a pas d’enfant (negation byfailure)
OWA (Open-World Assumption)
D’autres instances que celles définiesdans A peuvent exister :
il peut y avoir d’autres hommes,femmes et enfants
OWA→ CWA
Pour obtenir la sémantique CWA (BD) avec OWA, il faut « fermer » les concepts etles rôles pour chaque individu :
La contrainte femme v⊥ indique qu’il n’y a pas de femmes (⊥I= ∅)L’assertion andre : 6 ∃a_enfant indique qu’andre est une instance du concept desindividus qui n’ont pas d’enfants.L’assertion charles :≤ 1a_enfant indique que charles à au maximum un enfant.
195 / 365
M2 DAC – LODAS 2019 – Logiques de Description – La famille des Logiques de Description Bernd Amann
2 - Logiques de Description
TBox et ABoxLa famille des Logiques de Description
196 / 365
M2 DAC – LODAS 2019 – Logiques de Description – La famille des Logiques de Description Bernd Amann
FL− et ALCLes familles de logiques de description qui se distinguent par lesconstructeurs de concepts qui peuvent être utilisés :
FL−Syntaxe Sémantique Commentairea aI ⊆ ∆I concept ar rI ⊆ ∆I ×∆I rôle rc u D cI ∩ DI intersection∀r .c {x ∈ ∆I | ∀y : (x , y) ∈ rI → y ∈ cI} quant. univ. qualifié∃r {x ∈ ∆I | ∃y ∈ ∆I : (x , y) ∈ rI} quant. exist. non-qualifié
ALCALC est une extension de FL− avec :
Syntaxe Sémantique Commentaire¬c ∆I \ cI négation/complémentc t D cI ∪ DI union∃r .c {x ∈ ∆I | ∃y ∈ ∆I : (x , y) ∈ rI ∧ y ∈ cI} quantif. exist.
qualifiée
197 / 365
M2 DAC – LODAS 2019 – Logiques de Description – La famille des Logiques de Description Bernd Amann
Autres constructeurs DLRestrictions numériques sur les rôles (N resp. Q)
simples : ≥ 3a_enfant , ≤ 1a_enfantqualifiés : ≥ 3a_enfant .Homme, ≤ 1a_enfant .Femme
Hiérarchies de rôles (H)
a_fils est une sous-propriété de a_enfant :a_fils v a_enfant
Rôles transitives (R+)
ancetre est transitif : ancetre ≡ ancetre.ancetre
Autres familles de DL
S = ALCR+ : intersection, union, négation, quantification existentielle,rôle transtiviesSHIQ : S plus réstriction numérique qualifié, hiérarchie de rôles, rôlesinverses
198 / 365
M2 DAC – LODAS 2019 – Logiques de Description – La famille des Logiques de Description Bernd Amann
Autres constructeurs DL (2)
Rôles inverses (I)
a_enfant ≡ parent−
Cycles terminologiques
Humain v a_parent .Humain
Axioms généraux
Axioms qui n’ont pas de nom de concepts à gauche ou > à gauche :domaine d’un rôle : ∃has_child .> v Parentco-domaine d’un rôle : > v ∀has_child .Person
199 / 365
M2 DAC – LODAS 2019 – Logiques de Description – La famille des Logiques de Description Bernd Amann
Compléxité et expressivité
Logique Expressivité C v D C(a)
FL− C uD, ∀R.C,∃R
P P
AL ¬A P PALE ∃R.C NP PSPACEALC ¬C PSPACE PSPACEALCO {a1, ...} PSPACE PSPACESHIQ (OWL-DL) EXPTIME EXPTIMEKL-ONE non-décidable non-décidable
200 / 365
M2 DAC – LODAS 2019 – Logiques de Description – La famille des Logiques de Description Bernd Amann
Bibliographie
Transparents d’Enrico Franconi, Department of Computer Science,University of Manchester http ://www.cs.man.ac.uk/ franconiDescription Logics and Semantic Web Description Logics : A LogicalFoundation of the Semantic Web and its Applications Volker HaarslevConcordia UniversityDescription Logics : Basics, Applications, and More, IanHorrocks,Information Management Group University of Manchester, UKUlrike Sattler, Institut für Theoretische Informatik TU Dresden, Germany
201 / 365
M2 DAC – LODAS 2019 – OWL – Bernd Amann
Outline
1 Inférence et Règles RDF
2 Logiques de Description
3 OWL
202 / 365
M2 DAC – LODAS 2019 – OWL – Web Ontology Language Bernd Amann
3 - OWL
Web Ontology LanguageDéfinition de classesDéfinition de propriétésDéfinition d’individus
203 / 365
M2 DAC – LODAS 2019 – OWL – Web Ontology Language Bernd Amann
Rappel de RDF/RDFS
RDF/RDFS permet de créer un graphe par l’union de descriptions deressources.Une classe RDFS (un concept) est défini par un nom, un ensemble depropriétés et sa position dans une hiérarchie définie par la relationrdfs:subClassOf.L’intégration et le raisonnement sont limités à l’utilisation des types depropriétés et des relations rdfs:subClassOf et rdfs:subPropertyOf.
204 / 365
M2 DAC – LODAS 2019 – OWL – Web Ontology Language Bernd Amann
Web Ontology Language : OWL
Recommandation W3C qui définit une famille de langages d’ontologies quifacilitent l’intégration et l’évolution d’ontologies et de métadonnées,permettent de définir des concepts “complexes”,de vérifier la cohérence de ces définitions etd’inférer des relations sémantiques (inclusion, équivalence) entre lesconcepts.
205 / 365
M2 DAC – LODAS 2019 – OWL – Web Ontology Language Bernd Amann
RDF Schema et OWL
OWL et RDF Schema utilisent le modèle et la syntaxe RDF pour définirdes ontologiesRDF Schema = ontologies “simples” :
classes, ressources, litérauxsous-classes, sous-propriétés
OWL = ontologies “complexes”classes et propriétés équivalentes,identité d’objet,propriétés symétriques et transitives,contraintes de cardinalité
206 / 365
M2 DAC – LODAS 2019 – OWL – Web Ontology Language Bernd Amann
Full OWL, OWL-DL, OWL Lite
OWL définit une famille de langages :OWL est un langage de représentation de connaissances puissant quipermet de décrire formellement des concepts complexes à partird’autres concepts.“Full OWL” permet de manipuler des classes comme des objets etdépasse le pouvoir d’expression de la logique du premier ordre.OWL-DL est un fragment dont la sémantique peut-être formalisée sousforme d’une logique de description (OWL DL).
207 / 365
M2 DAC – LODAS 2019 – OWL – Web Ontology Language Bernd Amann
OWL-DLOWL-Lite correspond à la logique de description SHIQ (restrictionnumérique des rôles, hiérarchie de rôles, rôles transitifs et inverses).OWL-DL = SHIQO (SHIQ avec individus nommés)Expression DL :
Student = Person u >= 1enrolledIn
Expression OWL :
asws : minEn a owl : R e s t r i c t i o n ;owl : m inCa rd i na l i t y " 1^^xsd : i n t e g e r " ;owl : onProperty asws : e n r o l l e d I n .
asws : Student a owl : Class ;owl : i n t e r s e c t i o n O f ( asws : Person asws : minEn ) .
asws : Person a owl : Class .
208 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
3 - OWL
Web Ontology LanguageDéfinition de classesDéfinition de propriétésDéfinition d’individus
209 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
OWL : Définition de classes
Une classe OWL peut être anonyme ou identifiée par un nom (référenceURI).Il est possible de définir des contraintes sur l’l’extension (l’ensemble desinstances) d’une classe :
par l’énumération de ses instances,par la définition de contraintes sur les propriétés des instances (définitionintensionnelle),comme union, intersection, complément, inclusion, équivalence, exclusiondes extensions d’autres classes.
210 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
Définition par énumérationDéfinition par énumération des instances :
owl:oneOf
DL (assertions) :
beline : InscritsASWS14chamakhi : InscritsASWS14
essayan : InscritsASWS14feuillerat : InscritsASWS14
OWL :
asws : inscritsASWS14a owl : Class ;owl : oneOf ( asws : be l i ne asws : chamakhi
asws : essayan asws : f e u i l l e r a t ) .
211 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
Définition d’une classe par les propriétés de sesinstances
Définition d’une classe par des contraintes sur les propriétés de sesinstances :
contraintes sur les valeurs : owl:hasValue
contraintes sur les types des valeurs : owl:allValuesFrom,owl:someValuesFrom
contraintes sur la cardinalité des propriétés : owl:maxCardinality,owl:minCardinality, owl:Cardinality
212 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
Définition par propriétés : ExempleExemple : La classe GroupeMixte contient tous les groupes qui contiennent aumoins un étudiant DAC et un étudiant ANDROIDE :
DL :
GroupeMixte v Groupe u ∃membre.InscritsDAC u ∃membre.InscritsANDROIDE
OWL :
asws : GroupeMixte a owl : Class ;r d f s : subClassOf asws : Groupe ;r d f s : subClassOf [ a owl : R e s t r i c t i o n ;
owl : onProperty asws : membre ;owl : someValuesFrom asws : Inscr i tsDAC
] ;r d f s : subClassOf [ a owl : R e s t r i c t i o n ;
owl : onProperty asws : membre ;owl : someValuesFrom asws : InscritsANDROIDE
] .
213 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
Contraintes de cardinalité
Restrictions numériques sur les rôles :owl:minCardinality, owl:maxCardinality
DL :simples (N ) : ≥ 1a_enfantqualifiés (Q) : ≤ 3a_enfant .Homme
OWL :
[ a owl : R e s t r i c t i o n ;owl : maxQua l i f i edCard ina l i t y " 3 " ^^ xsd : i n t e g e r ;owl : m inCa rd i na l i t y " 1 " ^^ xsd : i n t e g e r ;owl : onClass asws :Homme ;owl : onProperty asws : a_enfants
] .
214 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
Intersection, union, complément
Définition d’une classe comme l’intersection, l’union et le complémentd’autres classes :
owl:intersectionOf, owl:unionOf, owl:complementOf
DL : A u B, A t B, ¬AOWL :
asws : I nsc r i t s IMA a owl : Class .asws : Inscr i tsDAC a owl : Class .asws : InscritsANDROIDE a owl : Class .asws : I n s c r i t s a owl : Class ;
owl : unionOf ( asws : InscritsANDROIDEasws : Inscr i tsDACasws : I nsc r i t s IMA ) .
215 / 365
M2 DAC – LODAS 2019 – OWL – Définition de classes Bernd Amann
Relations entre classes
Définition d’une classe comme l’inclusion, l’équivalence, l’exclusiond’autres classes :
rdfs :subClassOf, owl:equivalentClass, owl: disjointWith
DL : A v B, A ≡ B, A u B v ⊥OWL :
asws : Students a owl : Class ;r d f s : subClassOf asws : Person ;owl : d i s j o i n t W i t h asws : Teachers ;owl : equ iva len tC lass asws : E tud ian t .
216 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
3 - OWL
Web Ontology LanguageDéfinition de classesDéfinition de propriétésDéfinition d’individus
217 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Types de propriétés I
Types de propriétés
Propriétés d’objets : owl:ObjectProperty
Propriétés de valeurs : owl:DatatypeProperty
Les deux types de propriétés sont des sous-classes de la classerdf :Property.
218 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Contraintes RDFS I
Hiérarchies de rôles : l’extension d’une propriété est incluse dansl’extension d’une autre propriété
rdfs :subPropertyOf
DL (H) : fils v child
RDF/OWL :
asws : f i l s a owl : Objec tProper ty ;r d f s : subPropertyOf asws : c h i l d .
219 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Contraintes RDFS II
Contrainte de domaine
rdfs :domain
DL : ∃enfant .> v Pere tMereOWL :
asws : enfant a owl : Objec tProper ty ;d fs : domain [ a owl : Class ;
owl : unionOf ( asws : Pereasws : Mere ) ] .
asws : Mere a owl : Class .asws : Pere a owl : Class .
Avec RDFS il faut définir une super-classe de Pere et Mere.
220 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Contraintes RDFS III
Contrainte de co-domaine
RDFS/OWL : rdfs :range : types des objetsDL : > v ∀enfant .(Fils t Fille)
asws : enfant a owl : Objec tProper ty ;r d f s : range [ a owl : Class ;
owl : unionOf ( asws : F i l sasws : F i l l e ) ] .
asws : F i l l e a owl : Class .asws : F i l s a owl : Class .
221 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Contraintes « inter-propriétés » I
Equivalence
L’extension d’une propriété est équivalente à l’extension de l’autrepropriété
owl:equivalentProperty
DL : enfant ≡ childOWL :
asws : enfant owl : equ iva len tProper t y asws : c h i l d .
Rôles inverses
L’extension d’une propriété est égal à l’inverse de l’extension de l’autreowl:inverseOf
DL (I) : enfant ≡ parent−
asws : enfant owl : inverseOf asws : parent .
222 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Contraintes « inter-propriétés » IIPropriété symmetrique
L’extension est une relation symmetriqueowl:SymmetricProperty
DL : sibling = sibling−
OWL :
asws : s i b l i n g a owl : Symmetr icProperty .
Rôles transitives
L’extension est une relation transitiveowl:TransitiveProperty
DL (R+) : ancetre ≡ ancetre.ancetreOWL :
asws : ancetre a owl : T r a n s i t i v e P r o p e r t y .
223 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Properiétés fonctionnelles I
Contraintes de cardinalité du domaine
Un seul objet par sujet (extension = fonction)owl:FunctionalProperty
DL : (= 1)a_pere
asws : a_pere a owl : Func t iona lProper ty .
Contraintes de cardinalité du co-domaine
owl:InverseFunctionalProperty : un seul sujet par objetDL : (= 1)pere_de−
OWL :
asws : pere_de a owl : Inve rseFunc t iona lProper ty .
224 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
ExemplesLa propriété enfant est l’inverse de la propriété parent :
asws : parent a owl : Objec tProper ty ;r d f s : domain asws : personne ;r d f s : range asws : personne .
asws : enfant a owl : Objec tProper ty ;owl : inverseOf asws : parent .
Le domaine et le co-domaine de la propriété enfant peuvent être déduitsà partir de la propriété parent.La propriété époux_de est mono-valuée (fonctionnelle) etsymétrique :
asws : epoux_de a owl : Func t iona lProper ty ,owl : Symmetr icProperty ;
r d f s : domain asws : personne ;r d f s : range asws : personne .
Le domaine est égal au co-domaine.
225 / 365
M2 DAC – LODAS 2019 – OWL – Définition de propriétés Bernd Amann
Exemples
Toutes les personnes ont exactement une mère→ La propriétémère_de est mono-valuée inverse :
asws : mere_de a owl : Inve rseFunc t iona lP roper ty ;r d f s : domain asws : femme ;r d f s : range asws : personne .
Transitivité : si a est un ancêtre de b et b est un ancêtre de c, alors aest un ancêtre de c :
asws : ancetre_dea owl : T r a n s i t i v e P r o p e r t y ;r d f s : domain asws : personne ;r d f s : range asws : personne .
Le domaine est égal au co-domaine.
226 / 365
M2 DAC – LODAS 2019 – OWL – Définition d’individus Bernd Amann
3 - OWL
Web Ontology LanguageDéfinition de classesDéfinition de propriétésDéfinition d’individus
227 / 365
M2 DAC – LODAS 2019 – OWL – Définition d’individus Bernd Amann
Propriétés d’individus (faits)
Les faits sont exprimés sous forme de descriptions RDF :
asws : Tosca a asws : Opera ;asws : hasComposer asws : Giacomo_Puccini ;asws : h a s L i b r e t t i s t asws : Vic tor ien_Sardou ,
asws : Giuseppe_Giacosa ,asws : L u i g i _ I l l i c a ;
asws : numberOfActs " 3^^xsd : p o s i t i v e I n t e g e r " ;asws : premiereDate "1900−01−14^^xsd : Date " ;asws : premierePlace asws :Roma .
228 / 365
M2 DAC – LODAS 2019 – OWL – Définition d’individus Bernd Amann
Contraintes sur l’identité des ressources
owl:sameAs : deux ressources (faits, classes, propriétés) sont identiques(désignent le même objet)OWL :
asws : Wi l l i am_Je f fe rson_C l in tona asws : Pres ident ;owl : sameAs asws : B i l l C l i n t o n .
owl:differentFrom : deux ressources (faits, classes, propriétés) sontdistinctes (désignent un objet différent)OWL :
asws : M e u r t r i e r a asws : Opera ;owl : d i f f e ren tF rom asws : J a r d i n i e r .
La conclusion que le jardinier est le meurtrier mène à une contradiction.
229 / 365