在Python中加载Ontology

时间:2011-02-23 15:54:47

标签: python owl ontology

我有一个用OWL编写的Ontology。有谁知道我可以加载到python?任何包甚至手动? 在其他问题中提到的rdflib不适合我,因为它主要涉及RDF和“Seth”,这是一个非常好的库不起作用,因为它需要“Pellet”库,网站似乎已经关闭了它(seth)也只适用于JVM 1.4!

5 个答案:

答案 0 :(得分:2)

我还没有完全尝试过这个,但您可以将本体加载到Sesame数据库中,然后使用Python包装器进行查询。我和RDFAlchemypySesame玩了一点,但我仍然不知道它们有多好。 RDF / OWL数据库对我来说总体上是不成熟的,所以期望遇到一些重大的技术问题。

答案 1 :(得分:2)

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 :(得分:1)

是的,RDFLib在RDF语义中工作,因此您需要一个用于管理OWL语义的工具包。

我通常首先使用另一个工具来获取所有三元组(例如OWLAPIOWLRL),然后将其加载到RDFLib中。

答案 3 :(得分:1)

如果有人再次遇到这个问题,这个包现在可用于与Python中的OWL本体进行交互:https://pypi.org/project/Owlready2/

从项目描述中,它具有以下功能:

  1. 以NTriples,RDF / XML或OWL / XML格式导入OWL 2.0本体。
  2. 将OWL 2.0本体导出为NTriples或RDF / XML。
  3. 透明地操作本体类,实例和属性,就好像它们是普通的Python对象一样。
  4. 将Python方法添加到本体类。
  5. 使用HermiT推理器对类和实例进行自动分类。
  6. 测试了多达1亿个RDF三元组(但可能支持更多)。
  7. 此外,quadstore与RDFlib Pyton模块兼容,可用于执行SPARQL查询。

答案 4 :(得分:0)

我也可以找到这个ordf,但似乎他们刚刚写了一些文字,但是根本不清楚如何使用它,真可惜!