¿Cómo crear una ontología en python?

¿Existen bibliotecas o ciertas “técnicas” que puede utilizar para crear una ontología de elementos?

¿O “patrones de diseño”?

Estoy hablando de una “gráfica” de cosas. Supongamos que tengo un montón de palabras. Ciertas palabras están “debajo” de otras palabras o “relacionadas” con otras palabras. Necesito una buena manera de agruparlos y conocer su relación.

Puedes usar rdflib para almacenar triples. Luego tiene que tomar sus propias decisiones sobre el tipo de ontología que desea construir. Mira el formato OWL para eso.

Jugué con python y ontologías durante mi doctorado, por lo que quizás un examen rápido de mi tesis pueda darle algunas ideas. Por ejemplo, un breve resumen de OWL o un modelo UML de una herramienta de ontología plone .

RDFLIB es una implementación madura de una tienda triple, con abundante documentación .

Sin embargo, esta biblioteca me funcionó solo para proyectos más pequeños. Por ejemplo, hay un buen catálogo RDF / XML de la Biblioteca de proyectos de Gutenberg , con el que no pude hackear (en mi máquina 2GBRAM de doble núcleo), porque es simplemente demasiado grande (~ 100M), incluso Java / Protege tenía una tendencia a detenerse en este tamaño de archivo. Es una lástima.

Alternativa: http://seth-scripting.sourceforge.net/

Supongamos que tengo un montón de palabras. Ciertas palabras están “debajo” de otras palabras o “relacionadas” con otras palabras. Necesito una buena manera de agruparlos y conocer su relación.

Eche un vistazo a wordnet, que está disponible en formato RDF, es decir, de acuerdo con una ontología de esquema RDF. Esto es exactamente lo que usted describe.

http://www.w3.org/2006/03/wn/wn20/


(C. Fellbaum. WordNet: una base de datos electrónica léxica. MIT Press, 1998. Véase también http://wordnet.princeton.edu/ )

(van Assem, Gangemi y Schreiber (eds.). RDF / OWL Representación de WordNet, Borrador de Trabajo del W3C 19 de junio de 2006 Borrador de Trabajo del W3C 19 de junio de 2006; rdf-20060619 / )

una ontología es un diccionario que define URI y acuerda un significado para cada uno de ellos. Una ontología trivial es solo un grupo de URIs que usted elige más o menos de la nada. Desafortunadamente, este método no le proporciona ninguna información sobre las relaciones semánticas de sus entidades ontológicas. Para explicar estas relaciones, normalmente las describe con un archivo OWL, y normalmente utiliza herramientas para esto. Yo uso Protege. esta bastante bien

Si tiene sentido representar algo como un gráfico dirigido, ¿por qué no usar una clase de gráfico? Python-graph ofrece representaciones gráficas puras de python. NetworkX tiene una implementación de C un poco más difícil de usar.

Owlready2 es un paquete para manipular ontologías OWL 2.0 en Python. Puede cargar, modificar, guardar ontologías y admite el razonamiento a través de HermiT (incluido). Owlready permite un acceso transparente a las ontologías OWL.