83
Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 [email protected] Réalisé d'après le document « A Practical Guide To Building OWL Ontologies Using Protégé 4 and CO-ODE Tools », disponible à l'adresse suivante : http://www.co- ode.org/resources/tutorials/ProtegeOWLTutorial-p4.0.pdf

Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 [email protected] Réalisé d'après le document « A Practical Guide

Embed Size (px)

Citation preview

Page 1: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Création d'une ontologie en OWL avec Protégé 4

Rémy ChoquetAP-HP & Inserm U872

[email protected]

Réalisé d'après le document « A Practical Guide To Building OWL Ontologies Using Protégé 4 and CO-ODE Tools », disponible à l'adresse suivante :

http://www.co-ode.org/resources/tutorials/ProtegeOWLTutorial-p4.0.pdf

Page 2: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Plan

• Quelques connaissances sur OWL• Création d'un canevas d'ontologie• La hiérarchie des classes et sous classes

– La disjonction• Les relations

– Les différentes caractéristiques– Le domaine et la portée

• Les restrictions– Les restrictions existentielles– Les restrictions universelles

• Les classifieurs

Page 3: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

3

Les 3 versions d'OWL

• OWL-Lite– Simple hérarchie de concepts et peu de contraintes– Organisation hiérarchique de thésauri

• OWL-DL– Fondé sur les logiques de description– Implémente un fragment de la logique du premier ordre– Vérifie la hiérarchie des concepts et détecte les

inconsistances• OWL-Full

– Langage le plus expressif– A utiliser dans des situations où l'expressivité est plus

importante que la complétude et la décidabilité -> pas de raisonnement automatique

Page 4: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

4

Quels sont les composants d'OWL? (1)

• Les instances de classes (individuals)– Ce sont les objets du domaine qui nous souhaitons

modéliser• Ex : Pierre, Thierry, Marie, Italie, USA...

• Les propriétés ou relations (properties)– « Slots » dans Protégé– Ce sont des relations binaires entre des instances de

classes• Ex : [Marie] (hasChild)[Pierre]

– Caractéristiques• Inverses : hasOwner/isOwnedBy• Fonctionnelle : une seule valeur• Transitive• Symétrique

Page 5: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

5

Quels sont les composants d'OWL? (2)

• Les concepts ou classes– Ce sont des ensembles d'instances

• Ex : le concept Pays est constitué de la France, l'Italie, les USA...

– Les classes sont construites à partir de descriptions qui contraignent les conditions d'appartenance d'une instanceà une classe

-> Sujet du tutoriel

Page 6: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

6

Avant de commencer...

• Protégé 4 : éditeur d'ontologies gratuit et “open source” qui permet de structurer une base de connaissances

– http://protege.stanford.edu/

• Téléchargement du logiciel– http://protege.stanford.edu/download/protege/4.0/

installanywhere/

• Installation

Page 7: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

7

Création d'une nouvelle ontologie avec Protégé 4 (1)

1.Démarrer Protégé 42.Dans la fenêtre « Welcome to Protégé »,

choisissez « Create new OWL ontology »

Page 8: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

8

Création d'une nouvelle ontologie avec Protégé 4 (2)

• Dans la fenêtre « Create Ontology wizard », changez l'adresse URI par http://www.pizza.com/ontologies/pizza.owl

Page 9: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Résultat

Page 10: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

06/10/09

10

Création d'une nouvelle ontologie avec Protégé 4 (3)

• Dans la fenêtre suivante, pensez à sauver votre ontologie en nommant votre fichier « pizza.owl »

Page 11: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Résultat

Page 12: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Format de sauvegarde de l’ontologie

Page 13: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

13

Création d'une nouvelle ontologie avec Protégé 4 (4)

Page 14: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

06/10/09

14

1. Ajouter un commentaire à l'ontologie

1.Assurez-vous que l' onglet ‘Active Ontology’ est sélectionné

2.Dans la partie dédiée à ‘Ontology Annotations’, double cliquez sur le signe + à droite d'Annotations. Une fenêtre éditable apparaît.

3.Entrez un commentaire tel que « A pizza ontology that describes various pizzas based on their toppings» dans le champ « description ». Cliquez sur OK.

Page 15: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

15

Résultat

Fig 1: The Ontology Annotations View

Page 16: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

16

L'onglet Classes / The Classes Tab

Fig 2: The Classes Tab

Page 17: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

17

Icônes pour créer une hiérarchie de classes

Ajouter une sous classe Ajouter une classe sœur Effacer une classe

Fig 3 – Icônes des classes

Page 18: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

18

2. Création des classes Pizza, Pizza Topping et PizzaBase

• Assurez-vous que l'onglet ‘Classes Tab’ est sélectionné.

• Pressez le bouton d'ajout d'une classe. Une nouvelle classe apparaît comme sous classe de celle que vous avez sélectionnée.

• Une boîte de dialogue apparaît et vous permet de saisir le nom de votre nouvelle classe. Tapez Pizza.

• Répétez l'opération pour les classes PizzaTopping et PizzaBase. Assurez-vous que ces classes apparaissent sous la classe Thing dans la hiérarchie.

→ Vocabulaire : Une hiérarchie de classe peut également être appelée une taxinomie.

Page 19: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

19

Résultat

Fig 5: The Initial Class Hierarchy

Fig 4: Class Name Dialog

Page 20: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

20

Idée

• Après avoir créé Pizza, plutôt que de sélectionner Thing et d'utiliser le bouton de création d'une sous classe, vous pouvez utiliser le bouton de création d'une classe sœur (cf. Figure 3) pour créer PizzaTopping et PizzaBase. Il faut dans ce cas sélectionner la classe Pizza.

Page 21: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

21

3. Classes disjointes

• Faire de Pizza, PizzaTopping et PizzaBase des classes disjointes les unes des autres– Sélectionnez la classe Pizza dans la hiérarchie.

– Pressez le bouton ‘Disjoint classes’ dans la partie ‘class description’. Une fenêtre s'ouvre et vous permet de choisir les classes qui doivent être disjointes. Si vous le faites pour une des classes (par exemple PizzaBase), l'action sera automatiquement propagée sur les autres classes sélectionnées.

• Résultat– Sélectionnez la classe PizzaBase. Notez que cette classe est

maintenant disjointe de Pizza et PizzaTopping.

Risque : si on déplace ensuite les classes, on crée facilement des incohérences

Page 22: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

22

Qu'est ce que cela signifie?

•En OWL, les classes, par définition, se chevauchent. Nous ne pouvons pas donc pas supposer qu'un(e) individu/instance n'est pas membre d'une classe particulière simplement parce qu'il n'a pas été défini comme étant un membre de cette classe.

•Pour séparer un groupe de classes, nous devons les déclarer comme disjointes les unes des autres. Cela assure qu'un individu créé comme membre d'une classe du groupe ne peut pas être membre d'une autre classe de ce même groupe.

•Dans notre exemple précédent, Pizza, PizzaTopping et PizzaBase sont disjointes entre elles. Cela signifie qu'aucun individu ne peut être à la fois une Pizza et une PizzaBase.

Page 23: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

06/10/09

23

Peupler une ontologie : créer des classes avec les outils OWL

• Les outils OWL mis à disposition dans cette version de Protégé sont des plugins. Ils servent à simplifier des traitements répétitifs et longs.

• Dans le 4e exercice, nous allons utiliser l'outil ‘Create Class Hierarchy’ pour ajouter des sous classes à la classe PizzaBase.

Fig 6: Menu Create Class Hierarchy

Page 24: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

24Fig 7: Create Class Hierarchy: Select class page

Page 25: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

25

Fig 8: Create Class Hierarchy: Enter classes page

Page 26: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide
Page 27: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

27

4. Utiliser l'outil ‘Create Class Hierarchy’ pour créer les sous classes de PizzaBase :

ThinAndCrispy et DeepPan(1)

1.Sélectionnez la classe PizzaBase dans la hiérarchie.

2.L'outil vu Figure 7 apparaît. Puisque nous avons présélectionné la classe PizzaBase, l'outil devrait nous inciter à créer les classes sous la classe PizzaBase. Si nous n'avions pas présélectionné PizzaBase avant de lancer l'outil, la hiérarchie pourrait être utilisée pour choisir la bonne classe mère.

3.Pressez le bouton ‘Continue’. La page vue Figure 8 apparaît. Nous devons maintenant indiquer les sous classes de PizzaBase que nous souhaitons créer. Dans la zone de texte, tapez ThinAndCrispyBase (pour une pizza à pâte fine) et DeepPanBase (pâte épaisse). Le résultat est visible Figure 8 .

Page 28: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

28

1.Pressez le bouton 'Continue'. L'outil vérifie que les noms saisis correspondent au style prédéfini (pas d'espace, pas d'accent...). Il vérifie également que ces noms n'existent pas déjà.

2.Cochez le bouton radio ‘Make all new classes disjoint’.

4. Utiliser l'outil ‘Create Class Hierarchy’ pour créer les sous classes de PizzaBase :

ThinAndCrispy et DeepPan(2)

Page 29: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

29

5. Créer des garnitures (toppings) pour votre pizza

• Les classes de garnitures que nous allons créer doivent être structurées en catégories– meat

toppings,– vegetable

toppings,– cheese

toppings,– seafood

toppings.Fig 9: Topping Hierarchy

Page 30: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

30

6. Créer des sous-classes de PizzaTopping (1)

1.Sélectionnez la classe PizzaTopping dans la hiérarchie.

2.Lancez l'outil ‘Create class hierarchy...’ comme dans l'exercice 4.

3.Assurez-vous que PizzaTopping est sélectionné et pressez le bouton ‘Continue’.

4.Nous voulons que les noms des nouvelles classes terminent tous par 'topping'.Dans la zone de texte intitulée 'Suffix', tapez 'Topping'. L'outil ajoutera automatiquement cette terminaison à l'ensemble des noms de classes que vous allez créer.

Page 31: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

31

• L'outil permet de créer une hiérarchie de classes en utilisant les indentations.

• En utilisant la zone de texte, entrez les noms des classes comme indiqué Figure 9. Notez que les noms des classes doivent être indentés en utilisant la touche 'tabulation'.

6. Créer des sous classes de PizzaTopping (2)

Page 32: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

32

Résultat

Fig 10: La hiérarchie des classes

Page 33: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

DesDe l’intension à l’extension

• Ce à quoi vous pensez en fabriquant une ontologie est l’intension des concepts

• Ce que vous fabriquez dans Protégé respecte une logique des prédicats. Sans le savoir vous traitez vos concepts d’une manière logique donc ensembliste et ils existent par les objets, les instances, qui appartiennent à la classe

• Vous passez de l’intension à l’extension• Vous devez vous en souvenir pour comprendre

certains comportements de l’outil et des plugins de raisonnement.

Page 34: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

34

PizzaTopping

La signification des sous-classes

VegetableToppingTomatoTopping

Fig 11: Tous les individus (instances) qui sont membres de la classe TomatoTopping sont également membres de la classe VegetableTopping et membres de la classe PizzaTopping car TomatoTopping est une sous-classe de VegetableTopping qui est une sous-classe de PizzaTopping.

Page 35: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

35

Le point

Nous avons créé quelques classes simples, certaines sont des sous classes dans la hiérarchie. Jusqu'ici la construction de la hiérarchie des classes peut sembler facile et intuitive.

Cependant, qu'est-ce que cela signifie d'être une sous-classe d'une autre en OWL? Par exemple, qu'est ce que cela implique pour VegetableTopping d'être une sous classe de PizzaTopping, ou pour TomatoTopping d'être une sous classe de VegetableTopping?

En OWL être une sous-classe a nécessairement des implications. En d'autres termes, si VegetableTopping est une sous-classe de PizzaTopping alors toutes les instances de VegetableTopping sont des instances de PizzaTopping, sans exception — si quelque chose est un VegetableTopping alors c'est aussi un PizzaTopping comme vu Figure 11.

Page 36: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

36

Les relations en OWL / OWL Properties

Fig 12: The PropertiesTab

Page 37: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

37

7. Créer une relation nommée hasIngredient

• Allez sur l'onglet ‘Object Properties’. Utilisez le bouton ‘Add Object Property’ pour créer une nouvelle relation.

• Nommez la nouvelle propriété hasIngredient en remplissant la boîte de dialogue ‘Property Name Dialog’ qui s'affiche.

Page 38: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

38

8. Créer hasTopping et hasBase comme sous relations de

hasIngredient

• Le langage OWL permet de définir des sous relations et donc de créer des hiérarchies de relations comme on a des hiérarchies de classes. Les sous relations (propriétés) sont des spécialisations de leur relation mère.– Par exemple, la relation hasMother, entant que sous relation,

spécialise la relation hasParent.• Pour créer la relation hasTopping property comme sous

relation de la relation hasIngredient, sélectionnez la relation hasIngredient dans la hiérarchie qui s'affiche dans l'onglet ‘Object Properties’.

• Pressez le bouton ‘Add subproperty’ et nomdialogue qui apparaît à l'écran. Validez.

• Répétez l'opération pour créer la relation hasBase.

Page 39: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

39

Les différentes caractéristiques des relations en OWL

• Fonctionnelle– Une relation est déclarée fonctionnelle lorsqu'un seul individu au

plus peut y être relié.• Jean hasBirthMother Catherine. HasBirthMother est fonctionnelle.

• Inverse– Chaque relation peut avoir une relation inverse

• La relation hasParent a pour inverse la relation hasChild, et réciproquement.

• Inverse et fonctionnelle• Exemple : isBirthMotherOf

• Transitive• Peter hasAncestor Mat. Mat hasAncestor Jim => Peter hasAncestor Jim.

• Symétrique• Mat hasSibling Jim => Jim hasSibling Mat.

• Asymétrique• Robert isChildOf Peter => Peter is not a child of Robert.

• Réflexive versus Irréflexive

Page 40: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

40

9. Créer des relations inverses

• Pour créer une ontologie complète, nous allons spécifier les relations inverses correspondantes à celles existantes.

• Créez la relation isIngredientOf qui deviendra l'inverse de hasIngredient.

• Pressez le bouton ‘Add inverse property’ (cf. Fig 13). Cette action ouvre une boîte de dialogue dans laquelle vous allez devoir sélectionner la relation inverse (ici hasIngredient).

• Créez la relation isBaseOf qui deviendra l'inverse de hasBase. Déclarez la inverse.

• Répétez l'opération en créant isToppingOf, l'inverse de la relation hasTopping.

Page 41: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

41

Fig 13: The Inverse Property View

Page 42: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

42

Résultat

Fig 14: La hiérarchie des relations

Page 43: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

43

10. Indiquer que la relation hasIngredient est transitive

Page 44: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

44

• Cela fonctionne de la même manière que les relations inverses.

11. Indiquer que la relation hasBase est fonctionnelle

Page 45: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

45

12. Spécifier le domaine et la portée (range) de la relation hasTopping

• En OWL les relations sont binaires et interviennent pour mettre en relation deux individus (cf. Figure 15) [Domaine] (Relation) [Portée] [Pizza] (hasTopping) [PizzaTopping]

• Sélectionnez la relation hasTopping dans la hiérarchie

• Fixez la portée : pressez le bouton 'Add' (+) en face de 'Ranges' dans la partie description de l'interface (cf. Figure 16)

• Fixez le domaine : pressez le bouton 'Add' (+) en face de 'Domains' dans la partie description de l'interface (cf. Figure 17)

Page 46: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

46

Fig 15: Le domaine et la portée de la relation hasTopping et de son inverse isToppingOf

Page 47: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

47

Résultat

Fig 16: La portée de la relation hasTopping

Fig 17: Le domaine de la relation hasTopping

Page 48: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

48

13. Spécifier le domaine et la portée de la relation hasBase et de son inverse

isBaseOf

• Sélectionnez la relation hasBase• Spécifiez Pizza comme domaine et PizzaBase

comme portée• Sélectionnez la relation inverse isBaseOf• Spécifiez PizzaBase comme domaine et Pizza

comme portée

Page 49: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

49

Le point

• Si l'on reprend l'exemple de la relation hasTopping– Les individus qui appartiennent à la partie gauche

de la relation sont interprétés comme étant membres de la classe Pizza.

– Les individus qui apparaissent dans le contexte droit de la relation sont compris comme appartenant à la classe PizzaTopping.

• Nous venons de créer un certain nombre de relations. Nous allons maintenant les utiliser pour décrire et spécifier le fonctionnement des classes de notre ontologie.

Page 50: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

50

Les deux types de restrictions (1)

• Restriction existentielle (some)– Les restrictions existentielles sont les plus courantes

dans les ontologies OWL– Cette restriction décrit une classe d'individus qui

entretient au moins une (some) relation avec un individu membre d'une classe spécifique

Fig 18: La restriction hasTopping some Mozarella.

Page 51: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

51

• La restriction universelle (only)– Cette restriction décrit des classes d'individus qui

pour une relation donnée n'ont de lien qu'avec les individus d'une classe spécifique

– Par exemple, la classe des individus qui n'ont comme garniture (hasTopping) que les individus appartenant à la classe des légumes (VegetableTopping).

Les deux types de restrictions (2)

Page 52: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

52

14. Ajouter une restriction spécifiant que Pizza doit avoir une PizzaBase

• Sélectionnez la classe Pizza dans l'onglet 'Classes'• Sélectionnez la ligne 'Superclasses' dans la partie

'Class Description'• Pressez le bouton + (Add) sur cette ligne. Cela ouvre

une boîte de dialogue contenant le 'Class expression editor' dans lequel vous allez saisir votre restriction.– Vous pouvez soit écrire hasBase soit faire un « drag and

drop ». Attention, la manière d'écrire le mot doit être la même que celle existante.

– Écrivez ensuite le type de restriction, ici « some ».– Enfin, écrivez PizzaBase.

• Vous devez avoir sur la même ligne (cf. Fig 20 et 21)– hasBase some PizzaBase

Page 53: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

53

Résultat

Fig 21 : La restriction dans son aspect final

Fig 20 : Le 'class expression editor'

Page 54: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

54

15. Créer la classe MargheritaPizza

• Sélectionnez la classe Pizza dans la hiérarchie• Ajoutez une sous classe nommée 'NamedPizza'• Créez une sous classe de NamedPizza que

vous appellerez 'MargheritaPizza'• Ajoutez un commentaire à cette classe en

précisant qu'il s'agit d'une pizza composée de mozarella et de tomato toppings

Page 55: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

55

16. Créer une restriction existentielle pour définir la MargheritaPizza

• Sélectionnez MargheritaPizza dans la hiérarchie

• Suivez les instructions de l'exercice précédent pour décrire cette classe comme ayant, comme garniture, de la mozarella– HasTopping some MozarellaTopping

• Répétez l'opération pour dire qu'elle a aussi de la tomate– HasTopping some TomatoTopping

• Attention, cela veut dire que la Margherita contient au moins (au minimum) de la mozarella et de la tomate mais ... elle peut contenir également d'autres garnitures.

Page 56: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

56

Résultat

Fig 22 : Les restrictions pour la MargheritaPizza

Page 57: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

DesMonde ouvert vs monde fermé

• Une Margherita contient au moins (au minimum) de la mozarella et de la tomate mais ... elle peut contenir également d'autres garnitures.

• Ce n’est pas parce que quelque chose n’a pas été dit, qu’il est faux. Tout peut être vrai tant qu’il n’a pas été déclaré faux. Nous sommes dans l’hypothèse du monde ouvert quand nous créons des ontologies. Si l’on veut que quelque chose soit faux nous devons explicitement le dire.

• C’est le contraire de ce qui se passe dans une base de données.

• Dans une base de données, si une réponse à une requête ne ramène rien, alors la requête est falsifiée : ce qui n’est pas trouvé est faux. Dans une base de données, nous sommes dans l’hypothèse du monde fermé.

• Pour reproduire ce comportement dans une ontologie, il faut créer un axiome de clôture, une restriction universelle (only)

Page 58: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

58

17. Arbres versus treillis (1/2)

• Créer les attributs d’ingrédients piquants, Epice, Moyen, Doux, ExtraDoux et la relation aPourQualiteDEtreEpice. Faites-en une value partition

• Créer les attributs d’ingrédients maigres, TresCalorique, MoyennementCalorique, PeuCalorique et la relation aPourQualiteDEtreCalorique. Faites-en une value partition

• Déclarez une Pizza définie, comme épicée si sa qualité est Epice

• Déclarez une Pizza définie comme calorique si sa qualité est TresCalorique

Page 59: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

59

17. Arbres versus treillis (2/2)

• Précisez que la GarnitureBoeufEpice est Epice. Idem pour GarniturePoivreVert

• Précisez que GarnitureAnchoix et GarnitureFruits sont PeuCalorique

• Affichez l’arbre des GarniturePizza avant classification puis après classification

• Discutez

Page 60: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

05/10/10

Page 61: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

05/10/10

Page 62: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

• Ils forment un arbre organisé par genre et différence donc de notions exclusives les unes des autres

• Leur image au niveau formel forme évidemment un arbre• Ce sont, au début de la construction du niveau formel,

des concepts primitifs

05/10/10

Page 63: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

05/10/10

Page 64: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

64

18. Créer une restriction universelle sur la MargheritaPizza

• Sélectionnez la MargheritaPizza dans la hiérarchie

• Suivez les instructions de l'exercice précédent pour décrire cette classe comme ayant absolument une MozarellaTopping or une TomatoTopping et rien d’autre.

Page 65: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

65

Fig 19: Les restrictions de la classe MargheritaPizza

Page 66: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

66

19. Créer une AmericanaPizza

• Sélectionnez la MargheritaPizza dans la hiérarchie

• Enlevez l’axiome de clôture• Sélectionnez, dans le menu 'Edit', l'opération

'Duplicate selected class'. Renommez cette seconde classe en AmericanaPizza.

• Ajoutez deux restrictions à la classe AmericanaPizza– Elle est composée (en plus de mozarella et de

tomates) de Pepperoni– hasTopping some PepperoniTopping

Page 67: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

67

Résultat

Page 68: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

68

20. Créer une AmericanHotPizza et une SohoPizza

• L'AmericanHotPizza est presque la même que l'AmericanaPizza. Dupliquez l'AmericanaPizza, renommez-la et ajouter une restriction existentielle comme suit :– hasTopping some JalapenoPepperTopping

• La SohoPizza est une MargheritaPizza mais à, comme garniture supplémentaire, des olives et du parmezan :– hasTopping some OlivesTopping– hasTopping some ParmezanTopping

Page 69: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

69

Résultat

Page 70: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

70

20. Déclarer les sous-classes de NamedPizza disjointes des unes des autres

MargheritaPizzaSohoPizza

AmericanaPizzaAmericanHotPizza

Page 71: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

21. Classes inconsistantes

Pour démonter l’utilité du raisonneur dans la détection d’inconsistances, nous allons créer une classe qui est une sous classe de CheeseTopping et aussi de VegetableTopping.

1. Sélectionnez la classe CheeseTopping2. Créez une sous classe nommée

ProbeInconsistentTopping3. Sélectionnez ProbeInconsistentTopping dans la hiérarchie

et sélectionnez « Superclasses » dans le panel à droite4. Cliquez sur le ‘+’ et sélectionnez la classe

VegetableTopping. Validez. 5. La classe VegetableTopping a normalement été ajoutée à

la liste des superclasses de ProbeInconsistentTopping6. Lancer le raisonneur

Page 72: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

72

Lancez le classifieur/raisonneur

Page 73: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Résultat : la classe ProbeInconsistent Topping est inconsistante

Page 74: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Signification

• La classe ProbeInconsistentTopping est définie comme étant à la fois du fromage et des légumes. Or, aucune instance du monde ne peut être les deux à la fois. Cela dit, pour le raisonneur le nom des classes n’a pas de signification.

• L’inconsistance est détectée car nous avons déclaré les deux classes mères, CheeseTopping et VegetableTopping comme étant disjointe l’une de l’autre.

• Autrement dit, les individus membres de la classe CheeseTopping ne peuvent pas être membres de la classe VegetableTopping et vice-versa.

Page 75: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Enlever l’indication de disjonction

• Enlever l’indication de disjonction entre VegetableTopping et CheeseTopping

• Relancer le classifieur• Normalement, la classe

ProbeInconsistentTopping n’est plus inconsistante et n’est plus en rouge

• Désormais un individu du monde décrit peut être à la fois un membre de la classe CheeseTopping et un membre de la classe VegetableTopping

• Il convient donc d’être très prudent quand on spécifie (ou non) une disjonction.

• Remettre l’indication de disjonction.

Page 76: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Quand c’est “rouge”, que faire ?

• Une incohérence se propage. Remonter à la source

• Une classe peut avoir une condition non satisfaite dans une condition existentielle (some)

• Chaque sous-classe d’une classe insatisfiable est elle-même insatisfiable

• Quelques possibilités• Violations des axiomes d’exclusion mutuelle• Expressions insatisfiables• En particuler, confusion entre “and” et “or” • Violation d’une contrainte universelle (only), y

compris domaine et co-domaine• Insatisfaction de contraintes de (co-)domaines

Page 77: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

DesDisjonction, exhaustivité et arbre

• Mettre des relations de disjonctions entre les concepts primitifs doit être fait quand on commence à penser que l’ontologie a une structure un peu stable

• Faire cela suppose qu’on a un arbre de concepts primitifs

• C’est pragmatique mais surtout épistémologiquement fondé : les objets n’ont qu’une seule essence, une seule manière d’être.

• Ces disjonctions n’empêchent pas d’utiliser 2 concepts exclusifs les uns des autres pour construire une représentation– Une pizza et une garniture de pizza n’ont rien à voir l’une

avec l’autre. Il n’y a pas d’instance qui soit à la fois Pizza et garniture mais une MargheritaPizza est bien une pizza avec une garniture (de fromage ou tomate).

Page 78: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

78

22. Créez une CheesyPizza

• Créer une CheesyPizza comme sous-classe de Pizza (elle a donc pour classe sœur NamedPizza)• Définissez-la comme étant une pizza avec du

fromage hasTopping some CheeseTopping

• Cela signifie qu’une pizza contenant du fromage peut être une CheesyPizza -> nous souhaitons modifier la définition pour dire qu’une pizza au fromage a comme condition nécessaire et suffisante de contenir du fromage

Page 79: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Critère nécessaire et suffisant -> classe définie

• Sélectionnez CheesyPizza dans la hiérarchie• Sélectionnez ‘hasTopping some

CheeseTopping’ dans les restrictions au niveau du panel de droite

• Faites un cliquez-déposez de la ligne et amenez la au dessus de « Equivalent class »

• Sélectionnez ensuite la classe Pizza dans le panel de droite

• Faites un cliquez-déposez de cette classe au dessus de ‘hasTopping some CheeseTopping’

Page 80: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

Résultat

Ensuite, relancer le classifieur

Page 81: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

81

Résultat pour la CheesyPizza

Pourquoi?

Page 82: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

DesConditions nécessaires vs nécessaires et suffisantes I

• Jusqu’à la CheesyPizza, les conditions exprimées dans les descriptions de classes ont été des conditions nécessaires. Pour ces classes, ces conditions sont celles qu’une instance doit remplir pour être un membre de la classe.

• Pour certaines classes, e.g. CheesyPizza, ces conditions représentent la superclasse de la classe. Autrement dit, dans quelle classe mettre une instance dont on connaît les conditions exactes qu’elle remplit ? On la met dans une classe décrite par conditions nécessaires et suffisantes, une classe définie.

• OWL supporte ces conditions nécessaires et suffisantes qui permettent de déterminer que toute instance qui satisfait ces conditions peut être rangée, par inférence, dans la classe définie par ces mêmes conditions

Page 83: Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.com Réalisé d'après le document « A Practical Guide

DesConditions nécessaires vs nécessaires et suffisantes II

• On oppose ainsi les classes primitives, définies par conditions nécessaires, aux classe définies, définies par conditions nécessaires et suffisantes.

• Les classes qui ont seulement des conditions nécessaires supportent une description, les classes qui ont des conditions nécessaires et suffisantes ont une définition.

• Une distinction peut être faite entre les informations axiomatiques (asserted) et les informations inférées (inferred).