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

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

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

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

Ответы

Ответ 2

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

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

Ответ 3

RDFLIB - это зрелая реализация трехмерного хранилища с большим количеством .

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

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

Ответ 4

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

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

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


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

(van Assem, Gangemi and Schreiber (eds.). RDF/OWL Представление WordNet, W3C Рабочий проект 19 июня 2006 г. Рабочий проект W3C 19 июня 2006 г. <а2 > )

Ответ 5

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

Ответ 6

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

Ответ 7

Owlready2 - это пакет для управления онтологиями OWL 2.0 в Python. Он может загружать, изменять, сохранять онтологии и поддерживает рассуждения через HermiT (входит в комплект). Owlready обеспечивает прозрачный доступ к онтологиям OWL.