Professional Documents
Culture Documents
Michel Gagnon
Introduction
Langage de base AL
2.1 Syntaxe du langage AL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Smantique du langage AL . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
6
8
Langages de la famille AL
3.1 Les constructeurs de la famille AL . . . . . . .
3.1.1 Constructeur dunion U . . . . . . . .
3.1.2 Quantification existentielle complte E
3.1.3 Constructeur de fonctions F . . . . . .
3.1.4 Constructeur dinversion I . . . . . . .
3.1.5 Restriction de cardinalit N . . . . . .
3.1.6 Restriction de cardinalit qualifie Q .
3.1.7 Ngation sans restriction (C) . . . . . .
3.1.8 Remarques supplmentaires . . . . . .
3.2 Exercices . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
8
9
9
9
10
11
11
12
13
La ABox et la TBox
14
4.1 Terminologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2 Description du monde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3 Dclaration dindividus dans une terminologie . . . . . . . . . . . . . . . . . . . . 16
Infrence
5.1 Rduction linsatisfaisabilit
5.2 limination de la TBox . . . .
5.3 Infrence avec la ABox . . . .
5.4 Monde ferm et monde ouvert
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
18
18
19
19
Famille SH
Le langage OWL
9.1 Ontologies en OWL 2 . . . . . . . . . . . . . . . . .
9.2 Axiomes de base pour dcrire des ontologies simples
9.3 Descriptions de classes complexes . . . . . . . . . .
9.4 Descriptions des proprits . . . . . . . . . . . . . .
9.5 Dclaration de faits . . . . . . . . . . . . . . . . . .
9.6 Les diffrents profils de OWL 2 . . . . . . . . . . .
9.6.1 OWL Lite . . . . . . . . . . . . . . . . . . .
9.6.2 OWL EL . . . . . . . . . . . . . . . . . . .
9.6.3 OWL QL . . . . . . . . . . . . . . . . . . .
9.6.4 OWL RL . . . . . . . . . . . . . . . . . . .
9.7 Traduction en RDF . . . . . . . . . . . . . . . . . .
9.8 Exercices . . . . . . . . . . . . . . . . . . . . . . .
33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
35
36
39
39
40
42
42
45
45
46
46
54
1 Introduction
Ce que nous entendons par logique descriptive est en fait une famille de formalismes pour reprsenter une base de connaissances dun domaine dapplication. Plus spcifiquement, ces logiques
permettent de reprsenter des concepts (aussi appels classes) dun domaine et les relations (aussi
appeles rles) qui peuvent tre tablies entre les instances de ces classes. Par exemple, on pourrait
les utiliser pour reprsenter les concepts humain, femme et mre, et spcifer que toute mre est une
femme qui est le parent dau moins un humain. Comme toute logique, des mcanismes dinfrence
y sont associs, permettant ainsi de dduire de nouveaux faits partir dune base de connaissances.
Supposons par exemple quune base de connaissances dfinit le concept mre comme sous-classe
du concept humain. Si on apprend quune entit est une mre, on peut automatiquement dduire
quelle est aussi un humain. De mme, avec la dfinition de mre ci-dessus, si un fait tablit que
quune femme a deux enfants, on peut dduire quelle est une mre.
Dans une base de connaissances en logique descriptive, on distingue deux composantes : la
TBox et la ABox. La premire contient tous les axiomes dfinissant les concepts du domaine,
comme la dfinition du concept de mre prsent au paragraphe prcdent. La ABox contient des
assertions sur des individus, en spcifiant leur classe et leurs attributs. Cest dans la ABox quon
indiquerait que Marie est une femme et quelle a deux enfants. Le type dinfrence ralis avec la
TBox diffre de celui ralis avec la ABox.
Dans la TBox, on est gnralement intress savoir si tous les concepts dfinis sont consistants, cest--dire si, pour chaque concept, il peut exister au moins un individu membre de cette
classe. Par exemple, si on dfinit une classe comme tant la fois une sous-classe des classes
homme et femme et que la TBox spcifie aussi que ces deux classes sont disjointes (cest--dire
quaucune entit ne peut la fois tre un homme et une femme), on se retrouve alors avec un
concept inconsistant. Un autre type dinfrence ralis avec la TBox est la subsomption, qui consisite dduire quune classe est une sous-classe dune autre classe, mme si cela nest pas dclar
explicitement dans la base de connaissances. Par exemple si on spcifie que humain est une sousclasse de animal, on peut dduire quune mre est un animal.
Dans la ABox, on retrouve les assertions sur les individus. En dautres mots, on y spcifie
quelles sont les entits du monde et quelle classe elles appartiennent. Cest dans la ABox, par
exemple, quon spcifiera que MARIE est une mre, cest--dire un individu qui est une instance
de la classe mre. La ABox contient aussi des noncs spcifiant les relations qui existent entre les
individus. Ainsi, comme dans la TBox il sera spcifi quune mre doit avoir au moins un enfant,
la ABox devra contenir au moins un autre individu, et une relation entre celui-ci et Marie indiquant
quil est un des ses enfants.
Les infrences avec la ABox visent normalement dterminer si un ensemble dassertions
est consistant, cest--dire si un individu dclar comme instance dune classe peut rellement
tre une instance de cette classe et, similairement, si une relation dclare entre deux individus
est rellement possible. Supposons par exemple quune TBox dclare quun clibataire est une
personne non marie. La ABox sera inconsistante si elle contient un clibataire qui est mari avec
une autre personne.
2 Langage de base AL
Les langages de la logique descriptive sont dtermins par la forme des noncs qui sont permis. La plupart des langages utiliss dcoulent du langage AL (attributive language), dont lexpressivit est plutt limite.
reprsenter la classe des individus qui ne sont pas des animaux raisonnables, cest--dire la classe
(Animal Raisonnable).
Finalement, le langage AL permet de dfinir un concept par des restrictions sur les relations.
On peut par exemple dfinir la classe des individus dont tous les enfants sont des femmes, en utilisant lnonc aEnfant.Femme. On peut dfinir la classe des individus qui ont au moins un
enfant, en utilisant la formule suivante : aEnfant.. Notez que le langage AL ne permet pas
de spcifier un concept avec le quantificateur existentiel. Par exemple, on ne peut pas dfinir la
classe des individus qui ont au moins une fille, qui exigerait un nonce de la forme suivante :
aEnfant.Femme. Seul le concept universel est permis avec le quantificateur existentiel. Voici un
exemple plus complexe, utitilisant des restrictions sur les relations, qui dfnit le concept dun pre
qui na que des filles :
Humain aEnfant. aEnfant.Femme
Littralement, ce concept reprsente lensemble des individus qui sont des humains ayant au
moins un enfant et dont tous les enfants sont des femmes. noter que lnonc suivant ne serait
pas une bonne reprsentation :
Humain aEnfant.Femme
Le problme, cest quun humain qui na pas denfants serait aussi une instance de ce concept.
Supposons par exemple lexistence dune personne qui na pas denfants. On ne peut pas dire
quelle ne respecte pas la restriction. Pour ne pas la respecter, il faudrait trouver au moins un de
ses enfants qui nest pas une fille. Comme cette personne na pas denfants, on ne trouvera pas un
tel contre-exemple, et la restriction est donc respecte.
Pour reprsenter une personne qui na pas denfants, nous devons restreindre la valeur de la
relation aEnfant au concept impossible :
aEnfant.
Pour appartenir ce concept, un individu doit avoir tous ses enfants appartenant au concept
impossible. Il ne peut donc pas avoir denfants.
En rsum, les descriptions possibles dans le langage AL sont les suivantes (on suppose que A
est un concept atomique et C et que D sont des concepts atomiques ou complexes) :
A
A
C D
R.C
R.
(concept atomique)
(concept universel)
(concept impossible)
(ngation atomique)
(intersection de concepts)
(restriction de valeur)
(quantification existentielle limite)
=
=
=
=
=
=
\AI
I(C) I(D)
{a |b.(a, b) I(R) b I(C) }
{a |b.(a, b) I(R)}
On dit que deux concepts C et D sont quivalents, ce qui est dnot par lexpression C D,
si on a I(C) = I(D), quelle que soit linterprtation I. Par exemple, il est assez simple de vrifier
lquivalence aEnfant.Femme aEnfant.Mdecin aEnfant.(Femme Mdecin), cest-dire que lensemble des personnes dont tous les enfants sont des femmes et dont tous les enfants
sont des mdecins est exactement le mme que lensemble des personnes dont tous les enfants sont
la fois femme et mdecin.
Il est noter que, conformment ces dfinitions, nous avons les quivalences suivantes :
C C
C C
Finalement, nous ninsisterons jamais suffisamment sur limportance de bien comprendre la
smantique du quantificateur universel. En particulier, il ne faut jamais oublier que la description
R.C reprsente aussi des entits qui ne ne participent pas du tout la relation R. En effet, pour
respecter une telle description, une entit i doit respecter une des deux conditions suivantes :
1. Pour tout objet j tel que cette entit est lie 1 cet objet par la relation R, cet objet doit
absolument appartenir la classe C.
2. Lentit i nest lie aucun autre objet par la relation R.
Pour mieux comprendre la smantique du langage AL, considrons lensemble des dfinitions
suivantes :
1. Ici, on considre que i est lie j si on a (i, j) dans linterprtation de R, en dautres mot si on a une relation
de i vers j.
Parent aEnfant.
ParentDeFemme aEnfant. aEnfant.Homme
Clibataire mariAvec.
HommeMari Homme mariAvec.
GrandParentChoy aEnfant.(aEnfant.)
Voici une interprtation posssible, qui rfre un monde contenant sept entits (voir aussi la figure
1:
= {a, b, c, d, e, f, g}
I(Homme) = {a, b, c, g}
I(aEnfant) = {(a, c), (b, d), (b, e), (c, g)}
I(mariAvec) = {(b, f ), (f, b)}
Avec cette inteprtation, on obtient les ensembles suivants pour chacune des classes dfinies :
Parent : {a, b, c}
ParentDeFemme : {b}
Clibataire : {a, c, d, e, g}
HommeMari : {b}
GrandParentChoy : {a, d, e, f, g}
On notera dans cette interprtation quon a plus dindividus dans la classe GrandParentChoy
que ce quoi on sattendait. Cest quil y a une erreur dans la description de ce concept.
Homme
d
aEnfant
aEnfant
b
aEnfant
c
g
mariAvec
aEnfant
mariAvec
= {a}
I(Homme) = {}
I(aEnfant) = {}
I(mariAvec) = {}
Il sagit dune interprtation qui correspond un monde qui ne comprend quun seul individu qui
est une femme clibataire nayant pas denfants.
2.3 Exercices
Exercice 3.1
Corrigez la description de GrandParentChoy pour quelle soit plus conforme la ralit.
3 Langages de la famille AL
Le langage prsent dans la section prcdente nest gnralement pas suffisamment expressif
pour reprsenter les ontologies quon utilise en pratique. Il existe donc plusieurs autres constructeurs que lon peut ajouter notre langage pour le rendre plus expressif. Pour dsigner chacun de
ces constructeurs, on utilise un symbole.
Constructeur dunion U
3.1.2
Dans le langage AL, on peut utiliser le quantificateur existentiel pour spcifier quune entit
doit avoir au moins une relation avec un autre objet, mais on ne peut pas spcifier la classe de cet
autre objet. Ceci limite fortement lexpressivit du langage. On ne peut pas, par exemple, dfinir
la classe de ceux qui possdent au moins un chien. Pour ce faire, il faut tendre le langage, en y
ajoutant la quantification existentielle complte (reprsente par le symbole E), qui scrit R.C,
et dont linterprtation est la suivante :
I(R.C)
On peut maintenant reprsenter la classe des gens qui possdent au moins un chien :
possde.Chien
3.1.3
Constructeur de fonctions F
Un autre ajout utile (dnomm F) est la possibilit de spcifier quun rle est en fait une fonction, cest--dire une relation telle que aucune entit ne peut tre relie plus dune autre entit
par cette relation. Prenons par exemple la relation mariAvec, qui nous permettrait de dfinir le
concept HommeMari :
HommeMari Homme mariAvec.
Si on ne spcifie rien de plus, rien nempche une instance de cette classe dtre marie avec
plus dune personne. Pour empcher cela, il nous faut une manire de spcifier que la relation
mariAvec en en fait une fonction. On crira donc un axiome de la forme F un(R) pour dire
quun rle R est une fonction.
3.1.4
Constructeur dinversion I
Dans plusieurs situations, on est intress dfinir un rle qui est linverse dun autre rle. Par
exemple, si Maria regarde Paulo, on sait aussi que Paulo est regard par Maria. Si on utilise deux
relations regarde et estRegardPar, on aimerait que tout fait de la forme regarde(x, y) implique
ncessairement le fait estRegardPar(y, x). Pour ce faire, on utilisera le constructeur dinversion
(dnomme par I) :
estRegardPar regarde
Soit R un rle, la smantique du constructeur dinversion est dfinie de la manire suivante :
I(R ) = {(y, x)|(x, y) I(R)}
3.1.5
Restriction de cardinalit N
{a |{b|(a, b) I(R)}| n}
I( n R)
{a |{b|(a, b) I(R)}| n}
Voici par exemple comment on peut dcrire le concept de pre qui a exactement deux enfants :
Homme 2 aEnfant 2 aEnfant
Il est intressant de remarquer que si on limite les valeurs de cardinalit aux seules valeurs 0
ou 1, on se retrouve avec une logiques ALCF . Notons dabord les quivalences suivantes :
1 R R.
0R
0 R R.
Pour signifier quune relation R est fonctionnelle, il suffit dcrire laxiome suivant :
1R
Cet axiome spcifie que, quelle que soit lentit du monde dcrit, elle ne peut tre lie plus
dune entit par la relation R, ce qui impose donc que R soit une fonction (partielle). Ainsi, pour
indiquer que la relation mariAvec est fonctionnelle, on crira laxiome suivant :
1 mariAvec
Remarquez que si on nnonce pas laxiome prcdent, la description suivante nimplique pas que
la relation mariAvec soit une fonction :
HommeMari Homme mariAvec. 1 mariAvec
Cet axiome spcifie quun homme mari doit tre mari avec exactement une personne. Mais il
sagit dune restriction qui ne sapplique qu cette description. On pourrait, par exemple, dfinir
le concept de femme marie de manire permettre quune femme ait plusieurs maris, et ce en
utilisant la mme relation :
FemmeMarie Femme mariAvec.Homme
10
Les deux contructeurs pour la restriction de cardinalit que nous venons de voir ont une limitation importante. En effet, comme la restriction sapplique la relation, on ne peut pas imposer
le nombre minimal ou maximal dentits dune classe spcifique auquel on peut tre li par une
relation. Par exemple, si on a la relation possde, on ne pourra pas, dans une logique ALN , dcrire la classe des gens qui possdent plus de deux chiens. Pour cela, il faut plutt avoir accs un
constructeur de restriction de cardinalit qualifie (dnomme Q) :
I( n R.C)
I( n R.C)
Avec ces constructeurs notre disposition, nous sommes maintenant en mesure de dcrire la
classe des gens qui possdent deux chiens ou plus :
2 possde.Chien
3.1.7
Finalement, on peut tendre le langage en ajoutant la possibilit dutiliser la ngation sans aucune
restriction. Cette caractristique est dsigne par le symbole C (pour complment). Avec cet ajout
il est devient plus facile de dcrire la classe des gens qui nont pas denfants de sexe masculin :
aEnfant.Homme
On pourrait aussi reprsenter la classe de ceux qui nont aucun fils qui est mari :
aEnfant.(Homme 1 mariAvec)
Il est noter que cette dernire extension du langage ne le rend pas plus expressif. En effet,
on peut toujours tout ramener la ngation du langage AL. Ainsi, les concepts prcdents sont
11
Remarques supplmentaires
Nous voici donc maintenant avec plusieurs nouveaux langages de la logique descriptive, selon
la combinaison de constructeurs que lon ajoute au langage AL. Par exemple, si on ajoute lunion
de concepts, on se retrouve avec le langage ALU. Si on ajoute la quantification existentielle complte et la restriction de cardinalit, on obtient le langage ALEN . Mais il est noter que ces
constructeurs ne sont pas tous indpendants. On a dj vu que la ngation tendue najoute rien
lexpressivit, mais on peut aussi dmontrer que ALC et ALUE sont quivalents en terme dexpressivit. Ceci revient dire que la quantification existentielle complte et lunion de concepts ne
sont pas ncessaires si on a la ngation tendue.
Pour bien comprendre cela, il faut dabord savoir quil y a plusieurs quivalences logiques dans
ces langages :
(C D)
(C D)
R.A
R.A
( n R)
( n R)
C
C D
C D
R.A
R.A
(n 1) R
(n + 1) R
C
Pour mieux comprendre les troisime et quatrime quivalences, imaginez dabord la classe des
parents qui nont aucune fille, qui serait reprsente de la manire suivante : aEnfant.Femme.
Il est clair que pour tout membre de cette classe, il faut que chacun de ses enfants ne soit pas
une femme : aEnfant.Femme. Si on considre maintenant la classe de ceux dont les enfants ne
sont pas tous des femmes, soit aEnfant.Femme, on voit quon peut de manire quivalente la
dcrire comme lensemble des personnes qui ont au moins un enfant qui nest pas une femme :
aEnfant.Femme.
Ayant ces quivalences, il est ais de voir quon peut exprimer lunion de concepts en nutilisant
que la ngation et lintersection : C D (C D). De mme, la quantification existentielle
nest pas ncessaire si on a la quantification universelle : R.C R.C. On remarque par
contre que lon obtient des formules plus complexes et moins intuitives.
noter quil nous reste voir deux constructeurs important (ceux de la famille O), qui permettent dintroduire des individus dans des descriptions de concepts. Il sont prsents la section
suivante.
12
3.2 Exercices
Exercice 3.1
Reprsentez les concepts suivants en logique descriptive :
Ceux qui ne possdent ni chien ni chat.
Les hommes vgtariens qui habitent en campagne.
Les femmes qui naiment pas les chats.
Exercice 3.2
crivez un axiome pour indiquer que si un individu appartient la classe A, il appartient aussi la
classe B ou C, mais jamais aux deux en mme temps.
Exercice 3.3
Soient deux classes A et B. crivez en logique descriptive un axiome de subsomption pour indiquer que ces deux classes sont disjointes.
Exercice 3.4
Marie est une personne qui naime que les personnes qui naiment pas le fromage. Lequel (ou
lesquels) des axiomes suivants reprsente correctement ce fait en logique descriptive :
a) (Personne aime.(Personne aime.Fromage))(MARIE)
b) (Personne aime.(Personne aime.Fromage))(MARIE)
c) (Personne aime.(Personne aime.Fromage))(MARIE)
Exercice 3.5
Soit la description suivante en logique descriptive :
A R.A R.A B
a) Dites, pour chacune des interprtations suivantes, si elle satisfait cette description (justifiez vos
rponses) :
Interprtation 1 :
I(A) = {a, b, c, d}
I(B) = {e, f }
I(R) = {(a, b), (b, c), (c, d), (d, a), (e, a), (f, a)}
Interprtation 2 :
I(A) = {a, b, c}
I(B) = {e}
I(R) = {(a, a), (a, b), (a, c), (b, a), (b, c), (c, a), (e, e)}
13
R.C
R.(R.C) R.C
4 La ABox et la TBox
Nous avons dj vu, dans lintroduction, quune base de connaissances en logique descriptive
est compose dune TBox, qui reprsente la terminologie dun domaine, et dune ABox qui dclare
des individus particuliers dans ce domaine. Nous allons maintenant aborder plus formellement ces
deux composantes.
4.1 Terminologies
Jusqu maintenant, nous avons vu plusieurs langages qui permettent dcrire des formules
complexes dcrivant des concepts. Nous allons maintenant dfinir le concept de terminologie. Mais
il nous faut dabord dfinir le concept daxiome terminologique, qui est en fait toute formule de la
forme suivante :
C D ou C D
La premire forme dclare que toute entit de la classe C appartient aussi la classe D, alors
que la seconde indique que les concepts C et D sont quivalents, cest--dire que si on appartient
la classe C, on appartient ncessairement la classe D et vice versa. La smantique de ces deux
axiomes est sans surprise :
I(C D)
I(C D)
14
I(a)
On dit quune interprtation I satisfait une assertion C(a) si I(a) I(C), autrement dit, il
est vrai que a appartient la classe C si lentit qui lui correspond dans le monde fait partie de
lensemble des objets du monde dnot par C. De mme, on dit quune interprtation I satisfait
une assertion de la forme R(a, b) si (I(a), I(b)) I(R). Une interprtation I satisfait une ABox
A si elle satisfait toutes les assertions de A. Si une interprtation I satisfait une ABox A, on dit
que I est un modle de A. Finalement, on dira quune interprtation I satisfait une assertion ou
une ABox A relativement une TBox T si, en plus dtre un modle de ou A, elle est aussi un
modle de T .
R:a
La smantique de ce constructeur est la suivante :
I(R : a) = {d | (d, I(a)) I(R)}
Voici comment, avec ce constructeur, on peut dfinir le concept de citoyen canadien :
CitoyenCanadien lieuNaissance : CANADA naturalisPar : CANADA
5 Infrence
En logique descriptive, il y a quatre proprits quon peut tre interess prouver pour une
TBox T :
Satisfaisabilit : Un concept C est satisfaisable relativement T sil existe un modle I de T
tel que I(C) 6= . En dautres mots, un concept est satisfaisable sil existe au moins une
entit du monde dcrit qui peut appartenir lensemble dcrit par ce concept. Par exemple,
le concept Homme Homme est insatisfaisable, puisque lintersection dun ensemble
avec son complment est toujours lensemble vide. Il est donc impossible quune entit du
monde appartienne cette classe.
Subsomption : Un concept C est subsum par un concept D relativement T si I(C) I(D)
pour tout modle I de T . Dans ce cas, on crira T |= C D. Par exemple, si une terminologie T contient laxiome Mre Femme aEnfant.Personne, il est relativement
ais de dmontrer la subsomption suivante : Mre Femme. Autrement dit, si une entit
appartient lensemble des mres, elle appartient aussi lensemble des femmes.
quivalence : Deux concepts C et D sont quivalents relativement T si I(C) = I(D) pour
tout modle I de T . Dans ce cas, on crira T |= C D.
"Disjointness" : Deux concepts C et D sont disjoints relativement T si I(C) I(D) =
pour tout modle I de T . On dsignera ce fait par lnonc suivant : T |= C D
. Par exemple, si on considre la terminologie fournie la fin de la section 4.1, on peut
dmontrer que les concepts Pre et Mre sont disjoints. En effet, selon la dfinition du
concept Homme, un homme fait partie du complment de lensemble des femmes. Ainsi,
une entit ne peut tre la fois un homme et une femme, ce qui implique quil ne peut pas
tre la fois un pre et une mre, puisque par dfinition un pre est aussi un homme, et une
mre est aussi une femme.
17
On peut alors utiliser une technique de preuve, comme celle montre plus loin, pour prouver
linsatisfaisabilit de la formule (3).
19
( 1 aEnfant)(PAULO)
Cette hypothse du monde ouvert a un impact important dans la manire de faire des infrences
en logique descriptive. Pour illustrer cela, considrons la ABox suivante, que nous dnommerons
Aoe :
aEnfant(JOCASTE,OEDIPE)
aEnfant(OEDIPE,POLYNICE)
aEnfant(JOCASTE,POLYNICE)
aEnfant(POLYNICE,THERSANDRE)
parricide(OEDIPE)
parricide(THERSANDRE)
Supposons maintenant que lon dsire savoir si Jocaste a un enfant qui est un parricide et qui a
lui-mme un enfant qui nest pas un parricide. Autrement dit on veut vrifier le fait suivant :
Aoe |= (aEnfant.(Parricide aEnfant.(Parricide))(JOCASTE)
Si on utilise lhypothse du monde ferm, on sera amen faire le raisonnement suivant :
Jocaste a deux enfants : Oedipe et Polynice. Par lhypothse du monde ferm, elle
na pas dautres enfants. Donc, au moins un de ces deux enfants doit rpondre la
description spcifie, cest--dire tre un parricide et avoir un enfant qui nest pas un
parricide. Considrons dabord Oedipe, qui est un parricide. La ABox spcifie que
Oedipe est le pre de Polynice. Comme rien ne permet de dterminer si Polynice est
ou nest pas un parricide, lhypothse du monde ferm nous amne dduire quil
nen est pas un. On a donc trouv un cas qui respecte la description spcifie.
Avec lhypothse du monde ouvert, on ne peut rien affirmer sur le fait que Polynice soit un
parricide ou non. Par contre, par le principe du tiers exclu normalement utilis en logique, on sait
quil est lun ou lautre. On peut dans un premier temps voir ce que lon peut dduire si on suppose
que Polynice est un parricide, et ensuite considrer le cas o il nen est pas un. Supposons donc
que Polynice est un parricide. On sait quil est le fils de Jocaste et quil est le pre de Thersandre,
qui nest pas un parricide. La description est donc respecte. Supposons maintenant quil nest pas
un parricide. Comme il est le fils de Oedipe, qui est lui-mme un parricide et fils de Jocaste, la
description est encore respecte. Ainsi, que Polynice soit un parricide ou non, la description est
consistante. La preuve est donc faite.
Ce que nous montre cet exemple est que les preuves sont plus complexes avec lhypothse du
monde ouvert. On est souvent appel envisager plusieurs situations alternatives afin de faire la
preuve.
Un autre aspect important de la logique descriptive est quelle ne suppose pas lunicit des
noms. Cest--dire que deux noms diffrents ne signifient pas ncessairement quon a affaire
deux entits distinctes du monde dcrit. Ainsi, la ABox suivante nimplique pas que Paulo a deux
enfants, parce que rien ne nous garantit que Francisco et Chico rfrent deux entits diffrentes :
20
aEnfant(PAULO,FRANCISCO)
aEnfant(PAULO,CHICO)
Pour tre sr que deux entits diffrentes sont reprsentes, il faudrait ajouter laxiome suivant
la ABox :
FRANCISCO 6= CHICO.
21
part. Revenant notre exemple prcdent, on peut donc ajouter les deux faits suivants :
(2) (possde.(Livre Antiquit))(a)
(3) (possde.Livre possde.Antiquit)(a)
On sait maintenant que notre individu a possde un livre qui est une antiquit. On ne sait pas
quel est cet objet, mais on sait quil existe. Appelons b ce nouvel individu. On peut alors crire :
(4) possde(a, b)
(5) (Livre Antiquit)(b)
Par un raisonnement similaire ce que nous avons fait prcdemment, on peut ajouter les faits
suivants :
(6) Livre(b)
(7) Antiquit(b)
Considrons maintenant le fait (3) que nous avons ajout plus tt. Il nous indique que a appartient la classe de ceux qui ne possdent aucun livre ou qui ne possdent aucune antiquit.
Autrement dit, au moins un des deux noncs suivants doit tre vrai :
(8) (possde.Livre)(a)
(9) (possde.Antiquit)(a)
Supposons que (8) est vrai. On sait dj que a possde b. Lobjet ne peut donc pas tre un livre :
(10) Livre(b)
Or, ceci contredit lnonc (6). Similairement, conformment lnonc (9), on peut dduire :
(11) Antiquit(b)
Ceci contredit lnonc (7). Donc, quelle que soit la possibilit considre, on arrive toujours
une contradiction, ce qui signifie que notre nonc initial (1) est insatisfaisable. La subsomption
est donc prouve. Si lon dsigne par la contradiction, on peut reprsenter la preuve par un arbre,
o chaque branchement reprsente des alternatives :
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(possde.Livre)(a)
Livre(b)
(9)
(11)
22
(possde.Antiquit)(a)
Antiquit(b)
Ainsi, pour faire une preuve, on cre dabord lnonc dont on veut montrer linsatisfaisabilit. Ensuite, en appliquant un squence de rgles, on ajoute de nouveaux noncs. On cre ainsi
ce quon appelle un tableau, qui est en fait un arbre, cause des branchements qui peuvent y
apparatre, comme dans lexemple prcdent.
Lorsquon a ajout la contradiction dans une branche, on dit quelle est ferme et on cesse
den faire lexpansion. Lorsque toutes les branches dun tableau sont fermes, on dit que le tableau est ferm et lnonc initial est considr insatisfaisable. Si un tableau contient au moins
une branche ouverte et quon ne russit plus appliquer des rgles pour en faire lexpansion, le
processus sarrte et on conclut que lnonc initial nest pas insatisfaisable.
Condition
A contient (C1 C2 )(x) et ne contient pas dj
les deux noncs C1 (x) et C2 (x).
A contient (C1 C2 )(x) et ne contient aucun des
deux noncs C1 (x) et C2 (x).
Action
On ajoute A les noncs C1 (x) et C2 (x)
On ajoute A le branchement suivant :
C1 (x) C2 (x)
rgle-
rgle-
rgle-
rgle-
A contient (R.C)(x) et il nexiste aucun individu z tel que R(x, z) et C(z) sont aussi dans A
A contient (R.C)(x) et R(x, y), mais ne
contient pas C(z)
A contient ( n R)(x) et il ny a pas dans A
des individus z1 , . . . , zn qui sont tous distincts
(cest--dire quon doit avoir explicitement dans
A lnonc zi 6= zj pour chaque paire possible
avec cet ensemble dindividus) et qui sont tels que
A contient la relation R(x, zi ) pour tous ces individus (1 i n).
A contient ( n R)(x) et les noncs
R(x, y1 ), . . . , R(x, yn+1 ). Il nexiste aucune
identit yi = yj dans A pour (1 i n + 1),
(1 j n + 1), i 6= j
les branches existantes partir du point o la rgle sapplique. Supposons par exemple que le
traitement de lnonc A, dans le tableau de la figure 2a, entrane lajout dun branchement, avec
lnonc B dun ct et lnonc C de lautre ct. Le tableau rsultant sera celui illustr la figure
2c.
On ajoute la contradiction la fin dun chemin A lorsquune des situations suivantes se
prsente :
A contient la fois un nonc de la forme C(x) et son complment C(x)
A contient un nonc de la forme C(x), un nonc de la forme C(y) et une des identits
x = y ou y = x.
A contient un nonc de la forme (x) (qui, rappelons-le, signifie que lindividu x ne peut
pas exister)
...
...
...
...
...
...
...
A
...
...
...
...
...
...
...
...
...
...
...
...
...
...
A
...
...
...
...
B
...
...
...
...
...
...
B
...
...
...
...
A
...
...
...
...
...
...
...
BC BC
(a)
(b)
(c)
24
2 aEnfant Parent
Puis il faut liminer la TBox :
2 aEnfant (aEnfant.)
Finalement, il faut normaliser lnonc :
2 aEnfant aEnfant.
On peut maintenant commencer la preuve par tableau qui, au moment de lapplication de la rgle, sera dans ltat suivant :
(1) ( 2 aEnfant aEnfant.)(a)
(2)
( 2 aEnfant)(a)
(3)
(aEnfant.)(a)
Ici, daprs lnonc (2), on sait que lindividu a doit avoir au moins deux enfants. Or, dans le
tableau, ceux-ci ne sont pas explicits. Cest exactement ce que la rgle- nous permet de faire :
(1) ( 2 aEnfant aEnfant.)(a)
(2)
( 2 aEnfant)(a)
(3)
(aEnfant.)(a)
(4)
aEnfant(a, b)
(5)
aEnfant(a, c)
(6)
b 6= c
La prochaine tape dexpansion applique la rgle- lnonc (3), ce qui entrane lajout de
deux noncs spcifiant que les individus b et c ne peuvent pas exister, do lintroduction de la
contradiction qui ferme le tableau :
(1) ( 2 aEnfant aEnfant.)(a)
(2)
( 2 aEnfant)(a)
(3)
(aEnfant.)(a)
(4)
aEnfant(a, b)
(5)
aEnfant(a, c)
(6)
b 6= c
(7)
(b)
(8)
(c)
(9)
Supposons maintenant la terminologie suivante :
Parent aEnfant.
ParentDeFamilleNombreuse Parent 3 aEnfant
25
Nous voulons maintenant dmontrer quun parent de quatre enfants ou plus est un parent de famille
nombreuse, soit :
4 aEnfant ParentDeFamilleNombreuse
Pour ce faire, on dmarre le tableau avec le fait ( 4 aEnfant ParentDeFamilleNombreuse)(a)
que lon normalise et rcrit de la manire suivante aprs limination de la TBox :
( 4 aEnfant (aEnfant. 2 aEnfant))(a)
Remarquez quici nous avons appliqu la rgle dquivalence ( n R) (n 1) R. Voici
ltat du tableau au moment dappliquer la rgle- :
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
( 2 aEnfant)(a)
Considrons maintenant les individus b, c et d. La rgle- nous dit quil faut crer trois nouvelles branches, qui seront toutes rapidement fermes :
26
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(aEnfant.)(a)
(b)
(17)
(18)
(19)
b=c
( 2 aEnfant)(a)
(20)
(21)
b=d
(22)
(23)
c=d
6.3 Exercices
Exercice 6.1
Soit la classe MonChien dfinie de la manire suivante :
MonChien Chien aime.aime.Chat aime.(Chien aime.)
Prouvez laxiome de subsomption suivant :
MonChien aime.aime.Chien Chien aime.Chien
Exercice 6.2
Soit la base de connaissances suivante :
R(a, b)
(R.(S.C) 1R)(a)
(R.(S.D))(a)
Prouvez que lassertion suivante est une consquence logique de cette base de connaissances :
(S.(C D))(b)
Exercice 6.3
Prouvez R. R.(R.).
Exercice 6.4
Soit la terminologie suivante :
27
ABC
B DE
C F E
Prouvez laxiome de subsomption suivant :
ADF
Exercice 6.5
Soit la base de connaissances suivante :
(R.D 2R)(a)
R(a, b)
R(a, c)
U (b)
(U D)(c)
Prouvez que lassertion suivante est une consquence logique de cette base de connaissances :
D(b)
Exercice 6.6
Dterminez si les axiomes de subsomption suivants sont vrais :
a)
b)
c)
d)
R.A
R.A
R.A
R.A
R.B
R.B
R.B
R.B
1R R.(A B)
1R R.(A B)
R.(A B)
R.(A B)
Exercice 6.7
Soit la base de connaissances suivante :
Woman Person Female
Man Person Female
Prouvez que lassertion suivante est une consquence logique de cette base de connaissances :
Person Woman Man
Exercice 6.8
Soit la base de connaissances suivante :
28
29
R.A R. R.A
Exercice 6.11
Soit lontologie suivante :
ABC D
B R.(E F ) 1R
C R.(E F )
D R.(F E)
Prouvez laxiome de subsomption suivant :
A R.(E F )
Exercice 6.12
Soit lontologie suivante :
AB
B C R.A
C D R.B
Prouvez laxiome de subsomption suivant :
AD
Attention : Pour faire la preuve, il faut dabord normaliser le premier axiome, cest--dire le transformer en quivalence en ajoutant une classe arbitraire A :
ABA
Exercice 6.13
Soit lontologie suivante, reprsente en logique descriptive :
A B C
D R.A S.B
E D S.A
F D S.B
laide de la mthode du tableau, dterminez si E F .
Exercice 6.14
Prouvez que si A et B sont deux classes disjointes, cela implique logiquement laxiome suivant :
R.A R.B 2R
Exercice 6.15
30
31
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(aime.)(a)
(b)
(11)
(12)
Animal(a)
7.1 Exercices
Exercice 7.1
Soit lontologie suivante :
Plante Vivant aime.Plante
aime. Animal
Plante Animal
Montrez que le concept Plante est insatisfaisable.
Exercice 7.2
Soit lontologie suivante :
AB
B C R.A
C D R.B
Prouvez laxiome de subsomption suivant :
AD
Exercice 7.3
Soit lontologie suivante :
C1 C2 R1 .(C3 C4 )
1R1 C5
R1 .C6
C3 C0 R2 .C0
C4 C0 R2 .C0
En utilisant la mthode du de tableau dmontrez laxiome de subsomption suivant :
C1 R1 .(C0 C6 )
32
8 Famille SH
Les langages de la familles AL nous permettent de faire des descriptions complexes de concepts,
mais sont plutt limits en ce qui concernes les rles. Tandis quon a notre disposition plusieurs
constructeurs pour construire une description en combinant plusieurs concepts, on ne peut rien
dire sur les rles. On ne peut que les utiliser dans les descriptions de concepts. Or, dans plusieurs
situations, on aimerait tablir certaines restrictions sur les relations.
Supposons par exemple une relation aDescendant, qui relie une personne un de ses descendants. On sait que la relation aEnfant est un cas particulier de la relation aDescendant. Autrement
dit, aEnfant est une sous-proprit de aDescendant : si une paire dindividus ha, bi appartient
I(aEnfant), elle appartient aussi I(aDescendant). On se retrouve donc ici avec une hirarchie
de rles. On sait aussi que la relation aDescendant est transitive : si A est un descendant de B qui
est lui-mme un descendant de C, A est aussi un descendant de C.
Si la logique ALC on ajoute la possibilit dtablir quune relation est une sous-proprit
dune autre relation et la possibilit de dfinir une relation transitive, on se retrouve avec une
logique nettement plus expressive, dnomme SH. On crira T r(R) pour signifier quune relation
R est transitive, et R1 R2 pour signifier que R1 est une sous-proprit de R2 .
La figure 3 rsume les familles de logiques descriptives prsente dans ce document.
9 Le langage OWL
Dans sa premire version, propose en 2004 par le consortium W3C [?], le langage OWL
est compos de trois sous-langages : OWL-Lite, OWL-DL et OWL-Full. OWL-Lite correspond
essentiellement la famille SHIF, alors que OWL-DL correspond essentiellement la famille
SHOIN . En fait, plus rigoureusement, il sagit des familles SHIF(D) et SHOIN (D), parce
quon y distingue deux types distincts de rles. Les rles qui lient deux individus, tel que vu tout
au long du prsent document, et les rles qui associent un individu avec un littral (do le D, pour
Data property).
Les sous-langages OWL-Lite et OWL-DL ne sont pas des extensions de RDF, dans le sens
quun triplet RDF nest pas ncessairement valide dans ces deux sous-langages. Cest pour cette
raison quon a ajout le sous-langage OWL-Full, qui comprend tout OWL-DL, avec en plus tout
RDF.
Depuis 2009, le consortium a officiellement lanc OWL 2, qui se distingue de la premire
version par un pouvoir expressif augment et une limination de la dcomposition en trois souslangages. On parle plutt de profils, en liminant de OWL 2 certains lments du langage, limitant ainsi son pouvoir expressif. Ainsi, OWL-Full nexiste plus, alors que OWL-Lite et OWL-DL
peuvent tre considrs comme des profils de OWL 2. Actuellement, trois profils de OWL 2 sont
33
(C D) (R.C) (C)
AL
Hirarchies
de rles
Rles
transitifs
ALC
SH
ALCN
SHOIN
(OWL-DL)
( nR)
( nR)
ALCQ
Q
( n R.C)
( n R.C)
SHIQ
SHIF
(OWL-Lite)
ALCF
O
(individus)
I
(inverse)
F
(fonctions)
34
Ontology(local:monOntologie
Import( <http://www.exemple.org/ontologies/animaux.owl> )
)
Syntaxe Turtle :
@prefix
@prefix
@prefix
@prefix
@prefix
local: <http://www.polytml.ca/mg/voc#> .
owl: <http://www.w3.org/2002/07/owl#> .
rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
xsd: <http://www.w3.org/2001/XMLSchema#> .
local:monOntologie
a owl:Ontology ;
owl:imports <http://www.exemple.org/ontologies/animaux.owl> .
videmment, une ontologie qui en importe une autre et qui najoute rien est sans intrt. Une
ontologie devrait minimalement ajouter au moins un lment nouveau. Par exemple, si lontologie importe contient la classe Chien, notre ontologie pourrait y ajouter la sous-classe Caniche :
Syntaxe fonctionnelle :
Prefix(local:=<http://www.polytml.ca/mg/voc#>)
Prefix(autre:=<http://www.exemple.org/ontologies/>)
Prefix(owl:=<http://www.w3.org/2002/07/owl#>)
Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)
Prefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)
Prefix(xsd:=<http://www.w3.org/2001/XMLSchema#>)
Ontology(local:monOntologie
Import(<http://www.exemple.org/ontologies/animaux.owl>)
35
Declaration(Class(local:Caniche))
SubClassOf(local:Caniche autre:Chien)
)
Syntaxe Turtle :
@prefix local: <http://www.polytml.ca/mg/voc#> .
@prefix autre: <http://www.exemple.org/ontologies/> .
@prefix
@prefix
@prefix
@prefix
owl: <http://www.w3.org/2002/07/owl#> .
rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
xsd: <http://www.w3.org/2001/XMLSchema#> .
local:monOntologie
a owl:Ontology ;
owl:imports <http://www.exemple.org/ontologies/animaux.owl> .
local:Caniche a owl:Class ;
rdfs:subClassOf autre:Chien .
Syntaxe Turtle :
36
... (prfixes)
local:monOntologie a owl:Ontology .
local:epouse a owl:ObjectProperty ;
rdfs:subPropertyOf local:conjoint .
local:conjoint a owl:ObjectProperty .
local:age a owl:DatatypeProperty .
Syntaxe Turtle :
... (prfixes)
local:monOntologie a owl:Ontology .
local:epouse a owl:ObjectProperty ;
rdfs:domain local:Homme ;
rdfs:range local:Femme .
Pour construire la ABox, on dispose en OWL des termes ClassAssertion, ObjectPropertyAssertion et DatPropertyAssertion. Le premier permet de spcifier la classe
dun individu, alors que les deux autres permettent dtablir une relation entre un individu et un
autre indidividu ou un littral, respectivement. Voici comment on pourrait reprsenter en OWL que
Jean est un homme de 30 ans qui est mari Marie :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
Declaration(ObjectProperty(local:epouse))
Declaration(DataProperty(local:age))
Declaration(Class(local:Homme))
ClassAssertion(local:Homme local:Jean)
ObjectPropertyAssertion(local:epouse local:Jean local:Marie)
DataPropertyAssertion(local:age local:Jean "30"^^xsd:integer)
)
Syntaxe Turtle :
37
... (prfixes)
local:monOntologie a owl:Ontology .
local:epouse a owl:ObjectProperty .
local:age a owl:DatatypeProperty .
local:Homme a owl:Class .
local:Jean a local:Homme .
local:Jean local:epouse local:MArie .
local:Jean local:age "30"^^xsd:integer .
Jusqu maintenant, nous avons vu peu de choses qui distinguent OWL de RDF : une redfinition du concept de classe, qui est en fait un sous-ensemble du concet de classe en RDF, la
distinction de deux types de proprits. Nous allons maintenant aborder des lments de OWL qui
nous mnent nettemetn au del de RDF.
Dabord, en OWL, on peut dclarer que deux classes sont quivalentes ou disjointes ( noter
que le nombre ditems que peut contenir un terme EquivalentClasses ou DisjointClasses
nest pas limit 2) :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
Declaration(Class(local:Homme))
Declaration(Class(local:Femme))
Declaration(Class(local:Feminin))
EquivalentClasses(local:Femme local:Feminin)
DisjointClasses(local:Homme local:Femme)
)
Syntaxe Turtle :
... (prfixes)
local:monOntologie a owl:Ontology .
local:Homme a owl:Class.
local:Femme a owl:Class.
local:Feminin a owl:Class.
local:Femme owl:equivalentClass local:Feminin .
[] a owl:allDisjointClasses ;
owl:members (local:Homme local:Femme) .
On remarque que la reprsentation de classes disjointes en RDF nest pas aussi directe que
celle de classes quivalentes. Il faut supposer une entit anonyme dont les membres sont indiqus
par une liste de classes.
Finalement, on ne peut pas en RDF spcifier quune relation nexiste pas entre deux entit,
alors quon peut le faire en OWL. Voci, par exemple, comment on pourrait indiquer que Jean na
38
pas 30 ans et quil nest pas mari avec Anne ( noter que la traduction en RDF se ressemble dans
les deux cas, lexception de la proprit utilise dans le dernier triplet, soit targetValue au
lieu de targetIndividual :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
NegativeObjectPropertyAssertion(local:epouse local:Jean local:Anne)
NegativeDataPropertyAssertion(local:age local:Jean "30"^^xsd:integer )
)
Syntaxe Turtle :
... (prfixes)
local:monOntologie
a owl:Ontology .
[] a owl:NegativePropertyAssertion ;
owl:sourceIndividual
local:Jean ;
owl:assertionProperty local:epouse ;
owl:targetIndividual
local:Anne .
[] a owl:NegativePropertyAssertion ;
owl:sourceIndividual
local:Jean ;
owl:assertionProperty local:age ;
owl:targetValue "30"^^xsd:integer .
39
Cet axiome nimpose pas du tout que tous les lments du domaine de R appartiennent la
classe C3 . Rien nempcherait dajouter lontologie un autre axiome de la forme suivante :
C4 C5 R.C6
Syntaxe Turtle :
... (prfixes)
local:monOntologie a owl:Ontology .
local:Jean a owl:NamedIndividual .
On peut aussi dclarer le type dun individu en indiquant la classe laquelle il appartient. Cette
classe peut tre un concept atomique ou une description plus complexe :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
ClassAssertion(foaf:Person local:Jean)
ClassAssertion(
ObjectIntersectionOf(foaf:Person local:professeur)
local:Paul)
)
Syntaxe Turtle :
40
... (prfixes)
local:monOntologie
a owl:Ontology .
local:Jean a foaf:Person .
local:Paul a [ a owl:Class ;
owl:intersectionOf ( foaf:Person local:professeur ) ]
On peut spcifier quun individu est li ou nest pas li un autre par un proprit :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
ObjectPropertyAssertion(local:Jean local:aime local:Marie)
NegativeObjectPropertyAssertion(local:Jean local:aime local:Anne)
DataPropertyAssertion(local:Jean local:age "34"^^xsd:integer)
)
Syntaxe Turtle :
... (prfixes)
local:monOntologie
a owl:Ontology .
Un autre type de fait permis en OWL-Lite sert spcifier que deux ou plusieurs identificateurs
dindividus reprsentent le mme individu ou des individus diffrents :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
DifferentIndividuals(local:Jean local:Marie)
SameIndividual(local:Marie local:Bouchard)
)
Syntaxe Turtle :
... (prfixes)
local:monOntologie a owl:Ontology .
local:Jean owl:differentFrom local:Marie .
local:Marie owl:sameAs local:Bouchard .
41
Dans le cas o on a plus de deux individus qui sont diffrents, la traduction en RDF est un peu
diffrente :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
DifferentIndividuals(local:Jean local:Marie local:Paul)
)
Syntaxe Turtle :
... (prfixes)
local:monOntologie a owl:Ontology .
[] a owl:AllDifferent ;
owl:members ( local:Jean local:Marie local:Paul ) .
OWL Lite
En OWL-Lite, on peut spcifier que deux ou plusieurs classes sont quivalentes, mais seulement dans le cas o les classes ont un identificateur. Laxiome dquivalence ne peut donc pas
sappliquer des descriptions complexes de classes :
axiome ::= EquivalentClasses( classeID classeID {classeID} )
Le type de restriction que lon peut dclarer en OWL-Lite est plutt limit. On a les quantifications universelle et existentielle, cest--dire des restrictions de la forme R.C et R.C, mais
la description C ne peut pas tre autre chose quun concept atomique. part les quantifications,
on na que les restrictions de cardinalit, mais o les seules valeurs permises sont 0 et 1. Voici la
syntaxe pour les restrictions :
lmentRestrictionIndividu ::= ObjectAllValuesFrom( propID classeID )
| ObjectSomeValuesFrom( propID classeID )
| cardinalitProprit
lmentRestrictionLittral ::= DataAllValuesFrom( propId dataRange )
| DataSomeValuesFrom( propID dataRange )
| cardinalitLittral
cardinalitProprit ::= ObjectMinCardinality(0 propID ) | ObjectMinCardinality(1 propID)
| ObjectMaxCardinality(0 propID) | ObjectMaxCardinality(1 propID)
| ObjectExactCardinality(0 propID) | ObjectExactCardinality(1 propID)
cardinalitLittral ::= DataMinCardinality(0 propID) | DataMinCardinality(1 propID)
| DataMaxCardinality(0 propID) | DataMaxCardinality(1 propID)
| DataExactCardinality(0 propID) | DataExactCardinality(1 propID)
dataRange ::= typeLittralID | rdfs :Literal
42
Il y a plusieurs types de donnes que lon peut utiliser pour qualifier les restrictions de littral.
En voici une liste non exhaustive : xsd:string, xsd:boolean, xsd:decimal, xsd:float,
xsd:double, xsd:time, xsd:date, xsd:int , xsd:positiveInteger.
En guise dexemple, voici une ontologie et sa traduction en OWL-Lite :
En logique descriptive :
Clibataire Personne 0 mariAvec
Vgtarien Personne mange.Vegetal
En OWL-Lite :
Prefix(local:=<http://www.polymtl.ca#>)
Ontology(
EquivalentClasses(
local:Celibataire
ObjectIntersectionOf(
local:Personne
ObjectMaxCardinality(0 local:marieAvec)))
EquivalentClasses(
local:Vegetarien
ObjectIntersectionOf(
local:Personne
ObjectAllValuesFrom(local:mange local:Vegetal))))
43
Finalement OWL-Lite permet dcrire des axiomes qui spcifient des quivalences de proprits :
axiomeProprit ::= EquivalentDataProperties( propID propID {propID} )
| EquivalentObjectProperties( propID propID {propID} )
Il est noter ici que la classification de OWL-Lite comme un langage de la famille SHIF est
un peu abusive. En effet, OWL-Lite ne contient pas tout le pouvoir expressif de la famille ALC,
partir de laquelle la famille SH est dfinie. La ngation et lunion de concepts y sont absents.
Aussi, dans tous les axiomes exprimant les formes C1 C2 ou C1 C2 , les descriptions C1 ne
peuvent pas tre autre chose quun concept atomique, contrairement la logique ALC, qui accepte
aussi des descriptions complexes cette position. Par exemple, laxiome suivant ne pourrait pas
etre reprsent en OWL-Lite : (A B) C. Une consquence importante est limpossibilit de
spcifier que deux classes A et B sont disjointes, puisque cela exige un axiome de la forme suivante : (AB) . Similairement, les restrictions nacceptent que des concepts atomiques, ce qui
rend impossible la reprsentation de laxiome suivant, qui est tout fait acceptable dans le langage
ALC : A B R.(C D). La seule exception est laxiome ObjectPropertyDomain(P C) (similairement pour DataPropertyDomain), qui correspond la forme suivante en logique descriptive :
1 R C.
Pour terminer, voici un exemple dontologie que lon peut exprimer en OWL-Lite.
En logique descriptive :
Clibataire Personne 0 mariAvec
Personne nom.xsd:string age.xsd:int
Homme Personne
Femme Personne
Pre Personne aEnfant.Personne
PreDeFilles Pre aEnfant.Femme
aEnfant.Personne (image)
aEnfant. Personne (domaine)
aEnfant aParent (rle inverse)
1 estConjointDe (rle fonctionnel)
1 estConjointDe (rle injectif)
estConjointDe estConjointDe (rle symtrique)
estConjointDe.Personne (image)
estConjointDe. Personne (domaine)
mariAvec estConjointDe
age.xsd:int (image)
age. Personne (domaine)
nom.xsd:string (image)
nom. Personne (domaine)
En OWL 2 Lite :
44
Prefix(local:=<http://www.polymtl.ca#>)
Ontology(
EquivalentClasses(
local:Celibataire
ObjectIntersectionOf(
local:Personne
ObjectMaxCardinality(0 local:marieAvec)))
SubClassOf(
local:Personne
ObjectIntersectionOf(
DataSomeValuesFrom(local:nom xsd:string)
DataSomeValuesFrom(local:age xsd:int)))
SubClassOf(local:Homme local:Personne)
SubClassOf(local:Femme local:Personne)
EquivalentClasses(
local:Pere
ObjectIntersectionOf(
local:Personne
ObjectSomeValuesFrom(local:aEnfant local:Personne)))
EquivalentClasses(
local:PereDeFilles
ObjectIntersectionOf(
local:Pere
ObjectAllValuesFrom(local:aEnfant local:Femme)))
ObjectPropertyDomain(local:aEnfant local:Personne)
ObjectPropertyRange(local:aEnfant local:Personne)
InverseObjectProperties(local:aEnfant local:aParent)
FunctionalObjectProperty(local:estConjointDe)
InverseFunctionalObjectProperty(local:estConjointDe)
SymmetricObjectProperty(local:estConjointDe)
ObjectPropertyDomain(local:estConjointDe local:Personne)
ObjectPropertyRange(local:estConjointDe local:Personne)
SubObjectPropertyOf(local:marieAvec local:estConjointDe)
DataPropertyDomain(local:age local:Personne)
DataPropertyRange(local:age xsd:int)
DataPropertyDomain(local:nom local:Personne)
DataPropertyRange(local:nom xsd:string))
9.6.2
OWL EL
venir
9.6.3
OWL QL
venir
45
9.6.4
OWL RL
venir
ID rdf:type owl:Ontology .
ID owl:imports OntURI1
...
ID owl:imports OntURIn
T(axiome1 )
...
T(axiomen )
ID owl:imports OntURI
...
ID owl:imports OntURIn
T(axiome1 )
...
T(axiomen )
Pour comprendre certaines rgles de traduction qui suivent, nous aurons parfois besoin dutiliser une fonction de traduction intermdiaire T LIST , qui retourne une liste ditems. Soit un
ensemble ditems item1 , item2 . . . itemn , la fonction T LIST (item1 , item2 . . . itemn ) retourne le
graphe RDF suivant :
[] a rdf:List;
rdf:first T(item1 ) ;
rdf:rest
[ a rdf:List ;
rdf:first T(item2 ) ;
...
[ a rdf:List ;
rdf:first T(itemn ) ;
rdf:rest rdf:nil ] ] .
Il sagit donc dune liste RDF comprenant des expressions elles-mme traduites en RDF.
Traduction des connecteurs :
46
Declaration( Class(C) )
SubClassOf(C1 C22 )
EquivalentClasses(C1 . . . Cn )
DisjointClasses(C1 C2 )
DisjointClasses(C1 . . . Cn ), o n > 2
DisjointUnion(C C1 . . . Cn )
ObjectIntersectionOf(C1 . . . Cn )
ObjectUnionOf(C1 . . . Cn )
ObjectComplementOf(C)
ObjectOneOf(individu1 . . . individun )
47
ObjectAllValuesFrom(P C)
ObjectSomeValuesFrom(P C)
ObjectHasValue(P valeur))
ObjectHasSelf(P))
ObjectHasMinCardinality(n P)
ObjectHasMaxCardinality(n P)
ObjectExactCardinality(n P)
ObjectHasMinCardinality(n P C)
ObjectHasMaxCardinality(n P C)
ObjectExactCardinality(n P C)
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:allValuesFrom T(C) .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:someValuesFrom T(C) .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:hasValue T(valeur) .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:hasSelf "true"^^xsd:boolean .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:minCardinality "n"^^xsd:nonNegativeInteger .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:maxCardinality "n"^^xsd:nonNegativeInteger .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:cardinality "n"^^xsd:nonNegativeInteger .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:minQualifiedCardinality
"n"^^xsd:nonNegativeInteger ;
owl:onClass T(C) .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:maxQualifiedCardinality
"n"^^xsd:nonNegativeInteger ;
owl:onClass T(C) .
[] a owl:Restriction ;
owl:onProperty T(P) ;
owl:qualifiedCardinality
"n"^^xsd:nonNegativeInteger ;
owl:onClass T(C) .
48
DataAllValuesFrom(DP Range)
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:allValuesFrom T(Range) .
[] a owl:Restriction ;
owl:onProperties T LIST (DP1 . . . DPn ) ;
owl:allValuesFrom T(Range) .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:someValuesFrom T(Range) .
[] a owl:Restriction ;
owl:onProperties T LIST (DP1 . . . DPn ) ;
owl:someValuesFrom T(Range) .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:hasValue T(valeur) .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:minCardinality
"n"^^xsd:nonNegativeInteger .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:maxCardinality
"n"^^xsd:nonNegativeInteger .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:cardinality
"n"^^xsd:nonNegativeInteger .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:minQualifiedCardinality
"n"^^xsd:nonNegativeInteger ;
owl:onClass T(Range) .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:maxQualifiedCardinality
"n"^^xsd:nonNegativeInteger ;
owl:onClass T(Range) .
[] a owl:Restriction ;
owl:onProperty T(DP) ;
owl:qualifiedCardinality
"n"^^xsd:nonNegativeInteger ;
owl:onClass T(Range) .
DataSomeValuesFrom(DP Range)
DataHasValue(DP valeur))
DataHasMinCardinality(n DP)
DataHasMaxCardinality(n DP)
DataExactCardinality(n DP)
DataHasMinCardinality(n DP Range)
DataHasMaxCardinality(n DP Range)
DataExactCardinality(n DP Range)
49
Declaration( Datatype(DT) )
DataIntersectionOf(DR1 . . . DRn )
DataUnionOf(DR1 . . . DRn )
DataComplementOf(DR)
DataOneOf(littral1 . . . littraln )
DatatypeRestriction(DT F1 littral1 . . . F1 littraln )
DisjointObjectProperties(P1 P2 )
DisjointObjectProperties(P1 . . . Pn ), o n > 2
50
ClassAssertion(C individu)
ObjectPropertyAssertion(P individu1 individu2 )
DataPropertyAssertion(DP individu littral)
NegativeObjectPropertyAssertion(P individu1 individu2 )
SameIndividual(individu1 . . . individun )
DifferentIndividuals(individu1 individu2 )
DifferentIndividuals(individu1 . . . individun )
T(individu) a T(C) .
T(individu1 ) T(P) T(individu2 ) .
T(individu) T(DP) T(littral) .
[] a owl:NegativePropertyAssertion ;
owl:sourceIndividual T(individu1 ) ;
owl:assertionProperty T(P) ;
owl:targetIndividual T(individu2 ) ;
[] a owl:NegativePropertyAssertion ;
owl:sourceIndividual T(individu) ;
owl:assertionProperty T(DP) ;
owl:targetIndividual T(littral) ;
individu1 owl:sameAs individu2 .
...
individun1 owl:sameAs individun .
individu1 owl:differentFrom individu2 .
[] a owl:AllDifferent ;
owl:members T LIST (individu1 ,. . .,individun ) .
En terminant, nous allons voir un exemple de traduction en RDF dune base de connaissances.
Voici dabord cette base de connaissances exprime en logique descriptive :
Personne nom.xsd:string (Femme Homme)
Livre ProduitCulturel auteur.Personne titre.xsd:string
Livre(LIV203)
auteur(LIV203, JLB)
titre(LIV203, "Ficciones")
Homme(JLB)
nom(JLB, "Jorge Luis Borges")
Voici une version OWL de cette base de connaissances :
Prefix(local:=<http://www.polymtl.ca#>)
Ontology(
Declaration( Class(local:Femme) )
Declaration( Class(local:Homme) )
Declaration( Class(local:ProduitCulturel) )
Declaration( ObjectProperty(local:auteur) )
Declaration( DataProperty(local:nom) )
Declaration( DataProperty(local:titre) )
EquivalentClasses(
local:Personne
ObjectIntersectionOf(
DataSomeValuesFrom(local:nom xsd:string)
ObjectUnionOf(local:Femme local:Homme)))
SubClassOf(
local:Livre
ObjectIntersectionOf(
51
local:ProduitCulturel
ObjectSomeValuesFrom(local:auteur local:Personne)
DataSomeValuesFrom(local:titre xsd:string)))
ClassAssertion(local:Livre local:LIV203)
ObjectPropertyAssertion(local:auteur local:Livre local:JLB)
DataPropertyAssertion(local:titre local:Livre "Ficciones"^^xsd:string)
ClassAssertion(local:Homme local:JLB)
DataPropertyAssertion(local:nom local:JLB"Jorge Luis Borges"^^xsd:string)
)
local: <http://www.polymtl.ca#> .
rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
owl: <http://www.w3.org/2002/07/owl#> .
xsd: <http://www.w3.org/2001/XMLSchema#> .
local:Femme a owl:Class .
local:Homme a owl:Class .
local:ProduitCulturel a owl:Class .
local:auteur a owl:ObjectProperty .
local:nom a owl:DatatypeProperty .
local:titre a owl:DatatypeProperty .
local:Personne
owl:equivalentClass
[ a owl:Class;
owl:intersectionOf
( [a owl:Restriction ;
owl:onProperty local:nom ;
owl:someValuesFrom xsd:string ]
[a owl:Class ;
owl:unionOf (local:Femme local:Homme ) ] ) ] .
local:Livre
owl:subclassOf
[ a owl:Class;
owl:intersectionOf
( local:ProduitCulturel
[a owl:Restriction ;
owl:onProperty local:auteur ;
owl:someValuesFrom local:Personne ]
[a owl:Restriction ;
owl:onProperty local:titre ;
owl:someValuesFrom xsd:string ] ) ] .
52
local:LIV203
a local:Livre ;
local:auteur local:JLB ;
local:titre "Ficciones"^^xsd:string .
local:JLB
a local:Homme ;
local:nom "Jorge Luis Borges"^^xsd:string .
53
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
<owl:onProperty rdf:resource="http://www.polymtl.ca#nom"/>
<owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</rdf:first>
<rdf:rest rdf:parseType="Resource">
<rdf:first rdf:parseType="Resource">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
<owl:unionOf rdf:parseType="Resource">
<rdf:first rdf:resource="http://www.polymtl.ca#Femme"/>
<rdf:rest rdf:parseType="Resource">
<rdf:first rdf:resource="http://www.polymtl.ca#Homme"/>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:rest>
</owl:unionOf>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:rest>
</owl:intersectionOf>
</owl:equivalentClass>
</rdf:Description>
<owl:Class rdf:about="http://www.polymtl.ca#ProduitCulturel">
</owl:Class>
<owl:ObjectProperty rdf:about="http://www.polymtl.ca#auteur">
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:about="http://www.polymtl.ca#nom">
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.polymtl.ca#titre">
</owl:DatatypeProperty>
</rdf:RDF>
9.8 Exercices
Exercice 9.1
Voici en OWL une bauche dontologie pour dcrire des donnes gographiques :
Prefix(rdf:
Prefix(xsd:
Prefix(rdfs:
Prefix(owl:
Prefix(ex:
=
=
=
=
=
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)
<http://www.w3.org/2001/XMLSchema#>)
<http://www.w3.org/2000/01/rdf-schema#>)
<http://www.w3.org/2002/07/owl#>)
<http://www.polymtl.ca#>)
Ontology(
Declaration(Class(ex:Location))
Declaration(Class(ex:PoliticalFunction))
SubClassOf(ex:City ex:PoliticalLocation)
SubClassOf(ex:Continent ex:GeographicalLocation)
SubClassOf(ex:Country ex:LargePoliticalLocation)
SubClassOf(ex:GeographicalLocation ex:Location)
SubClassOf(ex:Governor ex:HeadOfPoliticalEntity)
SubClassOf(ex:HeadOfPoliticalEntity ex:PoliticalFunction)
SubClassOf(ex:Lake ex:GeographicalLocation)
SubClassOf(ex:LargePoliticalLocation ex:PoliticalLocation)
54
SubClassOf(ex:Mayor ex:HeadOfPoliticalEntity)
SubClassOf(ex:MountainRange ex:GeographicalLocation)
SubClassOf(ex:Ocean ex:GeographicalLocation)
SubClassOf(ex:PoliticalLocation ex:Location)
SubClassOf(ex:President ex:HeadOfPoliticalEntity)
SubClassOf(ex:PrimeMinister ex:HeadOfPoliticalEntity)
SubClassOf(ex:Province ex:LargePoliticalLocation)
SubClassOf(ex:State ex:LargePoliticalLocation)
)
Compltez et/ou modifiez cette ontologie pour quon puisse sen servir afin de crer des bases de
connaissances permettant de rpondre aux questions suivantes :
Qui est le premier ministre du Canada ?
Quelle est la capitale de lOntario ?
Quelles sont les villes des tats-Unis qui sont situes sur la cte atlantique ?
Quelles sont les villes du Brsil dont la population est suprieure 3 millions dhabitants ?
Quelles sont les plus belles plages du Brsil qui ne sont pas trop proches dune grande ville ?
Quelles sont les villes les plus intressantes pour un amateur darts ?
Exercice 9.2
Soit lontologie suivante :
<?xml version="1.0"?>
<rdf:RDF
xmlns="http://www.polymtl.ca/exemple#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xml:base="http://www.polymtl.ca/exemple">
<owl:Ontology rdf:about=""/>
<rdfs:Class rdf:ID="A">
<owl:unionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:someValuesFrom rdf:resource="#A"/>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="R1"/>
</owl:onProperty>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#R1"/>
</owl:onProperty>
<owl:allValuesFrom rdf:resource="#A"/>
</owl:Restriction>
</owl:unionOf>
</rdfs:Class>
<owl:ObjectProperty rdf:about="#R1">
55
<a rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
</owl:ObjectProperty>
</rdf:RDF>
a) On remarque que cette ontologie nest pas dans la famille OWL Lite. Elle a exactement une
caractristique qui la fait appartenir la famille OWL DL Identifiez cette caractristique.
b) Dessinez le graphe RDF correspondant cette ontologie.
Exercice 9.3
Soit une ontologie pour reprsenter le domaine des livres, utilise entre autres par les maisons
ddition pour divulguer sur le web leur catalogues. Voici, en syntaxe abstraite de OWL, un extrait
de cette ontologie, pour reprsenter les romans :
Prefix(rdf:
Prefix(xsd:
Prefix(rdfs:
Prefix(owl:
Prefix(foaf:
Prefix(ex:
=
=
=
=
=
=
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)
<http://www.w3.org/2001/XMLSchema#>)
<http://www.w3.org/2000/01/rdf-schema#>)
<http://www.w3.org/2002/07/owl#>)
<http://xmlns.com/foaf/0.1/>)
<http://www.polymtl.ca/exemple#>)
Ontology( <http://www.polymtl.ca/livres>
Import( <foaf:index.rdf>)
Declaration(Class(foaf:Organization))
Declaration(Class(foaf:Person))
EquivalentClasses(
ex:Document
ObjectIntersectionOf(
ObjectSomeValuesFrom(ex:hasAuthor foaf:Person)
DataSomeValuesFrom(ex:hasTitle xsd:string)))
SubClassOf(ex:Novel ex:PublishedDocument)
EquivalentClasses(
ex:PublishedDocument
ObjectIntersectionOf(
ex:Document
ObjectSomeValuesFrom(ex:hasPublisher ex:Publisher)))
SubClassOf(ex:Publisher foaf:Organization)
ObjectPropertyRange(ex:hasAuthor foaf:Person)
ObjectPropertyRange(ex:hasPublisher ex:Publisher)
DataPropertyRange(ex:hasTitle xsd:string)
FunctionalDataProperty(ex:hasTitle)
)
56
Nous savons que le livre Agaguk, crit par Yves Thriault, a t publi aux ditions Hexagone.
Cette information pourrait tre diffuse en ajoutant le faits suivants :
ClassAssertion(ex:Novel ex:AGAGUK)
ObjectPropertyAssertion(ex:hasAuthor ex:AGAGUK ex:Yves_Theriault)
ObjectPropertyAssertion(ex:hasPublisher ex:AGAGUK ex:Hexagone)
DataPropertyAssertion(ex:hasTitle ex:AGAGUK "Agaguk"^^xsd:string)
ClassAssertion(ex:Publisher ex:Hexagone)
ClassAssertion(foaf:Person ex:Yves_Theriault)
a) On sait que ce livre, comme bien dautres, a t traduit en plusieurs langues. Modifiez lontologie
pour que cette situation puisse tre adquatement reprsente. Toute maison ddition, nimporte
quel endroit dans le monde, devrait pouvoir utiliser cette ontologie pour reprsenter un livre traduit
et publi dans une autre langue. En particulier, il faudrait que la maison ddition Tashenbuch, qui
le publie en allemand, puisse elle aussi le reprsenter sur son site. Il faudrait aussi que lontologie
permette un agent de retrouver facilement les informations suivantes :
La traduction dun livre dans un certaine langue, si cette traduction existe ;
Le livre original, lorsquon consulte une information qui reprsente un livre traduit ;
Le traducteur dun livre.
b) partir de cette ontologie, creez une base de connaissances qui contient toutes les instances
requises pour reprsenter le livre Agaguk dans sa version originale en franais et sa traduction
en allemand. Assurez-vous que les instances de cette base de connaissances soient relies par les
proprits adquates.
Exercice 9.4
Choisissez un domaine et crivez une ontologie la plus expressive possible tout en vous limitant
OWL 2 EL.
Exercice 9.5
Prenez lontologie de lexercice prcdent et modifiez-la pour la rendre la plus expressive possible
tout en vous limitant OWL 2 DL.
Exercice 9.6
On veut reprsenter un concept de quatuor corde qui contient exactement quatre instruments
corde. Mais on aimerait spcifier quil ne sagit pas de nimporte quelle combinaison dinstruments, mais plutt celle-ci : deux violons, un violoncelle (cello) et un contrebasse (bass). Pour ce
faire, on propose la description suivante :
<owl:ObjectProperty rdf:ID="composed_of_instruments"/>
<owl:Class rdf:ID="String_quartet">
<rdfs:subClassOf>
<owl:Restriction>
57
<owl:onProperty rdf:resource="#composed_of_instruments"/>
<owl:hasValue rdf:parseType="Collection">
<Violin/>
<Violin/>
<Cello/>
<Bass/>
</owl:hasValue>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf rdf:resource="#Quartet"/>
</owl:Class>
a)
b)
Exercice 9.7
Reprsentez en logique descriptive la base de connaissances suivante :
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.owl-ontologies.com/Ontology1166107887.owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<owl:Ontology rdf:about=""/>
<owl:Class rdf:ID="A"/>
<owl:Class rdf:ID="B">
<rdfs:subClassOf rdf:resource="#A"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#R"/>
<owl:allValuesFrom rdf:resource="#B"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#R"/>
<owl:someValuesFrom>
<owl:Restriction>
<owl:onProperty rdf:resource="#R"/>
<owl:someValuesFrom rdf:resource="#C"/>
</owl:Restriction>
</owl:someValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<owl:disjointWith rdf:resource="#C"/>
</owl:Class>
<owl:Class rdf:ID="C">
<rdfs:subClassOf rdf:resource="#A"/>
<owl:disjointWith rdf:resource="#B"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="R">
<rdfs:domain rdf:resource="#A"/>
<rdfs:range rdf:resource="#A"/>
</owl:ObjectProperty>
</rdf:RDF>
Exercice 9.8
a) On dit que le langage OLW Lite correspond la famille SHIF(D). Expliquez pourquoi et dites
58
59