You are on page 1of 59

Logique descriptive et OWL

Michel Gagnon

Table des matires


1

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

Algorithme de dduction par tableau


21
6.1 Description de lalgorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.2 Description formelle des rgles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Infrence avec axiomes dinclusion


31
7.1 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

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.

2.1 Syntaxe du langage AL


Dans ce langage, les axiomes sont construits partir dun ensemble de concepts. Ainsi, pour
dclarer quun humain est un animal, on utiliserait les concepts atomiques Humain et Animal et
on dclarerait laxiome suivant :
Humain Animal
Mais ceci nest pas trs informatif. En fait, cet axiome ne fait que dclarer que les humains
forment un sous-ensemble des animaux. Cela ne dfinit pas vraiment ce quest un humain. Pour
ce faire, il faut citer dautres caractristiques. On sait par exemple quun humain est un animal qui
raisonne. En dfinissant le concept Raisonnable, nous pourrions donc dfinir le concept Humain
de la manire suivante :
Humain Animal Raisonnable
Ici nous avons vraiment un nonc plus prcis, qui tablit lquivalence entre deux concepts :
dun ct le concept Humain qui reprsente lensemble des humains, et de lautre le concept
Animal Raisonnable qui reprsente lensemble des individus appartenant la fois la classe
Animal et la classe Raisonnable.
Tout nonc de la forme C D, tel que C est un concept atomique, est appel dfinition. Cest
ce type dnonc quon utilise pour crer une TBox.
En plus des concepts atomiques, que nous dfinissons nous-mmes lorsque nous construisons
une base de connaissances, le langage AL contient deux classes spciales : le concept universel
qui represente tous les individus du monde reprsent, et le concept impossible . Par dfinition,
pour tout concept C, on a laxiome suivant :
C
Soit maintenant un concept C qui est impossible, cest--dire quaucun individu ne peut appartenir ce concept. Pour reprsenter cette situation, on utilise laxiome suivant :
C
Le langage AL contient la ngation, qui ne peut tre applique qu un concept atomique.
Ainsi, on peut reprsenter la classe des non humains, en crivant Humain, mais on ne peut pas

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)

2.2 Smantique du langage AL


La smantique du langage AL fait appel la thorie des ensembles. Essentiellement, chaque
concept est associ un ensemble dindividus dnots par ce concept. Une interprtation suppose
donc lexistence dun ensemble non vide qui reprsente des entits du monde dcrit. Nous avons
une fonction dinterprtation I qui associe chaque description un sous-ensemble de . Supposons que pour chaque concept atomique A, la fonction I(A) associe un sous-ensemble AI , et
pour chaque rle atomique R, une relation binaire RI . Voici comment est dfinie cette
fonction dinterprtation pour les autres descriptions possibles :
I()
I()
I(A)
I(C D)
I(R.C)
I(R.)

=
=
=
=
=
=

\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

F IGURE 1 Exemple dinterprtation pour le langage AL


Voici maintenant une autre interprtation, qui nest pas ncessairement ce que nous aurions en tte,
mais qui est tout fait correcte :

= {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.

3.1 Les constructeurs de la famille AL


3.1.1

Constructeur dunion U

Le premier constructeur, indiqu par le symbole U, reprsente lunion de concepts. Ainsi, si on


veut reprsenter lensemble des individus qui appartiennent soit la classe C, soit la classe D,
on crirait la description C D et dont linterprtation est la suivante :
I(C D) = I(C) I(D)
Ce type de construction est trs pratique dans les restrictions de relations. Par exemple, on pourrait
reprsenter un magasin qui ne vend que des chats et des chiens :
Magasin vend.(Chat Chien)
Selon la fonction dinterprtation telle que dfinie plus haut, pour appartenir cette classe, une
entit doit appartenir la fois lensemble des magasins et lensemble des entits telles que si elles
vendent quelque chose, il sagit ncessairement dun chat ou dun chien.

3.1.2

Quantification existentielle complte E

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)

= {a |b.(a, b) I(R) b I(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

Deux autres constructeurs, exprimant la restriction de cardinalit (dnomms N ), permettent


de reprsenter des concepts comme lensemble de ceux qui possdent au moins deux chiens, ou
encore lensemble de ceux qui possdent au plus quatre chiens. Ils ont les formes n R et n R,
et sont interprts de la manire suivante :
I( n R)

{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

Ainsi, rien nempcherait dajouter les assertions suivantes dans la ABox :


FemmeMarie(Ana)
mariAvec(Ana,Paulo)
mariAvec(Ana,Eduardo)
Paulo 6= Eduardo
3.1.6

Restriction de cardinalit qualifie Q

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)

{a |{b|(a, b) I(R) b I(C)}| n}

I( n R.C)

{a |{b|(a, b) I(R) b I(C)}| n}

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

Ngation sans restriction (C)

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

quivalents aux concepts suivants :


aEnfant.Homme
aEnfant.(Homme mariAvec.)
3.1.8

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

b) Dites en termes simples ce que signifient les axiomes suivants :


1.
2.

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)

= vrai si I(C) I(D)


= vrai si I(C) = I(D)

Une dfinition est un axiome de la forme C D o C est un concept atomique. Un dfinition


sert en fait associer un nom un concept complexe. Nous avons dj vu un exemple de dfnition,
lorsque nous avons dcrit le concept de humain :
Humain Animal Raisonnable
Nous pouvons donc maintenant dfinir une terminologie, ou TBox, comme un ensemble de dfinitions tel quun symbole napparat jamais plus dune fois du ct gauche (autrement dit, aucun
concept nest dfini plus dune fois). Et on dira quune interprtation I satisfait un terminologie T
si elle est vraie pour toutes les dfinitions contenues dans T . Dans ce cas, on dira aussi que I est
un modle de T .
Il est parfois difficile de dfinir un concept. Prenons par exemple les concepts Homme et
Femme. Il nest pas vident de dfinir exactement ces concepts. Ainsi, dans bien des applications,
il peut tre suffisant de dire quil sont tous les deux des sous-classes du concept Humain, ce qui

14

nous amnera plutt utiliser les axiomes suivants :


Homme Humain
Femme Humain
De tels axiomes sont appels axiomes de spcialisation. Il est important de noter que ces
axiomes, bien quutiles pour reprsenter nos ontologies, ne sont pas ncessaires. En effet, on
pourrait trs bien utiliser un concept arbitraire pour exprimer ce qui nous manque pour dcrire
entirement un concept et lajouter la description. Supposons par exemple le concept Homme,
qui rsume toutes les caractristiques dun homme que lon ne veut pas ou ne sait pas dcrire. On
peut maintenant transformer notre axiome ci-dessus en une dfinition :
Homme Humain Homme
Voici un exemple de terminologie, inspire de [?] :
Femme Personne Feminin
Homme Personne Femme
Mre Femme aEnfant.Personne
Pre Homme aEnfant.Personne
Parent Pre Mre
Grandmre Mre aEnfant.Parent
MreDeFamilleNombreuse Mre 3 aEnfant
MreSansFille Mre aEnfant.Femme
pouse Femme mariAvec.Homme
Clibataire Personne mariAvec.

4.2 Description du monde


La seconde composante dune base de connaissances, que nous avons appele ABox, fournit
une description du monde. La ABox introduit des individus en spcifiant leurs noms, les concepts
auxquels ils appartiennent, et leurs relations avec dautres individus. Soit par exemple des individus dont les noms sont a, b et c. On crit C(a) pour indiquer que a est un individu appartenant
lensemble dnot par le concept C. On crit R(b, c) pour indiquer que b et c sont lis par
la relation R ou, en dautres mots, que lindividu c remplit le rle R pour lindividu b. Supposons, par exemple, un monde constitu de trois individus dont les noms sont PEDRO, RODRIGO
et CLAUDIA. On crira Pre(PEDRO) pour exprimer le fait que Pedro est un pre, et aEnfant(CLAUDIA,RODRIGO) pour indiquer que Rodrigo est le fils de Claudia.
Nous savons dj que la smantique de la TBox est compose dun ensemble , qui numre
les entits du monde dcrit, et dune fonction dinterprtation I, qui associe un sous-ensemble de
chaque concept de la TBox, et un ensemble de paires dentits de pour chaque relation de
la TBox. Pour associer une smantique la ABox, il suffit dassocier un lment de chaque
nom qui sy trouve. Plus formellement, si a est un nom introduit dans la ABox, on a :
15

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 .

4.3 Dclaration dindividus dans une terminologie


Jusqu maintenant, nous avons fait une distinction claire entre une terminologie, soit la TBox,
qui sert reprsenter les concepts dun domaine et les relations entre ces concepts, et une description du monde, o sont dclars les individus qui constituent un monde spcifique dans le domaine
dcrit. Dans certaines situations, on aimerait pouvoir dsigner des individus dans la terminologie.
Prenons par exemple le concept de membre permanent du Conseil de scurit de lONU. La seule
manire vraiment naturelle de dfinir cette classe est dnumrer explicitement la liste des cinq
pays qui en font partie. Avec ce que nous avons prsent jusqu maintenant, nous ne pourrions
pas le dfinir de cette manire, puisquon ne peut pas dclarer des individus dans une terminologie. Il nous faudra donc un nouveau constructeur, lnumration (dnot par le symbole O dans la
famille des langages) :
{a1 , . . . , an }
o a1 , . . . , an sont des noms dindividus
Sans surprise, la smantique associe cette description lensemble des entits du monde qui
correspondent aux noms a1 , . . . , an :
I({a1 , . . . , an }) = {I(a1 ), . . . , I(an )}
Nous avons donc maintenant ce quil nous faut pour dfinir le concept de membre permanent
du Conseil de scurit :
MembrePermanentConseilScurit {USA,FRANCE,RUSSIE,UK,CHINE}
Supposons maintenant que nous voulions reprsenter le concept de citoyen canadien, qui est
dfini de la manire suivante : personne ne au Canada ou naturalise par le Canada. Difficile de
dfinir ce concept sans faire rfrence explicitement lentit Canada. Il nous faut donc un autre
constructeur permettant de dcrire lensemble des individus qui sont relis un individu spcifique
par une relation R :
16

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

5.1 Rduction linsatisfaisabilit


En principe, nous devrions avoir un mcanisme de preuve pour chacune des proprits numres la section prcdente. Mais en pratique, cela nest pas ncessaire, puisquon peut tout
ramener une preuve dinsatisfaisabilit. Cest--dire que pour prouver chacune des ces proprits, il suffit de la rcrire sous une autre forme et prouver que la nouvelle formule obtenue est
insatisfaisable. Voici donc comment on fait cela :
Pour deux concepts C et D, on a :
i. C est subsum par D C D est insatisfaisable
ii. C et D sont quivalents C D et C D sont insatisfaisables
iii. C et D sont disjoints C D est insatisfaisable
Essayons maintenant de comprendre chacune de ces quivalences. Considrons dabord le cas
de la subsomption. Si C D est insatisfaisable, cela signifie quil est impossible didentifier dans
le monde dcrit une entit qui appartient lensemble reprsent par C et qui nappartient pas
lensemble reprsent par D. Donc, soit lensemble I(C) est vide, soit toutes les entits quil
contient font aussi partie de I(D). Dans le premier cas, on a I(C) I(D) puisque par dfinition
lensemble vide est un sous-ensemble de tous les ensembles. Dans le second cas, il est vident
quon a I(C) I(D), puisque toute entit de I(C) doit aussi appartenir I(D). Donc, dans tous
les cas, on a I(C) I(D), ce qui confirme la subsomption.
Pour comprendre le cas de lquivalence, il suffit de savoir que C D est quivalent C D
D C. Le dernier cas, celui de deux concepts disjoints, est lui aussi simple comprendre. Il est
en effet vident que si deux concepts sont disjoints, il ne peut y avoir aucune entit qui appartient
la fois aux deux ensembles reprsents par ces concpets. Lintersection des deux concepts est donc
insatisfaisable.

5.2 limination de la TBox


Pour dvelopper des procdures dinfrence, comme la mthode des tableaux prsente plus
loin, il est pratique dutiliser comme point de dpart des formules indpendantes de toute terminologie. Autrement dit, nous voulons liminer la TBox. Si la TBox ne contient aucun cycle dans
les dfinitions (ce qui sera le cas la plupart du temps), on y arrivera tout simplement en remplaant
tous les termes de la formule par leur dfinition dans la terminologie. videmment, si un terme de
la formule na aucune dfinition dans la terminologie, il demeure inchang. On rpte ce processus
jusqu ce que la formule obtenue ne contienne aucun terme qui possde une dfinition dans la
terminologie.
Prenons par exemple le concept Femme Homme dont on voudrait dmontrer linsatisfaisabilit par rapport la terminologie prsente la fin de la section 4.1. Il faudrait alors liminer la
TBox en effectuant les tapes suivantes :
(1) Femme Homme
(2) Personne Feminin Personne Femme
(3) Personne Feminin Personne (Personne Feminin)
18

On peut alors utiliser une technique de preuve, comme celle montre plus loin, pour prouver
linsatisfaisabilit de la formule (3).

5.3 Infrence avec la ABox


Jusqu maintenant, nous avons abord certaines proprits intressantes dune terminologie
que nous voudrions pouvoir infrer. Nous allons maintenant voir le genre dinfrence quon est
appel raliser lorsque nous augmentons notre base de connaissances en y ajoutant des individus.
En dautres mots, nous nous intresserons au genre de raisonnement qui concerne la ABox.
La premire chose quon aimerait vrifier est la consistance de la ABox. Autrement dit, on
voudrait sassurer que la ABox ne contient aucune assertion C(a) telle quil est impossible que
a appartienne la classe C. Par exemple, en reprenant notre terminologie de la section 4.1, nous
aurions une base de connaissances inconsistante si nous avions les deux assertions suivantes dans
la ABox : {Mre(ANA), Pre(ANA)}. En effet, selon la TBox, il est impossible quun individu
soit la fois une mre et un pre.
Un autre type dinfrence que lon peut tre appel effectuer avec une ABox consiste dterminer si un individu appartient un certaine classe. Plus formellement, on crira A |= C(a) si
partir dune ABox A on peut dduire que a appartient au concept C. videmment, si la Abox
contient lassertion C(a), cette infrence est triviale, mais dans plusieurs cas, elle ncessite un
raisonnement plus complexe. En guise dexemple simple dinfrence non triviale, supposons une
TBox T qui contient lunique axiome C D E et une ABox A qui contient lassertion C(a).
On peut alors infrer lassertion D(a). Autrement dit, on a : A |= D(a) relativement la TBox T .
Pour vrifier A |= , il est suffisant de vrifier que A {} est inconsistant. Cest dailleurs ce
principe qui est utilis pour faire les infrences avec la mthode du tableau que nous verrons la
section 6.

5.4 Monde ferm et monde ouvert


Supposons quune ABox utilisant la terminologie de la section 4.1 ne contient que lassertion
suivante :
aEnfant(PAULO,RODRIGO)
On sait que Paulo a un enfant. Mais peut-on dduire quil na quun seul enfant, puisquun seul
enfant est dclar dans la ABox ? La rponse cette rponse dpend de si la smantique de notre
langage utilise lhypothse du monde ferm ou lhypothse du monde ouvert. Avec lhypothse du
monde ferm, on considre que le monde se limite ce qui est nonc. Autrement dit, dans notre
exemple, Paulo naurait quun seul enfant puisque aucun autre enfant nest dclar. Cest cette
hypothse qui est normalement adopte dans les bases de donnes.
En logique descriptive, cest plutt lhypothse du monde ouvert qui prvaut. Dans notre
exemple, rien nexclut que Paulo ait dautres enfants, mme si cela nest pas spcifi dans la ABox.
Pour indiquer que Paulo na quun seul enfant, il faudrait ajouter lassertion suivante dans la ABox :

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.

6 Algorithme de dduction par tableau


6.1 Description de lalgorithme
La meilleure mthode pour faire des infrences avec la logique descriptive est la mthode du
tableau. Supposons que nous voulions prouver C D. Le principe de la dmonstration est le
suivant. On nie le fait prouver et on tente de dmontrer que ce nouveau fait est insatisfaisable.
Dans notre cas, cela revient dmontrer que C D est insatisfaisable.
Supposons par exemple que lon veut dmontrer que la classe possde.(Livre Antiquit)
est subsume par la classe (possde.Livre possde.Antiquit), cest--dire :
possde.(Livre Antiquit) (possde.Livre possde.Antiquit)
En dautres mots, on veut prouver que si quelquun possde un livre ancien, il appartient ncessairement la classe de ceux qui possdent au moins un livre et au moins une antiquit. Pour
ce faire il faut prouver que la classe suivante est insatisfaisable :
possde.(Livre Antiquit) (possde.Livre possde.Antiquit)
La premire tape avant de commencer la preuve consiste normaliser la description de manire que toutes les ngations se trouvent immdiatement ct dun identificateur de classe. On
y arrive en appliquant les rgles dquivalence prsentes la section 3 :
possde.(Livre Antiquit) (possde.Livre possde.Antiquit)
possde.(Livre Antiquit) (possde.Livre possde.Antiquit)
possde.(Livre Antiquit) (possde.Livre possde.Antiquit)
Pour faire notre preuve, on suppose un individu arbitraire, que lon dnomme a, et qui est une
instance de cette classe :
(1) (possde.(Livre Antiquit) (possde.Livre possde.Antiquit))(a)
Il est clair quun individu qui appartient la classe C D appartient aussi aux classes C et D.
Par exemple, si un individu est un homme brsilien, cest--dire quil est une instance de la classe
Homme Brsilien, on peut aussi dire quil est un homme, dune part, et un brsilien dautre

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 Antiquit) (possde.Livre possde.Antiquit))(a)


(possde.(Livre Antiquit))(a)
(possde.Livre possde.Antiquit)(a)
possde(a, b)
(Livre Antiquit)(b)
Livre(b)
Antiquit(b)
(8)
(10)

(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.

6.2 Description formelle des rgles


Soit un tableau et A un chemin complet qui va de la racine de larbre une feuille. Le tableau
1 fournit la liste des rgles dexpansion pour la logique ALCN .
Rgle
rgle-
rgle-

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

On ajoute R(x, y) et C(y) A, o y est un nom


dindividu qui nexiste pas dj dans A
On ajoute C(y) A
Soit un ensemble de n individus dnots par
y1 , . . . , yn , qui sont des noms qui nexistent pas
dans A. On ajoute A les noncs yi 6= yj pour
chaque paire possible avec cet ensemble, ainsi que
les noncs R(x, yi ) pour (1 i n).

Pour chaque paire possible (yi , yj ) dindividus


parmi yi , yn+1 , on ajoute une nouvelle branche
avec yi 6= yj .

TABLE 1 Rgles de tableau pour la logique ALCN


Pour chaque rgle applique, on ajoute les nouveaux noncs la fin partir de la branche
o on se trouve. On les ajoute gnralement la fin de tous les branchements partir du point
o on se trouve. Supposons par exemple le tableau de la figure 2a, o le traitement de lnonc A
entrane lajout de lnonc B. Il faudra alors tendre le tableau de la manire illustre la figure
2b. Similairement, lorsquon doit ajouter un branchement dans un tableau, on lajoute toutes
23

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)

F IGURE 2 Exemples dexpansion de tableau


Les quatre premires rgles dexpansion de tableau ont dj t vues dans lexemple de preuve
ci-haut. Il nous reste maintenant voir des exemples dapplication des deux dernires. Supposons
dabord une terminologie qui contient la dfinition suivante :
Parent aEnfant.
Nous tenterons maintenant de dmontrer que quelquun qui a plus de deux enfants est un parent,
cest--dire la subsomption suivante :
2 aEnfant Parent
Pour ce faire, il faut dabord crire le fait dont on veut dmontrer linsatisfaisabilit :

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)

( 4 aEnfant (aEnfant. 2 aEnfant))(a)


( 4 aEnfant)(a)
(aEnfant. 2 aEnfant)(a)
aEnfant(a, b)
aEnfant(a, c)
aEnfant(a, d)
aEnfant(a, e)
b 6= c
b 6= d
b 6= e
c 6= d
c 6= e
d 6= e
(aEnfant.)(a)
(b)


(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)

( 4 aEnfant (aEnfant. 2 aEnfant))(a)


( 4 aEnfant)(a)
(aEnfant. 2 aEnfant)(a)
aEnfant(a, b)
aEnfant(a, c)
aEnfant(a, d)
aEnfant(a, e)
b 6= c
b 6= d
b 6= e
c 6= d
c 6= e
d 6= e

(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

ProteinLoverPizza Pizza hasTopping.(Meat Fish)


MeatyPizza Pizza hasTopping.Meat
VegetarianPizza Pizza hasTopping.(Meat Fish)
a) Prouvez que lassertion suivante est une consquence logique de cette base de connaissances :
ProteinLoverPizza MeatyPizza
b) Supposons que laxiome suivant est ajout la base de connaisssances, pour indiquer que les
classe Meat et Fish sont disjointes :
Meat Fish
Prouvez que lassertion suivante est une consquence logique de cette base de connaissances :
ProteinLoverPizza VegetarianPizza
c) Comment devrions-nous corriger la base de connaissances pour que lassertion en b) soit pas
une consquence logique de la base de connaissances ?
Exercice 6.9
Soit la base de connaissances suivante :
aEnfant(JOCASTE,OEDIPE)
aEnfant(JOCASTE,POLYNICE)
aEnfant(OEDIPE,POLYNICE)
aEnfant(POLYNICE,THERSANDRE)
Parricide(OEDIPE)
Parricide(THERSANDRE)
( 2 aEnfant 2 aEnfant)(JOCASTE)
( 1 aEnfant 1 aEnfant)(OEDIPE)
( 1 aEnfant 1 aEnfant)(POLYNICE)
a) Prouvez que lassertion suivante est une consquence logique de cette base de connaissances :
(aEnfant.(Parricide aEnfant.Parricide))(JOCASTE)
b) Prouvez que la base de connaissances devient inconsistante si on ajoute lassertion suivante :
(aEnfant.(Parricide aEnfant.Parricide))(JOCASTE)
Exercice 6.10
Prouvez laxiome de subsomption suivant :

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

Soient les axiomes suivants :


AB
AC
a) Montrez, seulement en considrant la smantique, que laxiome A (B C) est une
consquence logique de cette terminologie.
b) Faites la mme dmonstration, mais cette fois en utilisant la technique de preuve par tableau.

7 Infrence avec axiomes dinclusion


Dans la mthode dinfrence prsente la section prcdente, on ne peut traiter que des
axiomes dquivalence. Or, une ontologie peut aussi contenir des axiomes dinclusion. Prenons
par exemple lontologie suivante, qui contient un axiome dinclusion pour spcifier le domaine
dun rle :
Plante Vivant aime.Plante
aime. Animal
Selon la smantique de la logique descriptive, laxiome suivant est (bizarrement !) une consquence logique de cette ontologie : Plante Animal. Autrement dit, les plantes sont des animaux ! Malheusement, on narrivera jamais prouver cela avec la technique de preuve par tableau
vue prcdemment.
Pour pouvoir raisonner avec ce type daxiome, il faut faire un petit ajout au mcanisme dinfrence. Il faudra dabord transformer tout axiome dinclusion de la forme C D en un axiome
quivalent C D. Dans la preuve par tableau, on pourra alors, pour tout individu i qui y
est introduit, ajouter le fait (C D)(i). Avec cet ajout, on peut maintenant faire notre preuve par
tableau. Voici dabord lontologie transforme :
Plante Vivant aime.Plante
aime. Animal
Il nous faut donc maintenant prouver linsatisfaisabilit de Plante Animal. Aprs limination
de la TBox, on produit la preuve suivante :

31

(1)
(2)
(3)
(4)
(5)
(6)
(7)

(Vivant aime.Plante Animal)(a)


Vivant(a)
(aime.Plante)(a)
Animal(a)
aime(a, b)
Plante(b)
(aime. Animal)(a)

(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)

F IGURE 3 Familles de logiques descriptives


proposs par le W3C. OWL 2 EL est un profil qui sied bien aux ontologies contenant une trs
grande quantit de classes et de proprits. Linfrence pour vrifier la consistance, la subsomption
et la catgorisation dinstances peut tre ralise en temps polynomial. OWL 2 QL est plus adapte aux situations o on se retrouve avec beaucoup dindividus. Il sagit en fait dun sous-langage
plus proche des langages de modlisations UML et Entits/Relations. Il est donc appropri pour
interfacer une base de connnaissance avec une base de donnes. Finalement, OWL 2 RL est un
sous-langage qui restreint les ontologies des formes qui peuvent tre traduites en rgles de la
logiques des prdicats de premier ordre.
Dans la prochaine section, le langage OWL 2 est prsent, suivi dune descriptions de ses
profils.
noter que dans la prsentation qui suit, plusieurs simplifications son t apportes la dfinition du langage, pour des raisons de clart. Par exemple, OWL permet dajouter des annotations
dans les ontologies. Comme il ne sagit pas dlments essentiels la comprhension, certains
types dlments ont tout simplement t omis. Il faut donc se rapporter aux documents du W3C
pour une description exhaustive du langage.
Tous les exemples sont prsents dans la syntaxe fonctionnelle qui a t dfinie pour OWL
(assez proche de celle de la logique descriptive) et dans la syntaxe Turtle, afin de bien visualiser la
traduction en RDF dune expression en OWL

34

9.1 Ontologies en OWL 2


Tout document OWL est une ontologie, qui peut avoir un identificateur unique reprsent par
une URI, utiliser certains prfixes et, finalement, importer dautres ontologies. En syntaxe fonctionnelle, toute ontologie est reprsente par un terme Ontology(...). lintrieur, on y retrouve
tous les noncs qui dcrivent lontologie. Voici, par exemple, une ontologie quon a identifie par
une URI, qui importe une autre ontologie, et qui ne dfinit rien dautre ( noter la dfinition de
prfixes) :
Syntaxe fonctionnelle :
Prefix(local:=<http://www.polytml.ca/mg/voc#>)
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> )
)

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 .

9.2 Axiomes de base pour dcrire des ontologies simples


Nous avons vu la section prcdente comment dclarer une hirarchie de classes en OWL.
Deux types daxiomes peuvent tre utiliss : une dclaration de classe, qui ne fait qutablir lexistence dune classe, et lutilisation directe de la proprit rdfs:subClassOf. En fait, le seul
nouvel lment de vocabulaire par rapport RDF est owl:Class. Le concept rdfs:Class
nest pas utilis en OWL parce linterprtation smantique des classe en OWL est plus restrictive
que celle de RDF.
Similiairement, on peut dfinir des hirarchies de proprits en OWL. Mais on distingue deux
types de proprit : celles dont la valeur est un individu appartenant une classe (ObjectProperty)
et celles dont la valuer est un littral (DataProperty). Voici un exmple de description de proprits
en OWL :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
Declaration(ObjectProperty(local:epouse))
Declaration(ObjectProperty(local:conjoint))
Declaration(DataProperty(local:age))
SubObjectPropertyOf(local:epouse local:conjoint)
)

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 .

Comme en RDF, on peut spcifier le domaine et limage dune proprit :


Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
Declaration(ObjectProperty(local:epouse))
ObjectPropertyDomain(local:epouse local:Homme)
ObjectPropertyRange(local:epouse local:Femme)
)

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 .

9.3 Descriptions de classes complexes


venir

9.4 Descriptions des proprits


Cette section est complter.
La spcification de limage ou du domaine dune proprit ne requiert pas une logique plus expressive que celle de la famille AL. En effet, pour exprimer quun rle R ne peut sappliquer qu
des individus de la classe C, on crira laxiome suivant : R. C. Pour reprsenter que tous
les individus du domaine dun rle R appartiennent la classe C, on crira laxiome R.C.
Il est trs important de ne pas confondre ces axiomes avec des restrictions de rle. Supposons par
exemple un axiome de la forme suivante :
C1 C2 R.C3

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

9.5 Dclaration de faits


Les faits en OWL 2 permettent de fournir des informations sur des entits spcifiques (appeles individus). Essentiellement, on peut spcifier les classes auxquelles un individu appartient,
ainsi que les valeurs des proprits qui le concerne, qui sont des individus ou des littraux, selon
le type de proprit.
De manire simple, on peut dclarer un indicividu en spcifiant son nom :
Syntaxe fonctionnelle :
... (prfixes)
Ontology(local:monOntologie
Declaration( NamedIndividual(local:Jean) )
)

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 .

local:Jean local:aime local:Marie .


[] a owl:NegativePropertyAssertion ;
owl:sourceIndividual
local:Jean ;
owl:assertionProperty local:aime ;
owl:targetIndividual
local:Anne .
local:Jean local:age "34"^^xsd:integer .

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 ) .

9.6 Les diffrents profils de OWL 2


9.6.1

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))))

Il y a plusieurs limitations en OWL-Lite en ce qui concerne les proprits. On peut dclarer


une proprit comme sous-proprit dune autre proprit, dfinir son domaine et son image et,
finalement, la dclarer fonctionnelle. Dans le cas des proprits objet, on peut, en plus de ce qui
a t numr prcdemment, la dclarer symtrique, transitive, ou encore injective (inverse fonctionnelle), cest--dire quon ne peut avoir deux individus du domaine qui ont la mme valeur dans
limage de la fonction.
axiomeProprit ::=
SubDataPropertyOf(propID1 propID2 )
| DataPropertyDomain( propID classeID )
| DataPropertyRange( propID dataRange )
| FunctionalDataProperty( propID1 ) ]
SubObjectPropertyOf(propID1 propID2 )
| FunctionalObjectProperty( propID1 ) ]
| ObjectPropertyDomain( propID classeID )
| ObjectPropertyRange( propID dataRange )
| FunctionalObjectProperty( propID1 ) ]
| InverseFunctionalObjectProperty( propID1 ) ]
| TransitiveObjectProperty( propID1 ) ]

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

9.7 Traduction en RDF


Pour traduire en RDF une ontologie crite en syntaxe abstraite OWL, nous utiliserons une
fonction de traduction T qui, applique rcursivement lontologie, transforme ses composantes
en triplets RDF.
Traduction dune ontologie :
Ontology(ID Import(OntURI1 ) . . . Import(OntURIn ) axiome1 . . . axiomen )

Ontology(Import(OntURI1 ) . . . Import(OntURIn ) axiome1 . . . axiomen )

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 )

T(C) a owl:Class \verb.+


T(C1 ) rdfs:subClassOf T(C1 ) .
T(C1 ) owl:equivalentClass T(C2 ) .
...
T(Cn1 ) owl:equivalentClass T(Cn ) .
T(C1 ) owl:disjointWith T(C2 ) .
[] a owl:AlldisjointClasses ;
owl:members T LIST (C1 . . . Cn ) .
T(C) owl:disjointUnionOf T LIST (C1 . . . Cn ) .
[] a owl:Class ;
owl:intersectionOf T LIST (C1 , . . . Cn ) .
[] a owl:Class ;
owl:unionOf T LIST (C1 , . . . Cn ) .
[] owl:Class ;
owl:complementOf T(C) .
[] a owl:Class ;
owl:oneOf T LIST (individu1 , . . . individun ) .

Traduction des restrictions dobjets :

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) .

Traduction des restrictions de valeurs :

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) .

DataAllValuesFrom(DP1 . . . DPn Range), o n 2

DataSomeValuesFrom(DP Range)

DataSomeValuesFrom(DP1 . . . DPn Range), o n 2

DataHasValue(DP valeur))

DataHasMinCardinality(n DP)

DataHasMaxCardinality(n DP)

DataExactCardinality(n DP)

DataHasMinCardinality(n DP Range)

DataHasMaxCardinality(n DP Range)

DataExactCardinality(n DP Range)

Traduction des descriptions de types de valeurs :

49

Declaration( Datatype(DT) )
DataIntersectionOf(DR1 . . . DRn )
DataUnionOf(DR1 . . . DRn )
DataComplementOf(DR)
DataOneOf(littral1 . . . littraln )
DatatypeRestriction(DT F1 littral1 . . . F1 littraln )

T(DT) a rdfs:Datatype \verb.+


[] a rdfs:Datatype ;
owl:intersectionOf T LIST (DR1 , . . . DRn ) .
[] a rdfs:Datatype ;
owl:unionOf T LIST (DR1 , . . . DRn ) .
[] rdfs:Datatype ;
owl:datatypeComplementOf T(DR) .
[] a rdfs:Datatype ;
owl:oneOf T LIST (littral1 , . . . littraln ) .
[] a rdfs:Datatype ;
owl:onDatatype T(DT) ;
owl:withRestrictions (_:y1 . . . _:yn) .
_:y1 F1 littral1 .
...
_:yn Fn littraln .

Traduction des axiomes de description de proprits objets :


Declaration( ObjectProperty(P) )
ObjectInverseOf(P)
SubObjectPropertyOf(P1 P2 )
SubObjectPropertyOf(ObjectPropertyChain(P1 . . . Pn ) P)
ObjectPropertyDomain(P C)
ObjectPropertyRange(P C)
InverseObjectProperties(P1 P2 )
FunctionalObjectProperty(P)
InverseFunctionalObjectProperty(P)
TransitiveObjectProperty(P)
SymmetricObjectProperty(P)
AymmetricObjectProperty(P)
ReflexiveObjectProperty(P)
IrreflexiveObjectProperty(P)
EquivalentObjectProperties(P1 . . . Pn )

DisjointObjectProperties(P1 P2 )
DisjointObjectProperties(P1 . . . Pn ), o n > 2

Description de proprits valeurs :


venir
Description dindividus :

50

T(P) a owl:ObjectProperty \verb.+


[] owl:inverseOf T(P) .
T(P1 ) rdfs:subPropertyOf T(P2 ) .
T(P) owl:propertyChainAxiom T LIST (P1 . . . Pn ) .
T(P) rdfs:domain T(C) .
T(P) rdfs:range T(C) .
T(P1 ) owl:inverseOf T(P2 ) .
T(P) a owl:FunctionalProperty .
T(P) a owl:InverseFunctionalProperty .
T(P) a owl:TransitiveProperty .
T(P) a owl:SymmetricProperty .
T(P) a owl:AymmetricProperty .
T(P) a owl:ReflexiveProperty .
T(P) a owl:IrreflexiveProperty .
T(P2 ) owl:equivalentProperty T(P2 ) .
...
T(Pn1 ) owl:equivalentProperty T(Pn ) .
T(P1 ) owl:propertyDisjointWith T(P2 ) .
[] a owl:AlldisjointProperties ;
owl:members T LIST (P1 . . . Pn ) .

ClassAssertion(C individu)
ObjectPropertyAssertion(P individu1 individu2 )
DataPropertyAssertion(DP individu littral)
NegativeObjectPropertyAssertion(P individu1 individu2 )

NegativeDataPropertyAssertion(DP individu littral)

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)
)

Traduite en RDF, cette base de connaissances aura alors la forme suivante :


@prefix
@prefix
@prefix
@prefix
@prefix

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 .

Voici maintenant la mme base de connaissances en RDF/XML :


<rdf:RDF xmlns="http://www.polymtl.ca#"
xmlns:local="http://www.polymtl.ca#"
xmlns:log="http://www.w3.org/2000/10/swap/log#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
<owl:Class rdf:about="http://www.polymtl.ca#Femme">
</owl:Class>
<owl:Class rdf:about="http://www.polymtl.ca#Homme">
</owl:Class>
<Homme rdf:about="http://www.polymtl.ca#JLB">
<nom rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Jorge Luis Borges</nom>
</Homme>
<Livre rdf:about="http://www.polymtl.ca#LIV203">
<auteur rdf:resource="http://www.polymtl.ca#JLB"/>
<titre rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Ficciones</titre>
</Livre>
<rdf:Description rdf:about="http://www.polymtl.ca#Livre">
<owl:subclassOf rdf:parseType="Resource">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
<owl:intersectionOf rdf:parseType="Resource">
<rdf:first rdf:resource="http://www.polymtl.ca#ProduitCulturel"/>
<rdf:rest rdf:parseType="Resource">
<rdf:first rdf:parseType="Resource">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
<owl:onProperty rdf:resource="http://www.polymtl.ca#auteur"/>
<owl:someValuesFrom rdf:resource="http://www.polymtl.ca#Personne"/>
</rdf:first>
<rdf:rest rdf:parseType="Resource">
<rdf:first rdf:parseType="Resource">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/>
<owl:onProperty rdf:resource="http://www.polymtl.ca#titre"/>
<owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:rest>
</rdf:rest>
</owl:intersectionOf>
</owl:subclassOf>
</rdf:Description>
<rdf:Description rdf:about="http://www.polymtl.ca#Personne">
<owl:equivalentClass rdf:parseType="Resource">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
<owl:intersectionOf rdf:parseType="Resource">
<rdf:first rdf:parseType="Resource">

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)

Dans quel sous-langage de OWL 2 cette ontologie est-elle crite ?


Dites si cette reprsentation exprime bien ce que lon veut (justifiez votre rponse).

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

aussi pourquoi la correspondance nest pas exacte.

59

You might also like