Le développement des ontologies – spécifications formelles de termes d’un domaine et de relations entre elles[1] et formes modernes de la catégorisation – a quitté le champ de l’Intelligence Artificielle pour gagner les postes informatiques des experts de domaines. Les ontologies sont devenues courantes dans le World-Wide Web. Le champ de ces ontologies varie de taxonomies larges servant à catégoriser les sites Web (tels que dans Yahoo!) aux catégorisations de produits destinés à la vente et de leurs caractéristiques (tel que dans Amazon.com). Le Defence Advances Research Projects Agency (DARPA), conjointement avec le W3C, développe actuellement le DARPA Agent Markup Language (DAML) en vue de procurer des ontologies normalisées utilisables par les experts de domaines pour partager et commenter l’information dans leurs domaines. La médecine par exemple, a produit de vastes vocabulaires normalisés structurés tels que SNOMED[2] et le réseau sémantique du Unified Medical Language System.[3] De même apparaissent de grandes ontologies universelles : par exemple le Programme des Nations Unies pour le développement et Dun & Bradstreet ont unis leurs efforts pour développer l’ontologie UNSPSC qui fournit une terminologie pour les produits et les services.
Une ontologie définit un vocabulaire commun pour les chercheurs qui ont besoin de partager l’information dans un domaine.[4] Elle inclut des définitions lisibles en machine des concepts de base de ce domaine et de leurs relations. Une ontologie sert notamment à :
- Partager la compréhension commune de la structure de l’information entre les personnes ou les fabricants de logiciels.
- Analyser le savoir sur un domaine.
- Permettre la réutilisation du savoir sur un domaine : c’était une des raisons majeures qui ont poussé la recherche sur les ontologies. Par exemple, les modèles de plusieurs domaines ont eu besoin de représenter la notion de temps. Cette représentation comprend les notions d’intervalles de temps, de moments précis de temps, de mesures relatives de temps, etc.
- On peut, également, réutiliser une ontologie générale tel que le UNSPSC et l’étendre pour permettre de décrire un domaine d’intérêt spécifique.
- Distinguer le savoir sur un domaine du savoir opérationnel est une autre des finalités courantes desontologies. Nous pouvons décrire la tâche de configuration d’un produit à partir de ses constituants, en respectant les spécifications requises et implémenter un programme qui réalisera cette configuration indépendamment des produits et de leurs composants. On peut ainsi développer une ontologie des parties composantes et des caractéristiques d’un PC et appliquer l’algorithme pour configurer des PC sur mesure.
Analyser le savoir sur un domaine est possible dès que la spécification des termes du domaine est faite. L’analyse formelle des termes est extrêmement précieuse aussi bien quand on veut réutiliser les ontologies existantes, que quand on veut les étendre.[5] Souvent une ontologie de domaine n’est pas toujours un but en soi. Développer une ontologie s’apparente à définir un ensemble de données et leur structure pour qu’elles soient utilisées par d’autres programmes. Les ontologies et les bases de connaissances élaborées à partir des ontologies sont utilisées comme données par les méthodes de solutions de problèmes, les applications indépendantes des domaines et les fabricants de logiciels. Par exemple, Natalya F. Noy et Deborah L. McGuinness ont développé une ontologie sur le vin, les mets et les alliances appropriées des vins et des plats.[6] Cette ontologie peut être utilisée comme base pour toute une série d’applications visant le management des restaurants. L’exemple du vin et des mets est inspiré d’un exemple de base de connaissances présenté dans un article décrivant CLASSIC – un système de représentation de connaissances basé sur une approche de description-logique (Brachman et al. 1991).
Qu’est une ontologie ?
On dira qu’une ontologie est une description formelle explicite des concepts dans un domaine du discours (classes (appelées parfois concepts)), des propriétés de chaque concept décrivant des caractéristiques et attributs du concept : attributs (appelés parfois rôles ou propriétés)) et des restrictions sur les attributs (facettes (appelées parfois restrictions de rôles)). Une ontologie ainsi que l’ensemble des instances individuelles des classes constituent une base de connaissances.
Les classes décrivent les concepts dans le domaine. Par exemple une classe de vins représente tous les vins. Les vins spécifiques sont des instances de cette classe. Ainsi, on peut diviser la classe de tous les vins en vins rouges, blancs et rosés. Alternativement, nous pouvons diviser une classe de tous les vins en effervescents et non effervescents. Les attributs décrivent les propriétés des classes et des instances: le vin Château Lafite Rothschild Pauillac est un vin charpenté ; il est produit par l’établissement vinicole de Château Lafite Rothschild. Nous avons deux attributs décrivant le vin dans cet exemple : l’attribut corps ayant pour valeur charpenté et l’attribut producteur ayant pour valeur établissement vinicole Château Lafite Rothschild. Au niveau de la classe, on peut dire que les instances dela classe Vin auront des attributs décrivant leur odeur, leur corps, leur niveau de sucre, le
producteur du vin et ainsi de suite.
En termes pratiques, développer une ontologie implique donc de :
- définir les classes dans l’ontologie,
- arranger les classes en une hiérarchie taxinomique (sous-classe – super-classe),
- définir les attributs et décrire les valeurs autorisées pour ces attributs
- renseigner les valeurs pour les attributs des instances
Une simple méthodologie de génie cognitif
Le développement d’une ontologie est nécessairement un processus itératif. Les concepts dans une ontologie doivent être très proches des objets (physiques ou logiques) et des relations dans un domaine d’intérêt. Fort probablement ils sont des noms (objets) ou verbes (relations) dans des phrases qui décrivent un domaine. Il faut également se rappeler qu’une ontologie est un modèle de la "réalité" du monde et que les concepts dans l’ontologie doivent refléter cette réalité.
Etape 1
Quel est le domaine que va couvrir l’ontologie ? A quels types de questions l’ontologie devra-t-elle fournir des réponses ? Qui va utiliser et maintenir l’ontologie ? Naturellement, les concepts qui décrivent les différents types de vins, les types de mets, la notion d’une bonne alliance d’un vin et d’un plat ainsi que celle d’une mauvaise alliance figureront dans une ontologie des vins. Si l’ontologie est destinée à aider les clients des restaurants à décider quel vin commander, nous aurons besoin d’utiliser des informations sur les prix de vente au détail. Si elle est utilisée par les grossistes en vin, des informations sur la disponibilité de la marchandise peuvent être nécessaires.
Une des méthodes pour déterminer la portée d’une ontologie est de rédiger une liste de questions auxquelles une base de connaissances fondée sur une ontologie devrait pouvoir répondre, appelées questions de compétence.[7] Elles serviront plus tard de test décisif.
Voici quelques questions de compétence possibles dans le domaine du vin et des mets :
- Sur quelles caractéristiques dois-je me fonder pour choisir un vin ?
- Un Cabernet Sauvignon peut-il accompagner les plats de fruits de mer ou de poissons ?
- Quel serait le meilleur vin pour accompagner des grillades ?
- Quelles sont les caractéristiques du vin qui affectent sur son accord avec un plat ?
Etape 2. Envisager une éventuelle réutilisation des ontologies existantes
Il existe des bibliothèques d’ontologies réutilisables sur le Web et dans la littérature. Par exemple, on peut utiliser la bibliothèque des ontologies Ontolingua
(http://www.ksl.stanford.edu/software/ontolingua/ ) ou bien la bibliothèque des ontologies DAML (http://www.daml.org/ontologies/ ).
Etape 3. Enumérer les termes importants dans l’ontologie
Il est utile de noter sous forme de liste tous les termes à traiter ou à expliquer à un utilisateur. Par exemple, parmi les termes importants relatifs aux vins il existe : vin, cépage, établissement vinicole, localisation, couleur d’un vin, corps, odeur et contenance en sucre ; différents types de mets, tels que poisson et viande rouge, sous-types de vin tels que vin blanc, etc. Tout d’abord, il est important d’établir une liste exhaustive de termes et de ne pas se soucier de l’éventuelle chevauchement entre les concepts qu’ils représentent, les relations entre les termes ou tout autre propriété des concepts, ni si ces concepts sont des classes ou des facettes.
Etape 4. Définir les classes et la hiérarchie des classes
Il existe un certain nombre d’approches possibles pour développer une hiérarchie de classes. Un procédé de développement de haut en bas commence par une définition des concepts les plus généraux du domaine et se poursuit par la spécialisation des concepts. Par exemple, on peut commencer en créant des classes pour les concepts généraux Vin et Mets. Puis on spécialise la classe Vin en créant des sous-classes : Vin blanc, Vin rouge, Vin rosé. On peut en outre catégoriser la classe Vin rouge, par exemple, Bourgogne rouge, Cabernet Sauvignon, et ainsi de suite.
Un procédé de développement de bas en haut commence par la définition des classes les plus spécifiques, et se poursuit avec le regroupement de ces classes en concepts plus généraux. Par exemple, on peut commencer en définissant des classes pour les vins Pauillac et Margaux. On peut ensuite créer une super-classe commune – Medoc – qui à son tour est une sous-classe de Bordeaux.
Une procédé combiné de développement est une combinaison des deux approches, de haut en bas et de bas en haut. Au tout début, les concepts les plus saillants sont définis, ensuite ils sont généralisés ou spécialisés, suivant le cas. Nous pourrions commencer par quelques concepts du haut niveau tels que Vin et quelques concepts spécifiques, tels que Margaux. Puis, on peut les mettre en relation avec d’autres concepts de niveau intermédiaire, tels que Medoc. Ensuite, on peut poursuivre en créant toutes les classes de vins régionaux de France.
.
La figure ci-dessous montre une possibilité d’articulation entre les différents niveaux de généralité.
Aucune de ces trois méthodes n’est fondamentalement meilleure que les autres. L’approche combinée est souvent, la plus facile à utiliser pour la plupart des développeurs d’ontologies, étant donné que les concepts “ du milieu ” ont tendance à être les concepts les plus descriptifs du domaine.[8]
Si une classe A est super-classe d’une classe B, alors toute instance de B est également, une instance de A. En d’autres termes, la classe B représente un concept qui est “ une sorte ” de A. Par exemple, chaque vin Pinot Noir est obligatoirement un vin rouge. Par conséquent la classe Pinot Noir est une sous-classe de la classe Vin Rouge.
Étape 5. Définir les propriétés des classes – attributs
Les classes seules ne fourniront pas assez d’information pour répondre aux questions de compétence de l’Étape 1. Après avoir défini quelques classes, on doit décrire la structure interne des concepts. On a déjà sélectionné des classes à partir de la liste des termes que nous avons créée pendant l’Étape 3. La plupart des termes restants ont de fortes chances d’être des propriétés de ces classes. Ces termes comprennent, par exemple, la couleur d’un vin, son corps, son odeur et sa teneur en sucre ainsi que la localisation de l’établissement vinicole. Ces propriétés deviennent des attributs rattachés aux classes. Ainsi, la classe Vin aura les attributs suivants : couleur, corps, odeur, et sucre. Et la classe Etablissement vinicole aura l’attribut localisation. En général, certains types de propriétés d’objets peuvent devenir des attributs dans une ontologie : propriétés “ intrinsèques ” telle que l’odeur d’un vin ; propriétés “ extrinsèques ” telles que le nom d’un vin et son terroir; parties, si l’objet est structuré ; elles peuvent être des “ parties ” physiques ou abstraites (ex : les plats d’un repas).
Toutes les sous-classes d’une classe héritent les attributs de cette classe. Par exemple, tous les attributs de la classe Vin seront hérités par toutes les sous-classes de la classe Vin, y compris Vin Rouge et Vin Blanc. Nous ajouterons l’attribut supplémentaire niveau de tannin (bas, modéré, élevé) à la classe Vin Rouge. L’attribut niveau de tanin sera hérité par toutes les classes représentant des vins rouges (telles que Bordeaux et Beaujolais). Un attribut doit être rattaché à la classe la plus générale pouvant avoir cette propriété. Par exemple, corps et couleur d’un vin doivent être rattachés à la classe Vin, puisque c’est la classe la plus générale dont les instances auront un corps et une couleur.
Étape 6. Définir les facettes des attributs
Les attributs peuvent avoir plusieurs facettes décrivant la valeur du type, les valeurs autorisées, le nombre de valeurs (cardinalité), et d’autres caractéristiques de valeurs que les attributs peuvent avoir. Par exemple, l’attribut produit (comme dans "un établissement vinicole produit tels vins") peut avoir de multiples valeurs et ces valeurs sont des instances de la classe Vin. C’est à dire, produit est un attribut ayant pour type de valeur Instance et pour classe autorisée Vin.
Étape 7. Créer les instances
La dernière étape consiste à créer les instances des classes dans la hiérarchie. Définir une instance individuelle d’une classe exige (1) choisir une classe, (2) créer une instance individuelle de cette classe, et (3) la renseigner avec les valeurs des attributs. Par exemple, on peut créer une instance individuelle Château-Morgon-Beaujolais pour représenter un type spécifique des vins Beaujolais. Château-Morgon-Beaujolais est une instance de la classe Beaujolais qui, à son tour, représente tous les vins Beaujolais. Cette instance a les valeurs d’attributs suivantes:
Corps : Léger
Couleur : Rouge
Odeur : Délicate
Niveau de tanin : Bas
Cépage : Gamay (instance de la classe Raisin (wine grape))
Producteur : Château-Morgon (instance de la classe Établissement vinicole)
Région : Beaujolais (instance de la classe Région viticole)
Sucre : Sec
Les classes et leurs noms
Il est important de distinguer entre une classe et son nom : Les classes représentent des concepts dans le domaine et non pas des mots désignant ces concepts. Le nom d’une classe peut varier suivant la terminologie choisie, mais le terme lui-même représente la réalité objective du monde. Par exemple, nous pouvons créer une classe Salicoques et le rebaptiser ensuite Crevettes – la classe représente toujours le même concept. Les associations appropriées de vin et de plats de salicoques devraient se référer aux plats de crevettes. Plus concrètement, la règle suivante devrait toujours être suivie : Les synonymes pour le même concept ne représentent pas de classes différentes. Les synonymes sont juste des noms différents pour un concept ou un terme. Donc, nous ne devrions pas avoir une classe appelée Crevette et une classe appelée Salicoque. Il y aura une seule classe, nommée soit Crevette soit Salicoque.
Héritages multiples
La plupart des systèmes de représentation des connaissances permettent l’héritage multiple dans la hiérarchie des classes : une classe peut être une sous-classe de plusieurs classes. Supposons que nous voulons créer une classe distincte pour les vins de dessert, la classe Vin doux. Le vin de Porto est à la fois un vin rouge et un vin doux. Par conséquent, nous définissons une classe Porto pour avoir deux super-classes : Vin rouge et Vin doux. Toutes les instances de la classe Porto seront aussi bien des instances de la classe Vin rouge que de la classe Vin doux. La classe Porto héritera les attributs et les facettes des attributs de ses deux parents. Ainsi, elle héritera la valeur DOUX pour l’attribut de la classe Vin doux et l’attribut Niveau de tanin et la valeur de son attribut couleur de la classe Vin rouge.
Une instance ou une classe
Décider si un concept particulier est une classe ou une instance individuelle dans une ontologie dépend des applications potentielles de l’ontologie. Trancher sur : où finissent les classes et où commencent les instances individuelles, commence par la définition du niveau le plus bas de granularité dans la représentation. Le niveau de granularité est à son tour défini par l’application potentielle de l’ontologie. Autrement dit, quelles sont les entités les plus spécifiques qui seront représentées dans la base de connaissances ? Par exemple, si nous devons parler seulement d’accord des vins avec des mets, nous ne serons pas intéressés par les bouteilles physiques particulières de vin. Donc, des termes tels que Merlot des Vignobles de Sterling seront probablement les termes les plus spécifiques que nous utiliserons. En d’autres termes, la classe Vin rassemble non pas des bouteilles individuelles de vins mais des vins particulières produits par des établissements vinicoles particuliers. Donc, le Merlot des Vignobles de Sterling serait une instance dans la base de connaissances. Par ailleurs, si nous souhaitons maintenir un inventaire des vins dans le restaurant, alors les bouteilles individuelles de chaque vin peuvent devenir des instances individuelles dans notre base de connaissances. De même, si nous souhaitons enregistrer les propriétés différentes de chaque millésime spécifique du Merlot des Vignobles de Sterling, alors tout millésime spécifique de ce vin sera une instance dans la base de connaissances et le Merlot des Vignobles de Sterling sera une classe contenant des instances pour toutes ses millésimes.
Qu’y a-t-il dans un nom ?
Définir des conventions à suivre lorsqu’on nomme les concepts dans une ontologie et y adhérer, non seulement rend l’ontologie plus compréhensible, mais aide également à éviter les quelques erreurs les plus fréquentes de modélisation. Plusieurs alternatives existent pour nommer les concepts. Souvent, il n’y a pas de raison particulière pour privilégier l’une ou l’autre de ces alternatives. Néanmoins nous avons besoin de définir une convention de nomination pour les classes et les attributs et y adhérer :
- Le système a-t-il le même espace de nomination pour les classes, attributs et instances ? C’est-à-dire, permet–il d’avoir une classe et un attribut ayant le même nom (tels qu’une classe établissement vinicole et un attribut établissement vinicole) ?
- Le système est-il sensible à la casse ? C’est-à-dire, traite-t-il de la même façon les noms selon qu’ils sont entrés en majuscules ou en minuscules (tels que Établissement vinicole et établissement vinicole)?
- Quels délimiteurs le système autorise-t-il pour les noms ? C’est-à-dire, les noms peuvent-ils contenir
des espaces, des virgules, des astérisques, etc. ?
Actuellement, les chercheurs mettent l’accent non seulement sur le développement des ontologies, mais aussi sur l’analyse des ontologies. Étant donné le nombre croissant d’ontologies qui vont être générées et réutilisées, l’offre des outils d’analyse augmentera proportionnellement. Par exemple, Chimaera (McGuinness et al.) fournit des outils de diagnostic pour analyser les ontologies.[9] L’analyse effectuée par Chimaera comprend aussi bien une vérification de la rigueur logique d’une ontologie que le diagnostic des erreurs habituelles dans sa conception.
Conclusion
Nous avons décrit ici une méthodologie de développement d’ontologie pour les systèmes déclaratifs de type FRL. Nous avons listé les étapes dans le processus de développement d’une ontologie et abordé les problèmes complexes de définition d’une hiérarchie de classes, des propriétés des classes et des instances. Toutefois, après avoir suivi toutes les règles et suggestions, la remarque la plus importante à retenir est : il n’y a pas qu’une seule ontologie correcte de référence pour un domaine précis. La conception des ontologies est un processus créatif et il ne peut pas y avoir d’ontologies identiques faites par des personnes différentes. Les applications potentielles d’une ontologie et la compréhension du concepteur, ainsi que le point de vue qu’il a du domaine traité, affecteront indubitablement les choix de conception de l’ontologie. Nous pouvons tester la qualité de notre ontologie uniquement en l’utilisant dans les applications pour lesquelles elle a été conçue.
Georges Vignaux
Références
Booch, G., Rumbaugh, J. and Jacobson, I. (1997). The Unified Modeling Language user guide: Addison-Wesley.
Brachman, R.J., McGuinness, D.L., Patel-Schneider, P.F., Resnick, L.A. and Borgida, A. (1991). Living with CLASSIC: When and how to use KL-ONE-like language. Principles of Semantic Networks. J. F., Sowa, editor, Morgan Kaufmann: 401-456.
Brickley, D. and Guha, R.V. (1999). Resource Description Framework (RDF) Schema Specification. Proposed Recommendation, World Wide Web Consortium: http://www.w3.org/TR/PR-rdf-schema.
Chimaera (2000). Chimaera Ontology Environment. http://www.ksl.stanford.edu/software/chimaera
Duineveld, A.J., Stoter, R., Weiden, M.R., Kenepa, B. and Benjamins, V.R. (2000). WonderTools? A comparative study of ontological engineering tools. International Journal of Human-Computer Studies
52(6): 1111-1133.
Farquhar, A. (1997). Ontolingua tutorial. http://ksl-web.stanford.edu/people/axf/tutorial.pdf
Gómez-Pérez, A. (1998). Knowledge sharing and reuse. Handbook of Applied Expert Systems. Liebowitz, editor, CRC Press.
Musen, M.A. (1992). Dimensions of knowledge sharing and reuse. Computers and Biomedical Research 25: 435-467.
Ontolingua (1997). Ontolingua System Reference Manual. http://www-kslsvc., stanford.edu:5915/doc/frame-editor/index.html
Rothenfluh, T.R., Gennari, J.H., Eriksson, H., Puerta, A.R., Tu, S.W. and Musen, M.A. (1996). Reusable ontologies, knowledge-acquisition tools, and performance systems: PROTÉGÉ-II solutions to Sisyphus-2. International Journal of Human-Computer Studies 44: 303-332.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. and Lorensen, W. (1991). Object-oriented modeling and design. Englewood Cliffs, New Jersey: Prentice Hall.
[1] Gruber, T.R., A Translation Approach to Portable Ontology Specification. Knowledge Acquisition 5: 1993, 199-220.
[2] Price, C. and Spackman, K., SNOMED clinical terms. BJHC&IM-British Journal of Healthcare Computing & Information Management, 2000, 17(3): 27-31.
[3] Humphreys, B.L. and Lindberg, D.A.B., "The UMLS project: making the conceptual connection between users and the information they need". Bulletin of the Medical Library Association, 1993, 81(2): 170.
[4] Natalya F. Noy et Deborah L. McGuinness, "Développement d’une ontologie", Université de Stanford, Stanford, CA, 94305
[5] McGuinness, D.L., Fikes, R., Rice, J. and Wilder, S., An Environment for Merging and Testing Large Ontologies. Principles of Knowledge Representation and Reasoning: Proceedings of the Seventh International Conference (KR2000). A. G. Cohn, F. Giunchiglia and B. Selman, editors. San Francisco, CA, Morgan Kaufmann Publishers, 2000.
[6] Natalya F. Noy et Deborah L. McGuinness, "Développement d’une ontologie", Université de Stanford, Ca.
[7] Gruninger, M. and Fox, M.S., "Methodology for the Design and Evaluation of Ontologies". In: Proceedings of the Workshop on Basic Ontological Issues in Knowledge Sharing, IJCAI-95, Montreal.
Hendler, J. and McGuinness, D.L.,The DARPA Agent Markup Language. IEEE Intelligent Systems, 2000, 16(6): 67-73.
[8] Rosch, E., Principles of Categorization. Cognition and Categorization. R. E. and B. B. Lloyd, Hillside, NJ, Lawrence Erlbaum Publishers, 1978, 27-48.
[9] McGuinness, D.L., Abrahams, M.K., Resnick, L.A., Patel-Schneider, P.F., Thomason, R.H., Cavalli-Sforza, V. and Conati, C. Classic Knowledge Representation System Tutorial. http://www.belllabs.com/project/classic/papers/ClassTut/ClassTut.html