Ontologie (informatique)
En informatique et en science de l'information, une ontologie est un modèle de données contenant des concepts et relations permettant de modéliser un ensemble de connaissances dans un domaine donné.
Les concepts sont organisés dans un graphe dont les relations peuvent être :
- des relations sémantiques ;
- des relations de subsomption.
Les ontologies sont employées dans l’intelligence artificielle, le web sémantique, le génie logiciel, l'informatique biomédicale ou encore l'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 (en) : ensembles, collections, ou types d'objets[1] ;
- 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 ;
- métaclasse (web sémantique) : des collections de classes qui partagent certaines caractéristiques.
Étymologie
Le terme est utilisé par analogie avec le concept philosophique, d'ontologie (de onto-, tiré du grec ὤν, ὄντος « étant », participe présent du verbe εἰμί « être ») qui 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.
Historique
En 1993, Tom Gruber (en) définit une ontologie comme une « spécification explicite d’une conceptualisation »[2] - [3]. En 1997, W. N. Borst propose de définir une ontologie comme une « spécification formelle d’une conceptualisation partagée »[2]. Finalement, en 1998, Rudi Studer (en), Richard Benjamins et Dieter Fensel (en) fusionnent les deux définitions et définissent une ontologie comme une « spécification formelle et explicite d’une conceptualisation partagée »[2] - [4].
Principe
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 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 connaissances représentables (c'est-à -dire l'univers du discours) sont complétées par des connaissances non exprimables (sensations, perceptions, sentiments non verbalisables, connaissances inconscientes, connaissances tacites, etc.). Ces éléments non représentables participent pourtant aux processus de raisonnement et de décision, qui sont des processus cognitifs en gestion des connaissances. Les performances cognitives d'un agent informatique vont donc en partie reposer sur le champ des représentations auquel il aura accès, c'est-à -dire concrètement au champ des représentations 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[5] :
« Une ontologie est la spécification d'une conceptualisation. […] Une conceptualisation est une vue abstraite et simplifiée du monde que l'on veut représenter[note 1]. »
Cette définition s'appuie sur deux dimensions :
- une ontologie est la 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.
Évaluation
D'après Gruber[5], 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 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 sur 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. Toujours selon Gruber, « l'engagement ontologique peut être minimisé en spécifiant la théorie la plus faible (celle permettant le plus de modèles) couvrant un domaine ; elle ne définit que les termes nécessaires pour partager les connaissances consistantes avec cette théorie »[note 2].
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 taxinomiques (hiérarchisation des concepts) d'une part, et 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 sujets ;
- 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.
Types
On identifie trois types d’ontologies selon un niveau décroissant d’abstraction.
- Les ontologies globales (Top-Level Ontology) : présentent un plus haut niveau d’abstraction et de généralité, sont les ontologies formelles, car elles sont issues d’un développement systématique, rigoureux et axiomatique de la logique de toutes les formes et modes d’existence. L’adoption de principes rigoureux dans la conception de l’ontologie formelle répond au besoin de disposer de connaissances pouvant être partagées et transférées d’un contexte à l’autre. Elles sont dédiées à des utilisations générales (ex : WordNet). Une ontologie formelle est donc une théorie des distinctions formelles entre les éléments d'un domaine, indépendamment de leur réalité (Guarino, 1997).
- Les ontologies de domaine, ou dédiées à une tâche plus spécifique : limitées à la représentation de concepts dans des domaines donnés (géographie, médecine, écologie, etc.) et qui spécialise les concepts de l’ontologie globale.
- Les ontologies d’application (Guarino, 1998) : offrent le plus fin niveau de spécificité, c’est-à -dire qu’elles sont dédiées à un champ d’application précis à l’intérieur d’un domaine et décrivent le rôle particulier des entités de l’ontologie de domaine dans ce champ. Par exemple, l’ensemble des spécifications sur la forêt de Montmorency constitue une ontologie d’application qui spécifie les concepts généraux pouvant provenir d’une ontologie de domaine forestier générale.
Pratique
Exemples
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.
Langages
Le langage de spécification est l'élément central sur lequel repose l'ontologie.
La plupart de ces langages se basent sur ou sont proches de la logique du premier ordre, et représentent donc les connaissances sous forme d'assertion (sujet, prédicat, objet). Ces langages sont typiquement conçus pour s'abstraire des structures de données et se concentrer sur la sémantique[6]. 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 W3C a mis en place en 2002 un groupe de travail consacré 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 logiques de description, ce groupe a publié en 2004 une recommandation définissant le langage OWL (Web Ontology Language), fondé sur le standard RDF et en spécifiant une syntaxe XML. Plus expressif que son prédécesseur 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é.
Bien que développé pour la représentation des vocabulaires contrôlés et structurés (thésaurus), SKOS peut être utilisé pour élaborer et gérer des ontologies légères multilingues[7].
Évaluation des langages de spécification
Les langues utilisées pour la représentation des ontologies peuvent être évaluées en prenant compte des critères généraux suivants: une syntaxe compacte, un cadre sémantique bien défini pour comprendre ce qui est représenté, l'expressivité adéquate qui permet de représenter la connaissance humaine (plus l'expressivité est grande, moindre sont les capacités d'inférence d'une langue), un mécanisme de raisonnement adéquat, l'utilisabilité pour la construction des bases de connaissances larges, ainsi que l'interopérabilité avec des standards web existants[8] - [9] - [10].
De plus, le langage ontologique devrait être capable de décrire la connaissance d'une manière qui permettrait à une machine de le lire. Donc, il doit inclure non seulement la capacité à définir le vocabulaire, mais de le faire d'une manière qui fonctionne pour le raisonnement automatique[10].
Il faut aussi prendre en compte la formalité de la langue utilisée pour la création d'une ontologie, plus la langue est formelle moins elle est expressive. La formalité implique la présence de syntaxe, de sémantique et de pragmatique, la présence de seulement un de ces aspects signifie que le langage est informel ou semi-formel[10] - [11].
Il existe d'autres critères à prendre en compte :
- Les constructions ou conceptualisations du domaine : chaque langage comporte ses propres entités et relations appropriées pour décrire un domaine de connaissances donné[12].
- La spécialisation d'une langue : chaque langage vient avec sa propre perspective i.e deux langages peuvent représenter le même domaine de connaissances d'une manière très différente. Les langages des ontologies peuvent comporter des perspectives fonctionnelles (focus sur les processus, les activités et les transformations), structurelles (pour décrire des structures statiques, c'est-à -dire des ontologies non-dynamiques du point de vue informationnel dans lesquelles les relations entre les concepts ne changent pas souvent, c'est une perspective qui est la plus utilisée dans le contexte de la création des ontologies), transitivistes (états et transitions entre ceux-ci), réglementaires (règles codifiées pour certains processus, activités et entités), d'objet (objets, processus et classes)[10] - [11] - [13].
- La présence du support lexical : la capacité de référence lexicale d'éléments (ex : synonymes), cela tombe sous le même critère de l'expressivité[10].
- La compréhensibilité : la compréhension du langage par l'audience cible. Le support des mécanismes d'abstractions, des constructions uniformes et d'un nombre raisonnable des phénomènes décrits[10].
- La présence des relations hiérarchiques nécessaires : la classification, l'agrégation, la généralisation et l'association. L’agrégation est un aspect qui est peu ou pas implémenté dans la majorité des langages ontologiques. De plus, même si certains langues incluent la possibilité de l'implémentation de cet aspect, ce ne sont pas toutes les langues formelles ontologiques qui permettent les relations de l’agrégation et les synonymes[14] - [12].
- La capacité de la langue à faire de l'inférence des nouvelles connaissances à partir des connaissances existantes, la capacité de vérifier les contraintes. Ainsi, que sa possibilité à faire de l'inhéritance monotonique, non-monotonique, simple et multiple[8].
- L'implémentation : est-ce que le langage est implementé dans un outil particulier ou non[10] - [8].
- Le paradigme utilisé par la langue : logique de description ( DL, LOOM), Cadre (Ontolingua, F-logic, OCML), la logique du premier ordre (KIF, CycL), la logique du second ordre[10].
- La standardisation et la popularité[10].
- La possibilité de la classification automatique (seulement présente en LOOM et OIL)[8].
- La possibilité d'implémentation des formulations axiomatiques (aussi connus sous le nom des assertions en OML). Il est important de se rappeler que cette possibilité est rare dans le contexte du web sémantique[15].
- La possibilité d'implémentation des taxonomies au sein de l'ontologie ( possibilité d'indiquer si un concept est ou n'est pas une sous classe d'un autre concept) est aussi un des critères importants d'évaluation, toutes les langues comportent la taxonomie de base permettant de définir la sous-classe d'un concept[10] - [16].
Finalement, les questions d'ordre plus concret peuvent se poser quant à la possibilité d'une langue d'en faire :
- La définition des partitions ( ensembles des concepts disjoints). Par exemple, coude et jambe étant des partitions du concept du corps[10].
- La définition de la documentation (i.e la définition) du concept i.e est-il possible d'inclure la définition du concept en langage naturel.
- La définition des attributs du concept : les attributs peuvent aussi porter le nom de slot (XOL), des fonctions (OML), ou de propriété (en RDF et DAML+OIL). Ces attributs peuvent être d'instance (valeur différente pour chaque instance du concept), de classe (même valeur pour toutes les instances du concept), locaux (même attributs employés pour les concepts différents i.e la table et la chaise peuvent porter l'attribut couleur) et polymorphiques (attributs avec le même nom, mais comportements différents avec différents concepts, par exemple l'attribut auteur pour livre et auteur pour thèse, un étant type de personne et l'autre étant type d'étudiant)[10] - [15].
- La définition des facettes prédéfinies pour les attributs d'une classe : par exemple, une valeur par défaut, un type, contraintes de cardinalité (pour définir le minimum et le maximum du nombre des valeurs), la documentation (i.e la définition en langage naturel pour un attribut)[8].
Outils
Les éditeurs d'ontologie suivants sont gratuits et téléchargeables :
- Protégé est le plus connu et le plus utilisé des éditeurs d'ontologie. Open-source, développé par l'université 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 OWL. Il offre de nombreux composants optionnels : raisonneurs, interfaces graphiques.
- (en) 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 RDF et 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 termes d'interface, mais qui intègre aussi des outils de raisonnement.
- KMgen est un Ă©diteur d'ontologie pour le langage KM (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 :
- SemanticWorks qui fait partie de la suite d'outils XML développée par Altova, supportant le langage OWL à travers sa syntaxe XML,
- TopBraid Composer développé par TopQuadrant, son interface et ses fonctionnalités ressemblant beaucoup à celles de Protégé (le développeur principal de TopBraid étant l'ancien développeur des extensions OWL de Protégé),
- Tedi, est un éditeur d'ontoterminologies développé par l'équipe Condillac "Terminologie & Ontologie" de l'Université Savoie Mont-Blanc, les ontoterminologies étant disponibles aux formats HTML, CSV, OWL et JSON.
- KAD-Office développé par Iknova Consulting et spécialisé sur la représentation graphique des connaissances industrielles d'ingénierie à l'aide de système d'exploitation.
- Suite d'outils TRC , développé par The Reuse Company
Il existe d'autre part des outils informatiques 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 permettant notamment de décrire les ontologies sur le patrimoine culturel immatériel (bibliothèques, musées et archives…).
Ses références exactes sont ISO 21127 : « Ontologies nécessaires à la description des données concernant le patrimoine culturel ».
Exemples publiés
- BabelNet, une ontologie réseau sémantique multilingue très grande lexicalisée dans de nombreux langages ;
- Base, est une ontologie d'entreprise. Elle est développée par le Monde Sémantique et permet notamment de créer un graphique de connaissances et un système de coûts ;
- Dublin Core, une ontologie simple pour les documents et la publication ;
- FOAF (Friend of a Friend), une ontologie pour décrire les personnes, leurs activités, et les relations avec d'autres personnes ou objets ;
- Gene Ontology pour la génomique ;
- IDEAS Group (en)[17], une ontologie formelle pour l'architecture d'entreprises développée par les ministères australien, canadien, britannique et américain de la défense ;
- UMBEL (en), une structure de référence légère issue de OpenCyc, comptant 20 000 classes de concepts de sujets et leurs relations ;
- WordNet, un système de référence lexicale.
- CIDOC_Conceptual_Reference_Model une ontologie pour le patrimoine
Notes et références
Notes
- (en) « An ontology is an explicit specification of a conceptualization. […] A conceptualization is an abstract, simplified view of the world that we wish to represent for some purpose. ».
- En anglais : « Ontological commitment can be minimized by specifying the weakest theory (allowing the most models) and defining only those terms that are essential to the communication of knowledge consistent with that theory ».
Références
- Voir Classe (mathématiques), Classe (informatique), et Classe (philosophique) (en), chacun étant pertinent, mais non identique à la notion de « classe » ici.
- Guarino, Oberle et Staab 2009, p. 2.
- (en) Thomas R. Gruber, « A translation approach to portable ontology specifications », Knowledge Acquisition, vol. 5, no 2,‎ , p. 199–220 (DOI 10.1006/knac.1993.1008, lire en ligne, consulté le )
- (en) Rudi Studer, V.Richard Benjamins et Dieter Fensel, « Knowledge engineering: Principles and methods », Data & Knowledge Engineering, vol. 25, nos 1-2,‎ , p. 161–197 (DOI 10.1016/S0169-023X(97)00056-6, lire en ligne, consulté le )
- (en) 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, [lire en ligne] [PDF].
- Tom Gruber, article « Ontology » dans l'Encyclopedia of Database Systems, Springer-Verlag, 2009, [lire en ligne].
- Henri Briand, Fabien Gandon et Fabien Picarougne, Atelier « Modélisation des connaissances », conférence Extraction et Gestion des Connaissances, 8es Journées Francophones, Sophia Antipolis, 29 janvier 2008.
- (en) Oscar Corcho et Asunción Gómez-Pérez, « A Roadmap to Ontology Specification Languages », Knowledge Engineering and Knowledge Management Methods, Models, and Tools, Springer,‎ , p. 80–96 (ISBN 978-3-540-39967-4, DOI 10.1007/3-540-39967-4_7, lire en ligne, consulté le )
- (en) J. R. G. Pulido, M. A. G. Ruiz, R. Herrera et E. Cabello, « Ontology languages for the semantic web: A never completely updated review », Knowledge-Based Systems, creative Systems, vol. 19, no 7,‎ , p. 489–497 (ISSN 0950-7051, DOI 10.1016/j.knosys.2006.04.013, lire en ligne, consulté le )
- Diana Kalibatiene et Olegas Vasilecas, « Survey on Ontology Languages », dans Perspectives in Business Informatics Research, vol. 90, Springer Berlin Heidelberg, (ISBN 978-3-642-24510-7, DOI 10.1007/978-3-642-24511-4_10, lire en ligne), p. 124–141
- (en) Alan Gilchrist, « Thesauri, taxonomies and ontologies – an etymological note », Journal of Documentation, vol. 59, no 1,‎ , p. 7–18 (ISSN 0022-0418, DOI 10.1108/00220410310457984, lire en ligne, consulté le )
- (en) Alberto Olivares-Alarcos, Daniel Beßler, Alaa Khamis et Paulo Goncalves, « A review and comparison of ontology-based approaches to robot autonomy », The Knowledge Engineering Review, vol. 34,‎ , e29 (ISSN 0269-8889 et 1469-8005, DOI 10.1017/S0269888919000237, lire en ligne, consulté le )
- (en) N. Baumgartner, « A SURVEY OF UPPER ONTOLOGIES FOR SITUATION AWARENESS », sur www.semanticscholar.org, (consulté le )
- (en) Angelo A. Salatino, Thiviyan Thanapalasingam, Andrea Mannocci et Francesco Osborne, « The Computer Science Ontology: A Large-Scale Taxonomy of Research Areas », dans The Semantic Web – ISWC 2018, vol. 11137, Springer International Publishing, (ISBN 978-3-030-00667-9, DOI 10.1007/978-3-030-00668-6_12, lire en ligne), p. 187–205
- A. Gomez-Perez et O. Corcho, « Ontology languages for the Semantic Web », IEEE Intelligent Systems, vol. 17, no 1,‎ , p. 54–60 (ISSN 1941-1294, DOI 10.1109/5254.988453, lire en ligne, consulté le )
- (en) Ying Ding et Schubert Foo, « Ontology research and development. Part 1 - a review of ontology generation », Journal of Information Science, vol. 28, no 2,‎ , p. 123–136 (ISSN 0165-5515 et 1741-6485, DOI 10.1177/016555150202800204, lire en ligne, consulté le )
- (en) « IDEAS Group », Site officiel (consulté le ).
Voir aussi
Articles connexes
Ouvrages
- Raj Sharman, Rajiv Kishore et Ram Ramesh, Ontologies : a handbook of principles, concepts and applications in information systems, Springer Science+Business Media, (ISBN 978-0-387-37022-4 et 0-387-37022-6, OCLC 186528572, lire en ligne)
Articles
- (en) Nicola Guarino, Daniel Oberle et Steffen Staab, « What Is an Ontology? », dans Handbook on Ontologies, Springer, (ISBN 978-3-540-92673-3, DOI 10.1007/978-3-540-92673-3_0, lire en ligne), p. 1–17.
- (en) Mathieu d’Aquin, Natalya F. Noy, Where to publish and find ontologies? A survey of ontology libraries, Web Semantics: Science, Services and Agents on the World Wide Web, Volume 11, March 2012, Pages 96–111
- (en) Elena Simperl, Reusing ontologies on the Semantic Web: A feasibility study ; Data & Knowledge Engineering, Volume 68, Issue 10, October 2009, Pages 905-925
- (en) RaĂşl Palma, Oscar Corcho, AsunciĂłn GĂłmez-PĂ©rez, Peter Haase, A holistic approach to collaborative ontology development based on change management ; Web Semantics: Science, Services and Agents on the World Wide Web, Volume 9, Issue 3, September 2011, Pages 299-314
- Guarino, N. (1998) Formal Ontology and Information Systems In Proceedings of Formal Ontology in Information Systems.Amsterdam, IOS Press, p.3-15.
Liens externes
- Notice dans un dictionnaire ou une encyclopédie généraliste :
- (en) Ontologie géopolitique L’ontologie géopolitique de la FAO (Organisation des Nations unies pour l'alimentation et l'agriculture) et les services afférents ont été mis au point pour faciliter l’échange et le partage de données de manière standardisée entre les systèmes de gestion d’informations relatives à des pays et/ou à des régions.
- (en) OpenCyc est un projet qui vise à la construction d'une ontologie-mère.
- (en) WordNet est une ontologie de la langue anglaise particulièrement riche.
- (en) Barry Smith's Ontology Page
- (en) Buffalo Ontology Site
- (en) National Center for Ontological Research
- (en) National Center for Biomedical Ontology