# Ontología (informática)

En ciencias de la computación y ciencias de la comunicación, una ontología es una definición formal de tipos, propiedades, y relaciones entre entidades que realmente o fundamentalmente existen para un dominio de discurso en particular. Es una aplicación práctica de la ontología filosófica, con una taxonomía.
Una ontología cataloga las variables requeridas para algún conjunto de computación y establece las relaciones entre ellos.En los campos de la inteligencia artificial, la web semántica, ingeniería de sistemas, ingeniería de software, informática biomédica, bibliotecología y arquitectura de la información se crean ontologías para limitar la complejidad y para organizar la información. La ontología puede entonces ser aplicada para resolver problemas.

## Etimología y definición

El término ontología tiene su origen en la filosofía y ha sido aplicado en muchas formas diferentes. Proviene de onto- de Griego ὤν, ὄντος, ("lo que se es"), presente participio del verbo εἰμί ("ser"). El significado en ciencia de la computación es un modelo para describir el mundo que consiste en un conjunto de tipos, propiedades y relaciones entre tipos. También se espera que lo representado por modelo en una ontología sea lo más semejante posible al mundo real. (en relación con el objeto).

## Introducción

Lo que muchas ontologías tienen en común, tanto en Informática como en filosofía, es la representación de entidades, ideas y eventos, junto con sus propiedades y relaciones, de acuerdo con su sistema de categorización. En ambos campos hay trabajo considerable sobre los problemas relativos a la ontología (e.g., Quine y Kripke en Filosofía, Sowa y Guarino en Informática), y debates correspondientes a que si la ontología normativa es viable (Ej., debates sobre fundamentalismo en filosofía, y sobre el proyecto Cyc en inteligencia artificial). La diferencia entre los dos es en la manera como se enfocan. Los informáticos están más preocupados por un establecimiento fijo y vocabularios controlados, mientras que los filósofos están más preocupados por los principios, es decir, si existen cosas tales como una esencia fija o si las entidades deben primar ontológicamente sobre los procesos.

## Historia

Las ontologías provienen de la rama de la filosofía conocida como metafísica, que tiene que ver con la naturaleza de la realidad, de lo que existe. Esta rama se preocupa por el análisis de varios tipos o modos de existencia, frecuentemente con especial atención en las relaciones entre lo particular y lo universal, entre las propiedades intrínsecas y extrínsecas y entre la esencia y la existencia. El objetivo tradicional del análisis ontológico es dividir el mundo "en conjuntos" para descubrir aquellas categorías o tipos fundamentales en el cual los objetos del mundo están naturalmente.
Durante la segunda mitad del siglo XX, los filósofos debatieron exhaustivamente los posibles métodos o aproximaciones para construir ontologías sin ser realmente construidas en cualquier ontología elaborada por ellos. En contraste, los científicos de la computación fueron construyendo algunas ontologías grandes y robustas, tales como WordNet y Cyc, con debates de como deberían ser construidas.
Desde mediados de los 1970, investigadores en el campo de la inteligencia artificial (IA) habían reconocido que capturar el conocimiento es la clave para construir grandes y poderosos sistemas de IA. Los investigadores de IA argumentaron que ellos podrían crear nuevas ontologías como modelos computacionales que permitan cierto grado de razonamiento automático. En los años 80, la comunidad de IA comenzó a usar el término ontología para referirse a la teoría del mundo modelado y a una componente de los sistemas de conocimiento. Algunos investigadores, se inspiraron de algunas ontologías filosóficas, viendo una ontología computacional como un tipo de filosofía aplicada.
A principios de los 90, una página web y un artículo muy citados "Toward Principles for the Design of Ontologies Used for Knowledge Sharing" por Tom Gruber fue reconocido como una definición deliberada de ontología como un término técnico en ciencia de la computación. Gruber introdujo el término para referirse a una especificación de una conceptualización:
   Una ontología es una descripción (como una especificación formal de un programa) de los conceptos y relaciones que pueden formalmente existir para un agente o comunidad de agentes. Esta definición es consistente con el uso de ontología como un conjunto de definiciones conceptuales, pero más generales. Y esto es un sentido diferente de la palabra ontología utilizada en filosofía.
De acuerdo con Gruber (1993):
   Ontologías son frecuentemente asociadas con jerarquías taxonómicas de las clases, definición de clases y las relaciones, pero ontologías necesitan no ser limitadas a estas formas. Ontologías no son limitadas tampoco a las definiciones conservadoras — o sea, definiciones en el sentido lógico tradicional que solamente introduce terminología y no añade ningún conocimiento acerca del mundo. Para especificar una conceptualización , se necesitan establecer axiomas que limiten las posibles interpretaciones para los términos definidos .
En 1997, Borst hizo más específica la definición de Gruber al afirmar que una ontología es "una especificación formal de una conceptualización compartida". Por lo que la conceptualización ontológica debe expresar una visión compartida entre varias partes, un consenso más que un punto de vista individual. Además, tal conceptualización debe estar expresada en un lenguaje formal para que pueda ser procesada por una computadora.

## Componentes

Las ontologías contemporáneas comparten muchas similitudes estructurales, indiferente al lenguaje en el cual ellos fueron expresados. Como se ha mencionado anteriormente, la mayoría de las ontologías describen individuos (instancias), clases (conceptos), atributos y relaciones. En esta sección se discutirá cada uno de estos componentes:
Los componentes más comunes de una ontología son:
* Individuos: instancias u objetos (lo básico u objetos de "bajo nivel" )
* Clases: conjuntos, colecciones, conceptos, clases en programación, tipos de objetos, o tipos de cosas.
* Atributos: aspectos, propiedades, rasgos, características, o parámetros que objetos (y clases) pueden tener.
* Relaciones: formas en las que las clases y los individuos pueden relacionarse entre sí.
* Funciones: Complejas estructuras formadas de cierta relación que pueden ser usadas en lugar de un término individual en una declaración
* Restricciones: establecen descripciones formales de lo que debe ser verdad con el objetivo de que alguna aserción pueda ser aceptada como entrada.
* Reglas: Declaraciones con forma de oraciones si-entonces (antecedente-consecuente) que describen inferencias lógicas que pueden ser derivables de una aserción en una forma particular .
* Axiomas: aserciones (incluyendo reglas) en una forma lógica que juntos incluyen toda la teoría que la ontología describe en su dominio de aplicación. Esta definición es diferente de los “axiomas” en gramáticas generadas y forma lógica. En esas disciplinas, axiomas solamente incluyen declaraciones especificadas como un conocimiento a priori. En las ontologías, "axiomas" también incluyen teorías derivadas de declaraciones axiomáticas.
* Eventos: los cambios de los atributos o relaciones.
Las ontologías se suelen codificar usando lenguajes de ontologías.

## Tipos
### Ontologías de dominio

La ontología de dominio (u ontología de dominio específico) representa conceptos que pertenecen a una parte del mundo. El significado particular de un término aplicado a ese dominio es proporcionado por el dominio de la ontología. Por ejemplo, la palabra tarjeta tiene muchos significados. Una ontología acerca del dominio banco podría modelar el significado a "tarjeta de crédito", mientras que una ontología acerca del dominio de hardware de computadoras podría modelar los conceptos a "tarjeta de red" y "tarjeta gráfica".
Como las ontologías de conceptos representan conceptos de manera muy específica, normalmente son muy incompatibles. Como sistemas que dependen de ontologías de dominio expandidas, normalmente necesitan mezclar ontologías de dominio dentro de una representación más general. Esto representa un reto para el diseño de una ontología. Diferentes ontologías en el mismo dominio son hechas en diferentes lenguajes, diferentes intentos de uso de la ontología y diferentes percepciones del dominio (basados en la formación cultural, educación, ideología, etc.).
Actualmente, mezclar ontologías que no están desarrolladas desde una ontología común básica, es un proceso manual muy caro y largo. Las ontologías de dominio que usan la misma ontología básica que provee un conjunto de elementos básicos con los cuales especificar el significado de los elementos de la ontología de dominio puede ser mezclado automáticamente. Hay estudios en técnicas generalizadas para mezclar ontologías, pero esta área sigue siendo muy teórica.

### Ontologías generales

Representan conceptos generales que no son específicos de un dominio. Por ejemplo, ontologías sobre el tiempo, ontologías de conducta, de causalidad, etc. Pueden reutilizarse a través de diferentes dominios.

### Ontología de tareas

Proporcionan el vocabulario para describir términos involucrados en los procesos de resolución de problemas los cuales pueden estar relacionados con tareas similares en el mismo dominio o en dominios distintos. Incluyen nombres, verbos, frases y adjetivos relacionados con la tarea (“objetivo”, “planificación”, “asignar”, “clasificar”, etc.).

### Ontología terminológicas

Especifican los términos que son usados para representar conocimiento en el universo de discurso. Suelen usarse para unir vocabulario en un dominio determinado (contenido léxico y no semántico). Conocidas también como ontologías lingüísticas.

### Ontología de información

Especifican la estructura de almacenamiento de bases de datos. Ofrecen un marco para el almacenamiento estandarizado de información (estructura de los registros de una BD).

### Ontología de modelado del conocimiento

Especifican conceptualizaciones del conocimiento. Poseen una rica estructura interna y suelen estar ajustadas al uso particular del conocimiento que describen (términos y semántica).

## Visualización

Un estudio de técnicas visualización de ontologías está presentada por Katifori et al. Una evaluación de las dos técnicas de visualización de ontologías más usadas: árboles y grafos es discutido en. Un lenguaje visual para ontologías representadas en OWL es especificada por Visual Notation for OWL Ontologies (VOWL).

## Ingeniería

Ingeniería de Ontología (o construcción de ontologías) es una rama de ingeniería del conocimiento. Estudia el proceso de desarrollo de la ontología, su ciclo de vida, los métodos y las metodologías para construir ontologías, así como las herramientas y lenguajes que los soportan.
La ingeniería de ontología tiene como objetivo hacer explícito el contenido dentro de las aplicaciones de software, y dentro de los procedimientos de negocios y empresas para un dominio en particular. La ingeniería de ontología ofrece una dirección hacia la solución de los problemas interpretativos traídos por los obstáculos de la semántica, tales como los relacionados con las definiciones de términos de negocios y las clases de software. La ingeniería de ontología es un conjunto de tareas relacionadas con el desarrollo de las ontologías en un dominio específico.

### Aprendizaje

El aprendizaje de una ontología es una creación automática o semiautomática de ontologías, incluyendo extraer término de un dominio de un texto en lenguaje natural. Como construir manualmente una ontología es una labor intensamente compleja y consume mucho tiempo, hay una motivación para automatizar el proceso. Extracción de información y métodos de minería de datos han sido explotados para unir automáticamente ontologías con documentos, ej. En el contexto de los retos BioCreative.

## Lenguajes

Un lenguaje de ontología es un lenguaje formal usado para codificar una ontología. Hay un gran número de dichos lenguajes:
* Common Algebraic Specification Language es un lenguaje de especificación general basado en la lógica desarrollado dentro del grupo de trabajo IFIP 1.3 "Foundations of System Specifications" y funciona como un estándar dentro del área de las especificaciones de software. Ahora está siendo aplicado a la especificación de las ontologías con el objetivo de obtener mecanismos estructurado y modulados.
* Common logic es ISO estándar 24707, una especificación para una familia de lenguajes de ontología que pueden ser perfectamente traducidos de unos a otros.
* El proyecto Cyc tiene su propio lenguaje llamado CycL, basado en cálculo de predicados de primer orden con otros de un orden más alto.
* DOGMA (Developing Ontology-Grounded Methods and Applications) adopta la técnica de modelado para tener una nivel más alto de estabilidad semántica,
* El lenguaje Gellish incluye reglas para su propia extensión e integra una ontología con un lenguaje de ontología.
* IDEF5 es un método de ingeniería de software para desarrollar y mantener usables y fiables las ontologías de dominio.
* KIF es una sintaxis para lógica de primer orden basadas en S-expressiones.
* MOF y UML son estádanres del OMG
* Olog es un método categorización teórica para ontologías, enfatizando traducciones entre ontologías usando functors.
* OBO, un lenguaje usado para ontologías biológicas y biomédicas.
* OntoUML is an ontologically well-founded profile of UML for conceptual modeling of domain ontologies.
* OWL es un lenguaje para hacer declaraciones ontológicas, desarrollado como un seguimiento de RDF y RDFS. OWL esta intentado ser usado en la World Wide Web, y todos sus elementos (clases, propiedades e individuos) son definidos como recursos RDF, e identificados por URIs.
* Rule Interchange Format (RIF) y F-Logic combinan ontologías y reglas.
* Semantic Application Design Language (SADL) captura un subconjunto de expresiones de OWL, usando un lenguaje parecido al Inglés introducido vía plug- in en Eclipse .
* SBVR (Semantics of Business Vocabularies and Rules) es un estándar OMG adoptado en la industria para construir ontologías.
* TOVE Project, TOronto Virtual Enterprise project.

## Ejemplos publicados

* BabelNet, una muy grande ontología y red semántica multilingüe, con léxico en muchos lenguajes.
* Basic Formal Ontology, una ontología diseñada para soportar investigaciones científicas.
* BioPAX, una ontología para el intercambio de la ontología para el intercambio y la interoperabilidad de los datos de los caminos biológicos (proceso celular).
* BMO, una ontología de modelo basado en análisis de ontologías interpretadas y literatura de modelo de negocios.
* CCO and GexKB, Application Ontologies (APO) que integran diversos tipos de conocimineto con el Cell Cycle Ontology (CCO) y el Gene Expression Knowledge Base (GexKB).
* CContology (Customer Complaint Ontology), una ontología e-business que soporta la administración de las quejas de los clientes en línea.
* CIDOC Conceptual Reference Model, an ontology for cultural heritage
* COSMO, una Foundation Ontology (la actual versión está en OWL) que está diseñada para contener representación de todos los conceptos primitivos necesitados para lógicamente especificar el significado de cualquier dominio. Es un intento de servir como ontología básica que pueda ser usada para traducir entre las representaciones en otras ontologías o bases de datos. Comenzó como una mezcla de elementos básicos de las ontologías OpenCyc y SUMO, y ha sido suplementado con otros elementos de ontologías así como incluir representaciones de todas las palabras en el diccionario Longman definiendo vocabulario.
* Cyc, a large Foundation Ontology para representación formal del universo de discurso .
* Disease Ontology, diseñado para facilitar el reconocimiento de enfermedades y condiciones asociadas a un código médico en particular.
* DOLCE, una ontología descriptiva para ingeniería lingüística y cognitiva
* Dublin Core, una ontología simple para documentos y publicaciones
* Foundational, Core and Linguistic Ontologies
* Foundational Model of Anatomy, una ontología para la anatomía humana.
* Friend of a Friend, una ontología que describe personas, sus actividades y sus relaciones con otras personas y objetos.
* Gene Ontology para genómas.
* Gellish English dictionary, una ontología que incluye un diccionario y una taxonomía que se centran en las aplicaciones en la industria, negocios en ingeniería, tecnología, etc. Ver también Gellish proyecto de código abierto en SourceForge.
* Geopolitical ontology, una ontología que describe información geopolítica creada por la FAO. La ontología geopolítica incluye nombres en diferentes idiomas (español, francés, español, árabe, chino, ruso e italiano); con los códigos de los sistemas (UN, ISO, FAOSTAT, AGROVOC, etc.); facilitando una relación entre territorios (fronteras, grupos de membresía, etc.); y localizando cambios históricos. Además,la FAO provee servicios web <https://web.archive.org/web/20110517082103/http://www.fao.org/countryprofiles/webservices.asp?lang=en> de ontología geopolítica y construcción de módulos <http://www.fao.org/countryprofiles/geoinfo/modulemaker/index.html> para descargarlos en diferentes formatos (RDF, XML, and EXCEL). Ver más información en FAO Country Profiles en la página web <http://www.fao.org/countryprofiles/geoinfo.asp?lang=en Archivado el 15 de mayo de 2012 en Wayback Machine.>.
* GOLD, Ontología General para Descripción Lingüística.
* GUM (Generalized Upper Model), una ontología lingüísticamente motivada por la intervención entre sistemas clientes y tecnologías de lenguaje natural.
* IDEAS Group, una ontología formal para arquitecturas interpretadas siendo desarrollada por departamentos de defensa de Australia, Canadá y Estados Unidos.
* Linkbase, una representación formal de un dominio biomédico, fundado sobre Basic Formal Ontology.
* LPL, Lawson Pattern Language
* NCBO Bioportal, Ontologías biomédicas y biológicas con herramientas para la búsqueda, navegación y visualización.
* Ontologías NIFSTD de Neuroscience Information Framework: un conjunto modular de ontologías de dominio relacionado con la neurociencia.
* OBO-Edit, un buscador de ontología mayoritariamente de Ontologías bilógicas y biomédicas .
* OBO Foundry, una suite de referencias ontológicas interoperables en biología y medicina.
* OMNIBUS Ontology, una ontología de aprendizaje, instrucción y diseño.
* Ontology for Biomedical Investigations, un software de acceso abierto, ontología integrada para la descripción de investigaciones biológicas y clínicas.
* ONSTR, Ontología para Newborn Screening Follow-up and Translational Research , Newborn Screening Follow-up Data Integration Collaborative, Emory University, Atlanta, GA. Ver también https://web.archive.org/web/20150802052929/https://nbsdc.org/projectmission.php
* Plant Ontology para estructuras de plantas y estados de crecimiento/desarrollo, etc.
* POPE, Purdue Ontology for Pharmaceutical Engineering.
* PRO, the Protein Ontology of the Protein Information Resource, Georgetown University
* Programas de abstracción de taxonomía program abstraction taxonomy
* Protein Ontology
* RXNO Ontology, para nombres de reacciones en química.
* SNOMED CT (Systematized Nomenclature of Medicine -- Clinical Terms)
* Suggested Upper Merged Ontology
* Systems Biology Ontology (SBO), para modelos computacionales en Biología.
* SWEET, Semantic Web for Earth and Environmental Terminology
* Ontología ThoughtTreasure
* TIME-ITEM, Topics for Indexing Medical Education
* Uberon, representa estructuras anatómica de animal .
* UMBEL, una estructura dereferncia ligera de 20,000 temas, conceptos, clases y sus relaciones derivadas de OpenCyc
* WordNet, un Sistema de referencia léxica.
* YAMATO, Yet Another More Advanced Top-level Ontology

## Bibliotecas

El desarrollo de ontologías para la web ha conducido a que emerjan servicios proveyendo listas o directorios de ontologías con facilidad de búsqueda. Tales directorios han sido llamados bibliotecas de ontología.Algunos ejemplos son:
* COLORE es un repositorio abierto de ontologías de primer orden en la Lógica Común con ligas formales entre ontologías en el repositorio.
* DAML Ontology Library mantiene un legado de las ontologías de DAML .
* Ontology Design Patterns portal es un wiki repositorio de componentes reusables y prácticas para el diseño de ontologías, y también mantiene una lista de “ontologías ejemplares”. Comenzadas dentro del proyecto EU NeOn.
* Protégé Ontology Library contiene un conjunto de ontologías OWL, basadas en estructuras y otros formatos .
* SchemaWeb es un directorio de esquemas RDF expresadas en RDFS, OWL y DAML+OIL.
Los siguientes son directorios y motores de búsqueda al mismo tiempo. Incluyen búsqueda con crawlers.
* OBO Foundry es una suite de referencias de ontologías interoperables en biología y biomedicina.
* Bioportal (repositorio en NCBO)
* OntoSelect Librería de ontologías que ofrece servicios similares para ontologías RDF/S, DAML and OWL.
* Ontaria es un directorio “buscable” y “navegable" de datos en la Web Semántica, centrado en vocabularios RDF y ontologías OWL.
* Swoogle es un directorio y un motor de búsqueda para todos los recursos RDF disponibles en la Web, incluyendo ontologías.
* OOR - the Open Ontology Repository initiative - http://oor.net
* ROMULUS es un repositorio fundacional de ontologías concebidos para mejorar la interoperabilidad en la semántica. Actualmente hay 3 ontologías fundacionales en el repositorio: DOLCE, BFO y GFO.

## Ejemplo de su aplicación

En general, las ontologías pueden ser usadas beneficiosamente en aplicaciones interpretadas. Un ejemplo más concreto es SAPPHIRE (Situational Awareness and Preparedness for Public Health Incidences and Reasoning Engines), un sistema de información médica semántico, capacitado para seguir y evaluar situaciones que puedan afectar a la salud pública.

## Crítica

Werner Ceusters ha notado la confusión causada por los diferentes significados de la palabra ontología, sobre el uso que se le da en filosofía en comparación con el uso de la palabra en ciencias de la computación, y, por tanto, aboga por la precisión de empleo de la misma para que los miembros de varias disciplinas puedan usar sus distintas definiciones. Escribió: “Antes de contestar la pregunta '¿qué es una ontología?', se debería primero responder a la pregunta '¿qué significa la palabra ontología?'.