2009-11-19 147 views
13

¿Hay bibliotecas o ciertas "técnicas" que puede usar para crear una ontología de elementos?¿Cómo crear una ontología en python?

¿O "patrones de diseño"?

Estoy hablando solo de un "gráfico" de cosas. Supongamos que tengo un montón de palabras. Algunas palabras están "debajo" de otras palabras o "relacionadas" a otras palabras. Necesito una buena forma de agruparlos y conocer su relación.

+0

Sea más específico. Una tabla hash puede adaptarse a sus necesidades. –

+3

¿Estás hablando de RDF triples, que a menudo se utilizan para codificar información ontológica? ¿De qué estás hablando? –

Respuesta

6
+0

ow ... esto es ** fantástico ** ... un protegido programable :))) –

+4

La idea es genial. Lamentablemente, este proyecto ha estado muerto desde 2009, y se basa en Pellet y JPype, que son notoriamente inestables. No pude ejecutar la seth muestra básica utilizando las versiones actuales de Pellet y JPype. – Cerin

2

ontología es un diccionario que define los URI y acuerda un significado para cada uno de ellos. Una ontología trivial es solo un conjunto de URI que eliges 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 usa herramientas para esto. Yo uso Protege. está bastante bien.

7

Puede utilizar rdflib (http://www.rdflib.net/) para almacenar triples. Luego debe tomar sus propias decisiones sobre el tipo de ontología que desea construir. Mire el formato OWL para eso.

Jugué con Python y ontologías durante mi doctorado, así que tal vez un análisis rápido a través de mi tesis puede darte algunas ideas. Por ejemplo, un short OWL summary o un UML model of a plone ontology tool.

+0

Estoy buscando a alguien que me ayude con la definición de una pequeña ontología. ¿Tendría tiempo para un proyecto de código abierto? –

+0

Lo siento, ya estoy lleno con varios otros proyectos (y dos niños :-)) –

1

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

3

RDFLIB es una implementación madura de una tienda triple, con un montón de documentation.

Sin embargo, esta biblioteca funcionó solo para proyectos pequeños. Por ejemplo, hay un buen catálogo de RDF/XML del Gutenberg Project Library, con el que no pude hackear (en mi máquina de dos núcleos, 2GBRAM), porque simplemente es demasiado grande (~ 100M), incluso Java/Protege tenía una tendencia a estancarse en este filesizes. Es una lástima.

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

3

Supongamos que tengo un montón de palabras. Algunas palabras están "debajo" de otras palabras o "relacionadas" a otras palabras. Necesito una buena forma 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 describes.

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


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

(van Assem, GANGEMI y Schreiber (eds) RDF../OWL Representación de WordNet, W3C Working Draft 19 de junio de 2006 W3C Working Draft 19 de junio de 2006; http://www.w3.org/TR/2006/WD-wordnet-rdf-20060619/)

Cuestiones relacionadas