Cration dune ontologie en OWL avec Protg 4

  • Slides: 83
Download presentation
Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U

Création d'une ontologie en OWL avec Protégé 4 Rémy Choquet AP-HP & Inserm U 872 remy. [email protected] com 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/Protege. OWLTutorial p 4. 0. pdf

Plan • Quelques connaissances sur OWL • Création d'un canevas d'ontologie • La hiérarchie

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

Les 3 versions d'OWL • OWL Lite – Simple hérarchie de concepts et peu

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 3

Quels sont les composants d'OWL? (1) • Les instances de classes (individuals) – Ce

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] (has. Child)[Pierre] – Caractéristiques • • Inverses : has. Owner/is. Owned. By Fonctionnelle : une seule valeur Transitive Symétrique 4

Quels sont les composants d'OWL? (2) • Les concepts ou classes – Ce sont

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 5

Avant de commencer. . . • Protégé 4 : éditeur d'ontologies gratuit et “open

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 6

Création d'une nouvelle ontologie avec Protégé 4 (1) 1. Démarrer Protégé 4 2. Dans

Création d'une nouvelle ontologie avec Protégé 4 (1) 1. Démarrer Protégé 4 2. Dans la fenêtre « Welcome to Protégé » , choisissez « Create new OWL ontology » 7

Création d'une nouvelle ontologie avec Protégé 4 (2) • Dans la fenêtre « Create

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 8

Résultat

Résultat

Création d'une nouvelle ontologie avec Protégé 4 (3) • Dans la fenêtre suivante, pensez

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 » 06/10 10

Résultat

Résultat

Format de sauvegarde de l’ontologie

Format de sauvegarde de l’ontologie

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

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

1. Ajouter un commentaire à l'ontologie 1. Assurez vous que l' onglet ‘Active Ontology’

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. 06/10 14

Résultat Fig 1: The Ontology Annotations View 15

Résultat Fig 1: The Ontology Annotations View 15

L'onglet Classes / The Classes Tab Fig 2: The Classes Tab 16

L'onglet Classes / The Classes Tab Fig 2: The Classes Tab 16

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

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 17

2. Création des classes Pizza, Pizza Topping et Pizza. Base • Assurez vous que

2. Création des classes Pizza, Pizza Topping et Pizza. Base • 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 Pizza. Topping et Pizza. Base. 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. 18

Résultat Fig 4: Class Name Dialog Fig 5: The Initial Class Hierarchy 19

Résultat Fig 4: Class Name Dialog Fig 5: The Initial Class Hierarchy 19

Idée • Après avoir créé Pizza, plutôt que de sélectionner Thing et d'utiliser le

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 Pizza. Topping et Pizza. Base. Il faut dans ce cas sélectionner la classe Pizza. 20

3. Classes disjointes • Faire de Pizza, Pizza. Topping et Pizza. Base des classes

3. Classes disjointes • Faire de Pizza, Pizza. Topping et Pizza. Base 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 Pizza. Base), l'action sera automatiquement propagée sur les autres classes sélectionnées. • Résultat – Sélectionnez la classe Pizza. Base. Notez que cette classe est maintenant disjointe de Pizza et Pizza. Topping. Risque : si on déplace ensuite les classes, on crée facilement des incohérences 21

Qu'est ce que cela signifie? • En OWL, les classes, par définition, se chevauchent.

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. Topping et Pizza. Base sont disjointes entre elles. Cela signifie qu'aucun individu ne peut être à la fois une Pizza et une Pizza. Base. 22

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

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 4 e exercice, nous allons utiliser l'outil ‘Create Class Hierarchy’ pour ajouter des sous classes à la classe Pizza. Base. 06/10 Fig 6: Menu Create Class Hierarchy 23

Fig 7: Create Class Hierarchy: Select class page 24

Fig 7: Create Class Hierarchy: Select class page 24

Fig 8: Create Class Hierarchy: Enter classes page 25

Fig 8: Create Class Hierarchy: Enter classes page 25

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

4. Utiliser l'outil ‘Create Class Hierarchy’ pour créer les sous classes de Pizza. Base : Thin. And. Crispy et Deep. Pan(1) 1. Sélectionnez la classe Pizza. Base dans la hiérarchie. 2. L'outil vu Figure 7 apparaît. Puisque nous avons présélectionné la classe Pizza. Base, l'outil devrait nous inciter à créer les classes sous la classe Pizza. Base. Si nous n'avions pas présélectionné Pizza. Base 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 Pizza. Base que nous souhaitons créer. Dans la zone de texte, tapez Thin. And. Crispy. Base (pour une pizza à pâte fine) et Deep. Pan. Base (pâte épaisse). Le résultat est visible Figure 8. 27

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

4. Utiliser l'outil ‘Create Class Hierarchy’ pour créer les sous classes de Pizza. Base : Thin. And. Crispy et Deep. Pan(2) 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’. 28

5. Créer des garnitures (toppings) pour votre pizza • Les classes de garnitures que

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 29

6. Créer des sous classes de Pizza. Topping (1) 1. Sélectionnez la classe Pizza.

6. Créer des sous classes de Pizza. Topping (1) 1. Sélectionnez la classe Pizza. Topping dans la hiérarchie. 2. Lancez l'outil ‘Create class hierarchy. . . ’ comme dans l'exercice 4. 3. Assurez vous que Pizza. Topping 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 'Su� x', tapez 'Topping'. L'outil ajoutera automatiquement cette terminaison à l'ensemble des noms de classes que vous allez créer. 30

6. Créer des sous classes de Pizza. Topping (2) • L'outil permet de créer

6. Créer des sous classes de Pizza. Topping (2) • 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'. 31

Résultat Fig 10: La hiérarchie des classes 32

Résultat Fig 10: La hiérarchie des classes 32

Des De l’intension à l’extension • Ce à quoi vous pensez en fabriquant une

Des De 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.

La signification des sous classes Pizza. Topping Tomato. Topping Vegetable. Topping Fig 11: Tous

La signification des sous classes Pizza. Topping Tomato. Topping Vegetable. Topping Fig 11: Tous les individus (instances) qui sont membres de la classe Tomato. Topping sont également membres de la classe Vegetable. Topping et membres de la classe Pizza. Topping car Tomato. Topping est une sous-classe de Vegetable. Topping qui est une sous-classe de Pizza. Topping. 34

Le point Nous avons créé quelques classes simples, certaines sont des sous classes dans

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 Vegetable. Topping d'être une sous classe de Pizza. Topping, ou pour Tomato. Topping d'être une sous classe de Vegetable. Topping? En OWL être une sous-classe a nécessairement des implications. En d'autres termes, si Vegetable. Topping est une sous classe de Pizza. Topping alors toutes les instances de Vegetable. Topping sont des instances de Pizza. Topping, sans exception — si quelque chose est un Vegetable. Topping alors c'est aussi un Pizza. Topping comme vu Figure 11. 35

Les relations en OWL / OWL Properties Fig 12: The Properties. Tab 36

Les relations en OWL / OWL Properties Fig 12: The Properties. Tab 36

7. Créer une relation nommée has. Ingredient • Allez sur l'onglet ‘Object Properties’. Utilisez

7. Créer une relation nommée has. Ingredient • Allez sur l'onglet ‘Object Properties’. Utilisez le bouton ‘Add Object Property’ pour créer une nouvelle relation. • Nommez la nouvelle propriété has. Ingredient en remplissant la boîte de dialogue ‘Property Name Dialog’ qui s'affiche. 37

8. Créer has. Topping et has. Base comme sous relations de has. Ingredient •

8. Créer has. Topping et has. Base comme sous relations de has. Ingredient • 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 has. Mother, entant que sous relation, spécialise la relation has. Parent. • Pour créer la relation has. Topping property comme sous relation de la relation has. Ingredient, sélectionnez la relation has. Ingredient 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 has. Base. 38

Les différentes caractéristiques des relations en OWL • Fonctionnelle – Une relation est déclarée

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 has. Birth. Mother Catherine. Has. Birth. Mother est fonctionnelle. • Inverse – Chaque relation peut avoir une relation inverse • La relation has. Parent a pour inverse la relation has. Child, et réciproquement. • Inverse et fonctionnelle • Exemple : is. Birth. Mother. Of • Transitive • Peter has. Ancestor Mat has. Ancestor Jim => Peter has. Ancestor Jim. • Symétrique • Mat has. Sibling Jim => Jim has. Sibling Mat. • Asymétrique • Robert is. Child. Of Peter => Peter is not a child of Robert. • Réflexive versus Irréflexive 39

9. Créer des relations inverses • Pour créer une ontologie complète, nous allons spécifier

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 is. Ingredient. Of qui deviendra l'inverse de has. Ingredient. • 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 has. Ingredient). • Créez la relation is. Base. Of qui deviendra l'inverse de has. Base. Déclarez la inverse. • Répétez l'opération en créant is. Topping. Of, l'inverse de la relation has. Topping. 40

Fig 13: The Inverse Property View 41

Fig 13: The Inverse Property View 41

Résultat Fig 14: La hiérarchie des relations 42

Résultat Fig 14: La hiérarchie des relations 42

10. Indiquer que la relation has. Ingredient est transitive 43

10. Indiquer que la relation has. Ingredient est transitive 43

11. Indiquer que la relation has. Base est fonctionnelle • Cela fonctionne de la

11. Indiquer que la relation has. Base est fonctionnelle • Cela fonctionne de la même manière que les relations inverses. 44

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

12. Spécifier le domaine et la portée (range) de la relation has. Topping • En OWL les relations sont binaires et interviennent pour mettre en relation deux individus (cf. Figure 15) [Domaine] (Relation) [Portée] [Pizza] (has. Topping) [Pizza. Topping] • Sélectionnez la relation has. Topping 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) 45

Fig 15: Le domaine et la portée de la relation has. Topping et de

Fig 15: Le domaine et la portée de la relation has. Topping et de son inverse is. Topping. Of 46

Résultat Fig 16: La portée de la relation has. Topping Fig 17: Le domaine

Résultat Fig 16: La portée de la relation has. Topping Fig 17: Le domaine de la relation has. Topping 47

13. Spécifier le domaine et la portée de la relation has. Base et de

13. Spécifier le domaine et la portée de la relation has. Base et de son inverse is. Base. Of • Sélectionnez la relation has. Base • Spécifiez Pizza comme domaine et Pizza. Base comme portée • Sélectionnez la relation inverse is. Base. Of • Spécifiez Pizza. Base comme domaine et Pizza comme portée 48

Le point • Si l'on reprend l'exemple de la relation has. Topping – Les

Le point • Si l'on reprend l'exemple de la relation has. Topping – 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 Pizza. Topping. • 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. 49

Les deux types de restrictions (1) • Restriction existentielle (some) – Les restrictions existentielles

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 has. Topping some Mozarella. 50

Les deux types de restrictions (2) • La restriction universelle (only) – Cette restriction

Les deux types de restrictions (2) • 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 (has. Topping) que les individus appartenant à la classe des légumes (Vegetable. Topping). 51

14. Ajouter une restriction spécifiant que Pizza doit avoir une Pizza. Base • Sélectionnez

14. Ajouter une restriction spécifiant que Pizza doit avoir une Pizza. Base • 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 has. Base 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 Pizza. Base. • Vous devez avoir sur la même ligne (cf. Fig 20 et 21) – has. Base some Pizza. Base 52

Résultat Fig 20 : Le 'class expression editor' Fig 21 : La restriction dans

Résultat Fig 20 : Le 'class expression editor' Fig 21 : La restriction dans son aspect final 53

15. Créer la classe Margherita. Pizza • Sélectionnez la classe Pizza dans la hiérarchie

15. Créer la classe Margherita. Pizza • Sélectionnez la classe Pizza dans la hiérarchie • Ajoutez une sous classe nommée 'Named. Pizza' • Créez une sous classe de Named. Pizza que vous appellerez 'Margherita. Pizza' • Ajoutez un commentaire à cette classe en précisant qu'il s'agit d'une pizza composée de mozarella et de tomato toppings 54

16. Créer une restriction existentielle pour définir la Margherita. Pizza • Sélectionnez Margherita. Pizza

16. Créer une restriction existentielle pour définir la Margherita. Pizza • Sélectionnez Margherita. Pizza 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 – Has. Topping some Mozarella. Topping • Répétez l'opération pour dire qu'elle a aussi de la tomate – Has. Topping some Tomato. Topping • 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. 55

Résultat Fig 22 : Les restrictions pour la Margherita. Pizza 56

Résultat Fig 22 : Les restrictions pour la Margherita. Pizza 56

Des Monde ouvert vs monde fermé • Une Margherita contient au moins (au minimum)

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

17. Arbres versus treillis (1/2) • Créer les attributs d’ingrédients piquants, Epice, Moyen, Doux,

17. Arbres versus treillis (1/2) • Créer les attributs d’ingrédients piquants, Epice, Moyen, Doux, Extra. Doux et la relation a. Pour. Qualite. DEtre. Epice. Faites en une value partition • Créer les attributs d’ingrédients maigres, Tres. Calorique, Moyennement. Calorique, Peu. Calorique et la relation a. Pour. Qualite. DEtre. Calorique. 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 Tres. Calorique 58

17. Arbres versus treillis (2/2) • Précisez que la Garniture. Boeuf. Epice est Epice.

17. Arbres versus treillis (2/2) • Précisez que la Garniture. Boeuf. Epice est Epice. Idem pour Garniture. Poivre. Vert • Précisez que Garniture. Anchoix et Garniture. Fruits sont Peu. Calorique • Affichez l’arbre des Garniture. Pizza avant classification puis après classification • Discutez 59

05/10

05/10

05/10

05/10

Les concepts différentiels vs formels Différentiel et Primitif ne sont pas des notions homologues

Les concepts différentiels vs formels Différentiel et Primitif ne sont pas des notions homologues du niveau différentiel au niveau formel • 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

Les concepts différentiels vs formels Différentiel et Primitif ne sont pas des notions homologues

Les concepts différentiels vs formels Différentiel et Primitif ne sont pas des notions homologues du niveau différentiel au niveau formel • Les concepts issus du niveau différentiel forment logiquement un arbre de concepts formels disjoints • De nouveaux concepts, définis, viennent compléter l'arbre précédent • L'image, au niveau formel, de certains concepts différentiels, peut devenir, pour les nécessités de la modélisation, des concepts définis • La classification de l'ensemble des concepts (primitifs et définis) ne modifie pas l'ordre des concepts différentiels les uns par rapport aux autres • L'ensemble des concepts forme un treillis de notions pas toutes disjointes 05/10

18. Créer une restriction universelle sur la Margherita. Pizza • Sélectionnez la Margherita. Pizza

18. Créer une restriction universelle sur la Margherita. Pizza • Sélectionnez la Margherita. Pizza dans la hiérarchie • Suivez les instructions de l'exercice précédent pour décrire cette classe comme ayant absolument une Mozarella. Topping or une Tomato. Topping et rien d’autre. 64

Fig 19: Les restrictions de la classe Margherita. Pizza 65

Fig 19: Les restrictions de la classe Margherita. Pizza 65

19. Créer une Americana. Pizza • Sélectionnez la Margherita. Pizza dans la hiérarchie •

19. Créer une Americana. Pizza • Sélectionnez la Margherita. Pizza 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 Americana. Pizza. • Ajoutez deux restrictions à la classe Americana. Pizza – Elle est composée (en plus de mozarella et de tomates) de Pepperoni – has. Topping some Pepperoni. Topping 66

Résultat 67

Résultat 67

20. Créer une American. Hot. Pizza et une Soho. Pizza • L'American. Hot. Pizza

20. Créer une American. Hot. Pizza et une Soho. Pizza • L'American. Hot. Pizza est presque la même que l'Americana. Pizza. Dupliquez l'Americana. Pizza, renommez la et ajouter une restriction existentielle comme suit : – has. Topping some Jalapeno. Pepper. Topping • La Soho. Pizza est une Margherita. Pizza mais à, comme garniture supplémentaire, des olives et du parmezan : – has. Topping some Olives. Topping – has. Topping some Parmezan. Topping 68

Résultat 69

Résultat 69

20. Déclarer les sous classes de Named. Pizza disjointes des unes des autres Margherita.

20. Déclarer les sous classes de Named. Pizza disjointes des unes des autres Margherita. Pizza American. Hot. Pizza Soho. Pizza Americana. Pizza 70

21. Classes inconsistantes Pour démonter l’utilité du raisonneur dans la détection d’inconsistances, nous allons

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 Cheese. Topping et aussi de Vegetable. Topping. 1. Sélectionnez la classe Cheese. Topping 2. Créez une sous classe nommée Probe. Inconsistent. Topping 3. Sélectionnez Probe. Inconsistent. Topping dans la hiérarchie et sélectionnez « Superclasses » dans le panel à droite 4. Cliquez sur le ‘+’ et sélectionnez la classe Vegetable. Topping. Validez. 5. La classe Vegetable. Topping a normalement été ajoutée à la liste des superclasses de Probe. Inconsistent. Topping 6. Lancer le raisonneur

Lancez le classifieur/raisonneur 72

Lancez le classifieur/raisonneur 72

Résultat : la classe Probe. Inconsistent Topping est inconsistante

Résultat : la classe Probe. Inconsistent Topping est inconsistante

Signification • La classe Probe. Inconsistent. Topping est définie comme étant à la fois

Signification • La classe Probe. Inconsistent. Topping 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, Cheese. Topping et Vegetable. Topping comme étant disjointe l’une de l’autre. • Autrement dit, les individus membres de la classe Cheese. Topping ne peuvent pas être membres de la classe Vegetable. Topping et vice versa.

Enlever l’indication de disjonction • Enlever l’indication de disjonction entre Vegetable. Topping et Cheese.

Enlever l’indication de disjonction • Enlever l’indication de disjonction entre Vegetable. Topping et Cheese. Topping • Relancer le classifieur • Normalement, la classe Probe. Inconsistent. Topping 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 Cheese. Topping et un membre de la classe Vegetable. Topping • Il convient donc d’être très prudent quand on spécifie (ou non) une disjonction. • Remettre l’indication de disjonction.

Quand c’est “rouge”, que faire ? • Une incohérence se propage. Remonter à la

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

Des Disjonction, exhaustivité et arbre • Mettre des relations de disjonctions entre les concepts

Des Disjonction, 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 Margherita. Pizza est bien une pizza avec une garniture (de fromage ou tomate).

22. Créez une Cheesy. Pizza • Créer une Cheesy. Pizza comme sous classe de

22. Créez une Cheesy. Pizza • Créer une Cheesy. Pizza comme sous classe de Pizza (elle a donc pour classe sœur Named. Pizza) • Définissez la comme étant une pizza avec du fromage has. Topping some Cheese. Topping • Cela signifie qu’une pizza contenant du fromage peut être une Cheesy. Pizza > nous souhaitons modifier la définition pour dire qu’une pizza au fromage a comme condition nécessaire et suffisante de contenir du fromage 78

Critère nécessaire et suffisant > classe définie • Sélectionnez Cheesy. Pizza dans la hiérarchie

Critère nécessaire et suffisant > classe définie • Sélectionnez Cheesy. Pizza dans la hiérarchie • Sélectionnez ‘has. Topping some Cheese. Topping’ 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 ‘has. Topping some Cheese. Topping’

Résultat Ensuite, relancer le classifieur

Résultat Ensuite, relancer le classifieur

Résultat pour la Cheesy. Pizza Pourquoi? 81

Résultat pour la Cheesy. Pizza Pourquoi? 81

Conditions nécessaires vs Des nécessaires et suffisantes I • Jusqu’à la Cheesy. Pizza, les

Conditions nécessaires vs Des nécessaires et suffisantes I • Jusqu’à la Cheesy. Pizza, 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. Cheesy. Pizza, 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

Conditions nécessaires vs Des nécessaires et suffisantes II • On oppose ainsi les classes

Conditions nécessaires vs Des 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).