Ontologies : kesaco?
Le concept d’ontologie est une notion qu’il n’est pas toujours facile de caractériser. En effet, il est utilisé dans différents contextes, ie. la philosophie, la linguistique, l’intelligence artificielle (IA)… , et chacun en donne une définition particulière. Du point de vue purement étymologique, le mot ontologie vient du grec ancien onto signifiant « étant, se qui est » et logos signifiant « discours, traité ». Le terme a été introduit au 19° siècle mais fait référence à la notion qu’Aristote désignait il y a 2300 ans comme la doctrine ou théorie de l’être en tant qu’être [1]. Entendons par là que l’Ontologie fait référence à une discipline de la philosophie, branche de la métaphysique, qui étudie la nature et l’organisation se qui existe. Le terme a été finalement repris par analogie dans les communautés de l’IA et de l’ingénierie des connaissances durant les années 1990 afin de référencer l’ensemble des concepts renvoyant à se que l’on considère comme exister dans un domaine [2].
A travers cet article, nous verrons tout d’abord quelles définitions en ont ces différentes communautés, ainsi que leurs objectifs. Nous donnerons ensuite une liste non exhaustives des avantages qui peuvent résulter de leurs utilisations pour finalement étudier comment les mettre en œuvre.
Définitions
La définition données aux ontologies a évoluée au court du temps au sein de la communauté de l’IA. La plus communément admise est celle donnée par T. Gruber qui la définie comme étant une spécification formelle est explicite d’une conceptualisation [3]. Cette définition fait suite à des travaux antérieurs qui décrivaient les ontologies comme la définition des termes et relations de bases, comprenant aussi bien le vocabulaire d’un domaine que les règles qui permettent de les combiner afin d’étendre ce vocabulaire [4]. Cette vision des ontologies a été reprise et étendue par R. Studer [5] et c’est cette définition que nous retenons : « les ontologies sont des spécifications formelles et explicites d’une conceptualisation partagé ».
Afin d’interpréter correctement cette définition, il nous parait important d’expliquer le sens des mots employés. Ainsi, le terme conceptualisation indique que l’ensemble des concepts pertinents du domaine cible et de leurs propriétés sont identifiés et organisés en hiérarchie dans un modèle abstrait. Un concept est défini comme étant une notion généralement exprimée par un terme, ou plus généralement par un signe. Il représente un groupe d’objets ou d’entités qui ont en commun un ensemble de caractéristiques et qui nous permettent de les reconnaître comme faisant partie de ce groupe [6]. Spécification explicite implique que les concepts, ainsi que les contraintes qui s’y rapportent sont explicitement définis. L’emploi du terme formel souligne le fait que cette conceptualisation doit pouvoir être comprise et interprétée non seulement par les humains mais également par les machines. Finalement, la notion partagée reflète l’idée que l’ontologie capture des connaissances consensuelles, qui ne sont pas réservées à un seul individu, mais partagées par un groupe. Dans [7], A. Renouf définit plus formellement une ontologie comme étant :
- un ensemble de concepts ;
- un ensemble de relations entre ces concepts ;
- un ensemble d’axiomes (eg. transitivité, réflexivité, symétrie des relations…) ;
Différents types d’ontologies
Les ontologies vont donc nous permettre de capturer et de structurer les connaissances d’un domaine. Cependant, ce dernier peut être appréhendé de différente façons, ie. différentes manières de représenter les connaissances. Il existe donc différents types d’ontologies qui, pour chacun, permet de décrire les connaissances du domaine selon un point de vue particulier. G. van Heijst définit dans [8] que les ontologies peuvent être divisées en 2 grandes catégories. La première, définie par la quantité et le type de structure de conceptualisation, permet de distinguer 3 types d’ontologies :
- Terminologique : spécifie les termes utilisés pour représenter la connaissance ;
- Information : spécifie la structure des bases de données ;
- Représentation des connaissances : spécifie la conceptualisation de la connaissance ;
La deuxième catégorie différencie 4 types d’ontologies suivant leur sujet de conceptualisation :
- Application : contient l’ensemble des définitions nécessaire à la construction de la connaissance dans une application particulière (non réutilisables puisqu’elles sont adaptées à une application) ;
- Domaine : exprime les conceptualisations spécifiques pour chaque domaine (définie les contraintes sur la structure et le contenu des connaissances) ;
- Générique : similaire à l’ontologie de domaine à l’exception près qu’elle définie des concepts pouvant être considérés comme commun à différents domaines ;
- Représentation : définie les primitives qui permettent de décrire l’ontologie générique ou de domaine. Elle se veut neutre, ie. qu’elle ne fait pas référence aux entités du monde réel ;
Intérêts
Développer une ontologie juste par plaisir n’a pas de sens en soit et c’est pourquoi cette démarche s’inscrit dans l’optique de répondre à un besoin spécifique (ou à un ensemble). Les auteurs de [9] listent un ensemble de raisons qui nécessite le développement d’une ontologie :
- Partager la compréhension commune de la structure de l’information entre les personnes ou les fabricants de logiciels ;
- Permettre la réutilisation du savoir du domaine ;
- Expliciter se qui est considéré comme implicite sur un domaine ;
- Distinguer le savoir sur un domaine du savoir opérationnel ;
- Analyser le savoir sur un domaine ;
De façon plus générale, pour [10], les avantages à tirer d’une ontologie peuvent être réparties en 3 catégories :
- Communication : en fixant un vocabulaire et la grammaire, elles permettent de répondre au besoin de communication entre personnes, personnes et systèmes et systèmes et systèmes ;
- Intéropérabilité : en offrant un accès commun à l’information et une compréhension partagée des concepts, elles permettent de faciliter l’intéropérabilité des systèmes et la réutilisation des sources de connaissances ;
- Amélioration logicielle : au niveau de la spécification (compréhension partagée des problèmes), fiabilité (tests de consistance [semi-]automatique) et de la réutilisabilité (fixe la structure des connaissances).
Mise en œuvre
Il existe à l’heure actuelle de nombreux langages, plus ou moins récents, permettant de créer et manipuler des ontologies. Ceci peut sans aucun doute s’expliquer par le fait que la définition de l’ontologie permet d’imaginier un vaste choix d’applications cibles dans un nombre de domaines tout aussi variés. Nous pouvons retrouver dans [11] un certain nombre de ces langages :
- Open Knowledge Base Connectivity : OKCB (version 2.0.3 en 1998) est une API permettant l’accès à des bases de connaissances ;
- Knowledge Interchange Format : KIF est un langage destiné à faciliter la communication entre systèmes disparates ;
- LOOM : LOOM est un langage de représentation des connaissances dont le but avoué est de « permettre la construction d’applications intelligentes » ;
- RDF Shema : RDFS (premère version en 1999) est un langage de représentation des connaissances appartenant à la famille du web sémantique et publié par le W3C. Il fournit les éléments de base pour la définition d’ontologies ou de vocabulaires destinés à structurer des ressources RDF ;
- DARPA Agent Markup Language : DAML est fondé sur XML et RDF. DAML-ONT autorise l’expression de classes RDF plus poussées que se que permettait à l’époque RDFS (en 2000). Le projet continue toujours, mais se nomme depuis 2001 DAML+OIL ;
- Web Ontology Language : OWL, qui est une recommandation officielle du W3C depuis 2004, se veut être le standard dans le domaine des ontologies. Il a été conçu comme une extension de RDFS et est de ce fait plus expressif que ce dernier. En effet, il apporte en plus de la capacité de décrire des classes et des propriétés, des outils de comparaison offrant ainsi aux machines une plus grande capacité d’interprétation.
Tout comme il existe divers langages ontologiques, il existe un certain nombre d’outils permettant de les créer et de les éditer. Nous ne citerons comme exmple que Protégé qui est l’outil le plus populaire et le plus utilisé, mais il est intéressant de noter qu’il n’est pas le seul.
Références
[1] Définition tirée de l’encyclopédie Universalis[2] Bruno Bachimont, http://www.technolangue.net/article.php3?id_article=280[3] T. R. Gruber. A translation approach to portable ontology specications. Knowl. Acquis., 5(2):199-220, 1993[4] R. Neches, R. Fikes, T. Finin, T. Gruber, R. Patil, T. Senator, and W. Swartout. Enabling technology for knowledge sharing. AI Magazine, 12(3):36-56, August 1991[5] R. Studer, V. R. Benjamins, and D. Fensel. Knowledge engineering: Principles and methods, 1998[6] F. Gandon. Ontology engineering: a survey and a return on experience. Technical Report RR-4396, INRIA, 03 2002[7] A. RENOUF. Modélisation de la formulation d’applications de traitement d’images. PhD thesis, Université de Caen, September 2007[8] G. van Heijst, A. T. Schreiber, and B. J. Wielinga. Using explicit ontologies in kbs development. Int. J. Hum.-Comput. Stud., 46(2-3):183{292, 1997[9] N. F. Noy and D. L. McGuinness. Ontology development 101: A guide to creating your first ontology[10] M. Uschold, M. Uschold, M. Gruninger, and M. Gruninger. Ontologies : Principles, methods and applications. Knowledge Engineering Review, 11:93-136, 1996[11] applications. Knowledge Engineering Review, 11:93-136, 1996Aucun commentaire