1 / 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 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.

jacoba
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rémy Choquet AP-HP & Inserm U872 remy.choquet@gmail.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/ProtegeOWLTutorial-p4.0.pdf Création d'une ontologie en OWL avec Protégé 4

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

  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

  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

  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

  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

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

  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

  9. Résultat

  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 »

  11. Résultat

  12. Format de sauvegarde de l’ontologie

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

  14. 1. Ajouter un commentaire à l'ontologie • Assurez-vous que l' onglet ‘Active Ontology’ est sélectionné • Dans la partie dédiée à ‘Ontology Annotations’, double cliquez sur le signe + à droite d'Annotations. Une fenêtre éditable apparaît. • Entrez un commentaire tel que « A pizza ontology that describes various pizzas based on their toppings» dans le champ « description ». Cliquez sur OK.

  15. Résultat Fig 1: The Ontology Annotations View

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

  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

  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.

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

  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.

  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

  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.

  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

  24. Fig 7: Create Class Hierarchy: Select class page

  25. Fig 8: Create Class Hierarchy: Enter classes page

  26. 4. Utiliser l'outil ‘Create Class Hierarchy’ pour créer les sous classes de PizzaBase : ThinAndCrispy et DeepPan(1) • Sélectionnez la classe PizzaBase dans la hiérarchie. • 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. • 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 .

  27. 4. Utiliser l'outil ‘Create Class Hierarchy’ pour créer les sous classes de PizzaBase : ThinAndCrispy et DeepPan(2) • 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à. • Cochez le bouton radio ‘Make all new classes disjoint’.

  28. 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 PizzaTopping (1) • Sélectionnez la classe PizzaTopping dans la hiérarchie. • Lancez l'outil ‘Create class hierarchy...’ comme dans l'exercice 4. • Assurez-vous que PizzaTopping est sélectionné et pressez le bouton ‘Continue’. • 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.

  30. 6. Créer des sous classes de PizzaTopping (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. De l’intension à l’extension Des • 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.

  33. La signification des sous-classes PizzaTopping VegetableTopping TomatoTopping 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.

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

  35. Les relations en OWL / OWL Properties Fig 12: The PropertiesTab

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

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

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

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

  40. Fig 13: The Inverse Property View

  41. Résultat Fig 14: La hiérarchie des relations

  42. 10. Indiquer que la relation hasIngredient est transitive

  43. 11. Indiquer que la relation hasBase 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 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)

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

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

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

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

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

More Related