Как создать онтологию в python?

существуют ли библиотеки или определенные "методы", которые вы можете использовать для создания онтологии элементов?

или "шаблоны проектирования"?

Я говорю только о "графике" вещей. Предположим, у меня есть куча слов. Некоторые слова находятся " под "другими словами или" связаны " с другими словами. Мне нужен хороший способ сгруппировать их и узнать их отношения.

6 ответов



вы можете использовать rdflib (http://www.rdflib.net/) для хранения троек. Затем вы должны принять свои собственные решения о том, какую онтологию вы хотите построить. Посмотрите на формат OWL для этого.

Я играл с python и онтологиями во время моей PhD, поэтому, возможно, быстрый просмотр моей диссертации может дать вам некоторые идеи. Например,краткое резюме сова или UML модель инструмента онтологии plone.


RDFLIB является зрелой реализацией тройного магазина, с большим количеством документация.

эта библиотека работала для меня только для небольших проектов. Например, есть хороший каталог RDF / XML Библиотека Проекта Гутенберга, С которым я не смог взломать (на моей двухъядерной машине 2GBRAM), потому что он просто слишком большой (~ 100M)-даже Java/Protege имел тенденцию останавливаться на этом файле. Это жалость.

альтернатива:http://seth-scripting.sourceforge.net/


Предположим, у меня есть куча слов. Некоторые слова "под" другими словами или "связано" с другими словами. Мне нужен хороший способ сгруппировать их и узнать их отношение.

взгляните на wordnet, который доступен в формате RDF, т. е. в соответствии с онтологией схемы RDF. Это именно то, что вы описали.

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


(С. Fellbaum. WordNet: Электронная Лексика База данных. MIT Press, 1998. См. также http://wordnet.princeton.edu/ )

(van Assem, Gangemi and Schreiber (eds.). RDF / OWL представление WordNet, W3C рабочий проект 19 июня 2006 W3C рабочий проект 19 июня 2006;http://www.w3.org/TR/2006/WD-wordnet-rdf-20060619/)


онтология-это словарь, который определяет URIs и согласует значение для каждого из них. Тривиальная онтология - это просто набор URI, которые вы выбираете более или менее из ниоткуда. Этот метод, к сожалению, не дает вам никакой информации о семантических отношениях ваших онтологических сущностей. Чтобы объяснить эти отношения, вы обычно описываете их с помощью файла OWL, и вы обычно используете для этого инструменты. Я использую протеже. все в порядке.


Если имеет смысл представлять что-то как направленный граф, почему бы просто не использовать класс graph? Python-graph предлагает простые представления графа pure-python. NetworkX немного сложнее использовать Си.