Загрузка онтологии в Python - PullRequest
       66

Загрузка онтологии в Python

4 голосов
/ 23 февраля 2011

У меня есть Онтология, написанная на OWL.Кто-нибудь знает, я могу загрузить его в Python?какие-нибудь пакеты или даже вручную?rdflib, который упоминается в других вопросах, не подходит для меня, потому что он в основном касается RDF, и «Seth», которая очень хорошая библиотека, не работает, потому что она требует библиотеку «Pellet», для которой сайт, кажется, не работает, и он(seth) также работает только с JVM 1.4!

Ответы [ 5 ]

2 голосов
/ 24 июня 2012

В rdfAlchemy в файле commands.py есть раздел команд, который был запущен именно для этой цели. Давно не использовал его, но это начало именно того, о чем вы спрашивали, т. Е. Создание Python Skel из онтологии.

На самом деле, он использует «команды» Пастера. Если вы перейдете в подкаталог rdfalchemy и наберите:

paster rdfSubject -h

вы должны увидеть:

Usage: /home/phil/venv/some_path/bin/paster rdfSubject [options] 
paster rdfalchemy.commands
Create an rdfSubject subclass with descriptors from an RDF Schema

    will set the rdf_type
    Descriptors will be created

      1.  rdfs:domain and rdfs:range are respected
      2.  rdfSingle is used for properties that are
            * owl:InverseFunctionalProperty
            * owl:FunctionalProperty   
      3.  rdfList or rdfContainer is used if the proper range is set
      4.  rdfMultiple is used for all others

    The resulting .py file is ment to be a skeleton for the developers confvience.  
    Do not expect to be able to use the raw results.

Create an rdfSubject subclass with descriptors from an RDF Schema

Options:
  -h, --help            show this help message and exit
  -v, --verbose         
  -n, --simulate        
  -s SCHEMA, --schema=SCHEMA
                        file name or url of rdfSchema for this class
  -o FOUT, --fout=FOUT  output file name default: stdout (e.g.
                        ../MyRdfModel.py)
  -l, --list            list valid instances of `owl:Class` in the schema file
2 голосов
/ 23 февраля 2011

Я не пробовал это полностью, но вы можете посмотреть, как загрузить онтологию в базу данных Sesame , а затем запросить ее с помощью оболочки Python.Я немного поиграл с RDFAlchemy и pySesame , но до сих пор не чувствую, насколько они хороши.В целом, базы данных RDF / OWL кажутся мне незрелыми, поэтому ожидайте столкнуться с некоторыми существенными техническими препятствиями.

1 голос
/ 12 июня 2018

В случае, если кто-нибудь снова наткнется на этот вопрос, этот пакет теперь доступен для взаимодействия с онтологиями OWL в Python: https://pypi.org/project/Owlready2/

Из описания проекта он имеет следующие возможности:

  1. Импорт онтологий OWL 2.0 в формате NTriples, RDF / XML или OWL / XML.
  2. Экспорт онтологий OWL 2.0 в NTriples или RDF / XML.
  3. Прозрачное управление классами, экземплярами и свойствами онтологий, как если бы они были обычными объектами Python.
  4. Добавление методов Python к классам онтологии.
  5. Выполнение автоматической классификации классов и экземпляров с использованием аргумента HermiT.
  6. Протестировано до100 миллионов RDF-троек (но потенциально могут поддерживать больше).
  7. Кроме того, quadstore совместим с модулем RDFlib Pyton, который можно использовать для выполнения запросов SPARQL.
1 голос
/ 14 мая 2012

Правильно, RDFLib работает с семантикой RDF, поэтому вам понадобится инструментарий для управления семантикой OWL.

Что я обычно делаю, чтобы сначала использовать другой инструмент для получения всех троек ( OWLAPI или OWLRL , например), а затем загрузите его в RDFLib.

0 голосов
/ 25 февраля 2011

Я мог бы также найти это ordf , но кажется, что они только что написали какой-то текст для них, не совсем понятно, как его использовать, жаль!

...