<page> <title>Ontologie (informatique)</title> <id>72707</id> <revision> <id>31407123</id> <timestamp>2008-07-08T13:52:18Z</timestamp> <contributor> <username>Skadge</username> <id>13488</id> </contributor> <minor /> <comment>Correction lien image</comment> <text xml:space="preserve">{{Voir homonymes|Ontologie}} En [[philosophie]], l''''ontologie''' (du grec oν, oντος, participe présent du verbe être) est l'étude de l'[[être]] en tant qu'[[être]], c'est-à -dire l'étude des propriétés générales de ce qui existe. C'est très naturellement que le terme est repris en [[informatique]] et en [[Science de l'information|science de l'information]], où une '''ontologie''' est l'ensemble structuré des termes et concepts fondant le [[sens]] d'un champ d'informations, que ce soient par les [[Métadonnée|métadonnées]] d'un [[Espace de noms|espace de noms]], ou les items d'un domaine de connaissances. L'ontologie constitue en soi un modèle de données représentatif d'un ensemble de concepts dans un [[Domaine du discours|domaine]], ainsi que les relations entre ces concepts. Elle est employée pour [[Raisonnement|raisonner]] à propos des objets du domaine concerné. Les [[concept]]s sont organisés dans un [[graphe (théorie des graphes)|graphe]] dont les [[relation]]s peuvent être : * des relations [[sémantique]]s ; * des relations de [[subsomption]]. L'objectif premier d'une ontologie est de modéliser un ensemble de [[connaissance]]s dans un domaine donné. On peut aussi dire que les ontologies sont employées dans l'[[intelligence artificielle]], le [[Web sémantique]], le [[Génie logiciel|génie logiciel]], l'[[:en:biomedical informatics|informatique biomédicale]] et l'[[:en:information architecture|architecture de l'information]] comme une forme de représentation de la connaissance au sujet d'un monde ou d'une certaine partie de ce monde. Les ontologies décrivent généralement : * Individus : les objets de base * Classes : ensembles, collections, ou types d'objets<ref>Voir [[Classe (mathématiques)]], [[Classe (informatique)]], and [[:en:Class (philosophy)|Classe (philosophique)]], chacun étant pertinent, mais non identique à la notion de "classe" ici.</ref> * Attributs : propriétés, fonctionnalités, caractéristiques ou paramètres que les objets peuvent posséder et partager * Relations : les liens que les objets peuvent avoir entre eux * Événements : changements subis par des attributs ou des relations == Définitions d'une ontologie == === Approche abstraite === L’étymologie renvoie à la « théorie de l’existence », c’est-à -dire la théorie qui tente d’expliquer les concepts qui existent dans le [[monde (univers)|monde]] et comment ces concepts s’imbriquent et s’organisent pour donner du [[sens]]. Contrairement à l'[[être humain]], la ''[[connaissance]]'' pour un [[système informatique]] se limite à la connaissance qu'il peut ''[[représenter]]''. Chez l'[[être humain]], les [[connaissance]]s [[représentable]]s (c'est-à -dire ''l'[[univers du discours]]'') sont complétées par des connaissances non exprimables ([[sensation]]s, [[perception]]s, sentiments non verbalisables, connaissances [[inconsciente]]s, etc.). Ces éléments non représentables participent pourtant aux processus de [[raisonnement]] et de [[décision]], qui sont des [[processus cognitif]]s en [[gestion des connaissances]]. Les performances cognitives d'un agent informatique vont donc en partie reposer sur le ''champ des [[représentation]]s'' auquel il aura accès, c'est-à -dire concrètement au champ des [[représentation]]s qui aura été ''formalisé''. Les ontologies informatiques sont des outils qui permettent précisément de représenter un corpus de connaissances sous une forme utilisable par un [[ordinateur]]. Une des définitions de l'ontologie qui fait autorité est celle de Gruber (cf. références) : ; Une ontologie est la spécification d'une conceptualisation d'un domaine de connaissance. Cette définition s'appuie sur deux dimensions : * Une ontologie est la ''[[concept|conceptualisation]]'' d'un domaine, c'est-à -dire un ''choix'' quant à la manière de décrire un domaine. * C'est par ailleurs la ''[[spécification]]'' de cette conceptualisation, c'est-à -dire sa ''description formelle''. C'est une base de formalisation des connaissances. Elle se situe à un certain niveau d'abstraction et dans un contexte particulier. C'est aussi une [[représentation]] d'une conceptualisation partagée et consensuelle, dans un domaine particulier et vers un objectif commun. Elle classifie en catégories les relations entre les concepts. === Critères d'évaluation d'une ontologie === D'après Gruber, cinq critères permettent de mettre en évidence des aspects importants d'une ontologie : * La '''clarté''' : La définition d'un concept doit faire passer le [[sens (linguistique)|sens]] voulu du terme, de manière aussi ''objective'' que possible (indépendante du contexte). Une définition doit de plus être ''complète'' (c’est-à -dire définie par des conditions à la fois nécessaires et suffisantes) et documentée en langage naturel. * La '''cohérence''' : Rien qui ne puisse être inféré de l'ontologie ne doit entrer en contradiction avec les définitions des concepts (y compris celles qui sont exprimées en langage naturel). * L''''extensibilité''' : Les extensions qui pourront être ajoutées à l'ontologie doivent être anticipées. Il doit être possible d'ajouter de nouveaux concepts sans avoir à toucher aux fondations de l'ontologie. * Une '''déformation d'encodage minimale''' : Une déformation d'encodage a lieu lorsque la spécification influe la conceptualisation (un concept donné peut être plus simple à définir d'une certaine façon pour un langage d'ontologie donné, bien que cette définition ne corresponde pas exactement au sens initial). Ces déformations doivent être évitées autant que possible. * Un '''engagement ontologique minimal''' : Le but d'une ontologie est de définir un vocabulaire pour décrire un domaine, si possible de manière ''complète'' ; ni plus, ni moins. Contrairement aux bases de connaissances par exemple, on n'attend pas d'une ontologie qu'elle soit en mesure de fournir systématiquement une réponse à une question arbitraire sur le domaine. ''Une ontologie est la théorie la plus faible couvrant un domaine ; elle ne définit que les termes nécessaires pour partager la connaissance liée à ce domaine''. === Approche opérationnelle === Parallèlement à cette définition assez théorique de ce que représente une ontologie, une autre définition, plus opérationnelle, peut être formulée ainsi : ; Une ontologie est un réseau sémantique qui regroupe un ensemble de concepts décrivant complètement un domaine. Ces concepts sont liés les uns aux autres par des relations [[taxonomie|taxonomiques]] (hiérarchisation des concepts) d'une part, et [[sémantique|sémantiques]] d'autre part. Cette définition rend possible l'écriture de langages destinés à implémenter des ontologies. Pour construire une ontologie, on dispose d'au moins trois de ces notions : # Détermination des agents passifs ou actifs. # Leurs conditions fonctionnelles et contextuelles. # Leurs transformations possibles vers des objectifs limités. Pour modéliser une ontologie, on utilisera ces outils : # Raffiner les vocabulaires et notions adjacentes. # Décomposer en catégories et autres topics. # Prédiquer afin de connaître les transformations adjacentes et d'orienter vers les objectifs internes. # Relativiser afin d'englober des concepts. # Similariser afin de réduire à des bases totalement distinctes. # Instancier afin de reproduire l'ensemble d'une "branche" vers une autre ontologie. == Les ontologies en pratique == === Exemple d'ontologies === [[Image:Mason-ontology.png|350px|thumb|right|Quelques concepts et liens sémantiques d'une ontologie relative à la production manufacturière, présentés sous forme d'[[arbre heuristique]] ]] Par exemple, pour décrire les concepts entrant en jeu dans la conception de cartes électroniques, on pourrait définir l'ontologie (simplifiée ici) suivante : * une ''carte électronique'' est un ensemble de ''composants'', * un ''composant'' peut être soit un ''condensateur'', soit une ''résistance'', soit une ''puce'', * une ''puce'' peut être soit une ''unité de mémoire'', soit une ''unité de calcul'', * une ''carte électronique'' qui contient une ''unité de calcul'' contient aussi au moins une ''unité de mémoire''. === Langages pour les ontologies === Le langage de spécification est l'élément central sur lequel repose l'ontologie. La plupart de ces langages se basent sur la [[logique du premier ordre]], et représentent donc les connaissances sous forme d'assertion (sujet, prédicat, objet). Parmi les formalismes les plus employés se basant sur la logique des prédicats, on retrouve des langages comme [[N3]] ou [[N-Triple]]. On peut aussi évoquer le langage [[DEF-*]]. Par ailleurs, dans le cadre de ses travaux sur le [[Web sémantique]], le [[World Wide Web Consortium|W3C]] a mis en place en 2002 un groupe de travail dédié au développement de langages standards pour modéliser des ontologies utilisables et échangeables sur le [[Web]]. S'inspirant de langages précédents comme [[DAML+OIL]] et des fondements théoriques des [[logique de description | logiques de description]], ce groupe a publié en 2004 une recommandation définissant le langage [[Web Ontology Language|OWL]] (''Web Ontology Language''), fondé sur le standard [[Resource Description Framework|RDF]] et en spécifiant une syntaxe XML. Plus expressif que son prédecesseur [[RDFS]], OWL a rapidement pris une place prépondérante dans le paysage des ontologies et est désormais, de facto, le standard le plus utilisé. === Outils pour travailler avec les ontologies === Les éditeurs d'ontologie suivants sont gratuits et téléchargeables * {{en}} [http://protege.stanford.edu/ Protégé] est le plus connu et le plus utilisé des éditeurs d'ontologie. Open-source, développé par l'[[Université de Stanford]], il a évolué depuis ses premières versions (Protégé-2000) pour intégrer à partir de 2003 les standards du Web sémantique et notamment [[Web Ontology Language|OWL]]. Il offre de nombreux composants optionnels : raisonneurs, interfaces graphiques. * {{en}} [http://code.google.com/p/swoop/ SWOOP] est un éditeur d'ontologie développé par l'Université du Maryland dans le cadre du projet MINDSWAP. Contrairement à Protégé, il a été développé de façon native sur les standards [[Resource Description Framework|RDF]] et [[Web Ontology Language|OWL]], qu'il prend en charge dans leurs différentes syntaxes (pas seulement XML). C'est une application plus légère que Protégé, moins évoluée en terme d'interface, mais qui intègre aussi des outils de raisonnement. * [http://www.algo.be/dev-logiciels.htm#kmed KMgen] est un éditeur d'ontologie pour le langage KM ([http://www.cs.utexas.edu/users/mfkb/RKF/km.html KM: The Knowledge Machine]). Avec l'émergence du marché des technologies du Web sémantique, on peut noter l'apparition depuis 2005 d'outils logiciels proposés par des éditeurs commerciaux. On peut citer: *[http://www.altova.com/products/semanticworks/semantic_web_rdf_owl_editor.html SemanticWorks] fait partie de la suite d'outils XML développée par Altova. Il supporte le langage OWL à travers sa syntaxe [[Extensible Markup Language|XML]]. *[http://www.topbraidcomposer.com/ TopBraid Composer] est développé par TopQuadrant. Son interface et ses fonctionnalités ressemblent beaucoup à celles de Protégé (le développeur principal de TopBraid étant l'ancien développeur des extensions OWL de Protégé). *[http://www.ontologos-corp.com/methodologie_ousia-ocw.html Ontology Craft Workbench] développé par la société Ontologos-corp suite aux travaux de l'équipe Condillac de l'Université de Savoie. Les ontologies sont disponibles aux formats XML et OWL. Il existe d'autre part des outils [[informatique]]s permettant de construire une ontologie à partir d'un corpus de textes. Ces outils parcourent le texte à la recherche de termes récurrents ou définis par l'utilisateur, puis analysent la manière dont ces termes sont mis en relation dans le texte (par la grammaire, et par les concepts qu'ils recouvrent et dont une définition peut être trouvée dans un lexique fourni par l'utilisateur). Le résultat est une ontologie qui représente la connaissance globale que contient le corpus de texte sur le domaine d'application qu'il couvre. Le projet WordNet (voir les liens) en est l'exemple le plus important. == Approche normative == En [[Europe]], la [[norme]] qui fait actuellement l'objet d'une attention particulière est une norme qui permet notamment de décrire les ontologies sur le [[patrimoine culturel immatériel]] ([[bibliothèque]]s, [[musée]]s et [[archive]]s,...). Ses références exactes sont : [[ISO 21127]] : ontologies nécessaires à la description des données concernant le patrimoine culturel == Voir aussi == * [[Gestion des connaissances]] * [[Métadonnée]] * [[Ontoterminologie]] * [[Arbre heuristique]] == Notes == <references/> == Liens externes == * {{en}} [http://www.opencyc.org/ OpenCyc] est un projet qui vise à la construction d'une ontologie-mère. * {{en}} [http://wordnet.princeton.edu/ WordNet] est une ontologie de la langue anglaise particulièrement riche. * {{en}} [http://ontology.buffalo.edu/smith/ Barry Smith's Ontology Page] * {{en}} [http://ontology.buffalo.edu/ Buffalo Ontology Site] * {{en}} [http://ncor.us National Center for Ontological Research] * {{en}} [http://ncbo.us National Center for Biomedical Ontology] =Références= * Thomas R. Gruber - ''Towards Principles for the Design of Ontologies Used for Knowledge Sharing'' in Formal Ontology in Conceptual Analysis and Knowledge Representation, Kluwer Academic Publishers, 1993 [[Catégorie:Ontologie (informatique)|*]] [[Catégorie:Architecture logicielle]] [[cs:Ontologie (výpoÄetnà technika)]] [[da:Ontologi (datalogi)]] [[de:Ontologie (Informatik)]] [[en:Ontology (computer science)]] [[es:OntologÃa (informática)]] [[et:Ontoloogia (arvutiteadus)]] [[fa:هستی‌شناسی (رایانه)]] [[fi:Ontologia (tietojenkäsittelytiede)]] [[he:××•× ×˜×•×œ×•×’×™×” (מדעי המידע)]] [[hr:Ontologija (raÄunarstvo)]] [[hu:Ontológia (mesterséges intelligencia)]] [[it:Ontologia (informatica)]] [[ja:オントãƒã‚¸ãƒ¼]] [[ko:온톨로지]] [[lt:Ontologija (informatika)]] [[nl:Ontologie (informatica)]] [[pt:Ontologia (ciência da computação)]] [[ru:ÐžÐ½Ñ‚Ð¾Ð»Ð¾Ð³Ð¸Ñ (информатика)]] [[sr:Онтологија (рачунарÑтво)]] [[zh:本体论 (计算机)]]</text> </revision> </page>