Ce document décrit pas à pas les étapes (indiquées par ★) pour la création d'une ontologie. Le but du document est la familiarisation avec les principales commandes de l'interface de l'éditeur d'ontologie Protégé.
Le Site de Protégé explique comment explorer une ontologie existante, mais ici vous allez en créer une nouvelle.
Un conseil: Pour suivre ce tutoriel, il peut être pratique de diviser votre écran en deux parties: une pour Protégé et une autre qui affiche ce document.
Cette ontologie est adaptée de l'exemple 3.1 (p 17) d'un texte de Grigoris Antoniou and Frank van Harmelen. Elle était aussi présentée dans la deuxième édition Semantic Web Primer (pages 135 et suivantes).
Dans les énoncés à codifier dans l'ontologie, la convention suivante est utilisée:
Ces choix devraient en principe être effectués suite à une analyse complète des besoins, mais nous les imposons ici pour les besoins de cet exercice.
Attention: Ne pas oublier d'indiquer que les classes Plante et Animal sont disjointes en choisissant une de celles-ci et en indiquant l'autre dans Disjoint With de la vue Description.
La partie droite de l'écran permet de voir des informations sur les classes et d'en changer les caractéristiques.
il faut choisir la classe Branche dans la vue Class hierarchy et cliquer sur SubClass Of dans la vue Description pour faire apparaître une fenêtre permettant de définir une expression définissant la superclasse. Dans cette fenêtre, choisir l'onglet Object restriction creator et sélectionner la propriété partieDe à gauche, Arbre à droite et Only (universal) dans le menu en bas comme dans cette figure:«Une Branche est une partie d'un Arbre»
Ceci permet d'exprimer qu'une branche fait toujours partie d'un arbre et lorsqu'on clique OK, on obtient sous la rubrique SubClass Of de la vue Description l'expression correspondante en syntaxe de Manchester: partieDe only Arbre
[plus de détails sur la syntaxe des expressions de classe].
de façon à obtenir l'expression«Une Feuille est une partie d'une Branche»
partieDe only Branche
comme SubClass Of de Feuille.
choisir Herbivore dans la vue Class hierarchy et, dans la vue Description à l'item SubClass Of, cliquer sur le dernier bouton à droite (Edit) pour écrire Animal and mange only (Plante or partieDe only Plante) directement l'expression en syntaxe de Manchester dans l'onglet Class expression editor de la fenêtre qui apparaît, comme dans la figure suivante:«Un Herbivore est un Animal qui ne mange qu'une Plante ou une partie d'une Plante»
Au lieu de taper les noms des classes ou propriétés, on peut les glisser à partir d'autres vues et ainsi éviter des erreurs de frappe. L'éditeur effectue une vérification syntaxique de l'expression à mesure de la frappe. Il est possible d'obtenir une liste de suggestions en tapant sur CTRL-espace ou TAB en tout temps.
modifier la définition de la superclasse (à l'item SubClass Of!) pour indiquer qu'un carnivore peut aussi manger un autre carnivore pour obtenir la figure suivante:«Un Carnivore est un Animal qui mange aussi un Animal.»
ajouter une superclasse pour obtenir la figure suivante:«Une Girafe est un Herbivore qui ne mange que des Feuilles.»
Ajouter une superclasse pour obtenir la figure suivante:«Un Lion est un Animal qui ne mange que des Herbivores.»
ajouter deux superclasses à PlanteSavoureuse pour obtenir la figure suivante:«Une PlanteSavoureuse est une Plante qui est mangée par un Herbivore et aussi par un Carnivore»
Lorsque les expressions de classe deviennent complexes, il est utile d'ajouter une annotation de type comment en appuyant sur le signe + à côté de Annotations dans la vue Annotations ce qui fait apparaître une fenêtre semblable à la suivante:
Il est aussi possible d'avoir une visualisation de l'ontologie avec la vue OntoGraf. Si cette vue n'apparaît pas, choisissez l'item de menu système Window>Views>Class views>Ontograf et placer le point qui apparaît dans une vue existante et cliquer pour y ajouter cette nouvelle vue comme onglet à cette vue.
Ajouter les individus suivants:
Léo
le LionSophie
la GirafeOlivier
l'ArbreRose-Marie
la PlanteSavoureuseBatavia
la FeuilleLaPalme
la Branche. Pour indiquer que ces individus sont tous différents, il suffit d'en choisir un et d'appuyer sur le +
à côté de Different individuals dans la vue Description et de sélectionner les autres individus dans la fenêtre qui apparaîtra. Tous les individus seront alors considérés comme distincts comme on peut le constater en les sélectionnant dans la vue Individuals.
Une figure équivalente à la suivante devrait alors apparaître:
Le grand intérêt de l'utilisation de Protégé est la possibilité de vérifier si l'ontologie créée ne contient pas des définitions contradictoires. Avec une ontologie aussi simpliste que celle que nous avons construite dans ce document, il est facile de vérifier à la main la cohérence du tout, mais ceci est pratiquement impossible pour des cas plus complexes. Nous allons illustrer le processus de vérification en créant une classe qui serait à la fois une plante et un animal.
Animal and Plante
. La classe AnimalPlante sera alors placée à la fois sous Animal et Plante comme dans la figure suivante:
La classe AnimalPlante apparaît comme inconsistante car nous avons déclaré (à l'énoncé II) que les classes Animal et Plante doivent être disjointes. Cette explication est d'ailleurs fournie par Protégé si on clique sur le point d'interrogation à côté de owl:Nothing dans la vue Description.
Ce petit exemple ne fait pas ressortir toutes les possibilités de Protégé, en particulier nous n'avons pas expliqué comment modifier les vues et leur position, ou créer plusieurs classes en spécifiant leur hiérarchie, ni toutes les subtilités de la modélisation d'ontologie.
La prochaine étape pourrait être maintenant de lire et d'expérimenter avec cet autre tutoriel qui développe un exemple du domaine de la pizza en utilisant d'autres éléments de l'interface.
Une alternative à Protégé est WebProtégé qui offre sensiblement les mêmes possibilités que la version desktop sans nécessiter d'installation locale. Toutefois, l'interface est un peu moins intuitive (il faut utiliser la syntaxe Manchester pour créer des classes complexes) et il n'intègre pas la possibilité d'appeler un reasoner. WebProtégé facilite toutefois le travail en équipe en coordonnant les opérations d'éditions sur une même ontologie et en journalisant les opérations d'édition.