database - ¿Qué es una ontología(base de datos)?
ontology (7)
Acabo de leer este artículo y menciona que alguna organización tenía una Ontología como (?) Su capa de base de datos (?), Y que la decisión de hacer esto fue mala. El problema es que no había escuchado sobre esto antes, así que no puedo entender por qué es malo.
Así que traté de buscar en Google sobre bases de datos y ontología, y surgieron algunos archivos PDF de 2006 que están llenos de contenido incomprensible (para mi opinión). Leí algunos de estos y en este punto todavía no tengo ni idea de qué están hablando.
Mi impresión actual es que fue una moda loca de 2006 que algunos académicos intentaron vendernos, pero fracasaron estrepitosamente debido a la redacción de sus ideas. Pero todavía siento curiosidad por saber si alguien realmente sabe de qué se trata todo esto.
Érase una vez que he asignado esa pregunta a un buen desarrollador para que responda como una tarea, porque mi superior creía en las ontologías. No se materializó en ninguna respuesta aguda y mi superior fue despedido después de algún tiempo. Todavía estoy curioso.
Mi entendimiento actual es que esta es una idea de palabras en un lenguaje natural (o "entidades") conectadas entre sí con diferentes relaciones. Luego generalizamos esa idea a cualquier entidad DB. Y básicamente, terminamos con nada interesante y sin un lenguaje de consulta útil.
Puedo estar equivocado.
Algunos de los comentarios anteriores parecen un poco desdeñosos. He usado una base de datos de ontología en un producto real y fue la única forma de resolver el problema. Se puede utilizar una ontología para crear una base de datos que pueda abarcar las complejidades del mundo real mucho mejor que algo como una base de datos relacional. Más "información" que "datos". Es especialmente bueno cuando las relaciones son complejas y el conjunto de información es grande e incompleto. Especialmente claro es el mecanismo de consulta en una buena base de datos de ontología: utiliza de forma inteligente el esquema / ontología (como cualquier jerarquía de clases) para devolver respuestas que de otra forma no se encontrarían.
Karussell ya proporcionó la definición de wikipedia:
"una representación formal del conocimiento por un conjunto de conceptos dentro de un dominio y las relaciones entre esos conceptos".
Para implementar tal representación, se han desarrollado varios idiomas. El que actualmente recibe la mayor atención es probablemente el lenguaje de ontología web (OWL) .
En una base de datos relacional tradicional, los conceptos se pueden almacenar utilizando tablas, pero el sistema no contiene ninguna información sobre lo que significan los conceptos y cómo se relacionan entre sí. Las ontologías proporcionan los medios para almacenar dicha información, lo que permite una forma mucho más rica de almacenar información. Esto también significa que uno puede construir consultas bastante avanzadas e inteligentes. Los lenguajes de consulta como SPARQL se han desarrollado específicamente para este propósito.
Para mi tesis de maestría, he trabajado con ontologías OWL, pero esto fue como parte de una investigación bastante académica. No sé si alguna de esta tecnología se utiliza actualmente en la práctica mucho, pero estoy seguro de que el potencial está ahí.
Actualización: ejemplo
Un ejemplo de ''significado'' y razonamiento sobre las ontologías: supongamos que define en su ontología una Pizza
clase y una Vegetarian Pizza
clase, que es una Pizza
que no tiene Ingredients
que pertenecen a la clase de Meat
. Si ahora creas una instancia de una Pizza
que simplemente no tiene ingredientes cárnicos, el sistema puede inferir automáticamente que tu pizza también es una Vegetarian Pizza
, incluso si no la especificaste explícitamente.
La gente de AI en algún momento pensó que, en caso de que queramos construir un sistema para poder pensar de alguna manera, deberíamos permitirle al sistema saber de alguna manera lo que sabemos sobre el mundo. En otras palabras, querían imponer nuestra propia comprensión de la palabra a las computadoras mediante la generación de una base de datos que casi contiene información y definiciones concisas sobre los conceptos y las entidades que conocemos. Dichas bases de datos se han construido con diferentes algoritmos, pero no muy precisos después de todo. Mejor eche un vistazo a una base de datos que se sabe está entre las mejores llamadas CYC. http://sw.opencyc.org/ marque algunas palabras en el recuadro y vea qué obtiene como devolución. Los mejores deseos
Soy un lego total, pero me parece que la investigación de inteligencia artificial tiene una historia de 50 años que se extiende en ciclos.
- Predicciones extravagantes por parte de académicos.
- Financiación generosa por parte del gobierno.
- Se producen resultados modestos.
- La financiación se corta salvajemente.
- El tiempo pasa. Se olvida el ciclo anterior. Vuelva al paso 1.
Hemos recorrido el ciclo dos veces. Posiblemente esta vez sea diferente ...?
Una ontología es un esquema (modelo) que describe los tipos (y posiblemente algunos individuos) en un dominio, las relaciones que pueden existir entre tipos e individuos, y las restricciones en la forma en que se pueden combinar los individuos y las propiedades.
Una analogía es con los diagramas de clase UML, pero las ontologías tienen una semántica formal, por lo que pueden interpretarse a máquina, en lugar de ser solo diagramas para consumo humano.
Ejemplo :
Clases : Proyecto, Persona, ProjectManager. ProjectManager es una subclase de Person (aparentemente). Las personas y los proyectos son disjuntos.
Relaciones : worksOn, gestiona. Manages es una sub-propiedad de worksOn
Restricciones : La gente trabaja en proyectos, no al revés. Solo los gestores de proyectos pueden gestionar proyectos.
Este ejemplo simple habilita inferencias de máquina, por ejemplo, si X administra Y, entonces podemos inferir que Y es un Proyecto, y X es un Gerente de Proyecto y por lo tanto una Persona.