我有一个用 OWL 编写的本体。有谁知道我可以将它加载到 python 中?任何软件包甚至手动?其他问题中提到的 rdflib 不适合我,因为它主要与 RDF 和“Seth”有关,这是一个非常好的库,它不起作用,因为它需要“Pellet”库,而网站似乎已经关闭并且它(seth) 也仅适用于 JVM 1.4!
问问题
4083 次
5 回答
2
我还没有完全尝试过,但是您可以查看将您的本体加载到Sesame数据库中,然后使用 Python 包装器对其进行查询。我玩过RDFAlchemy和pySesame一点,但我仍然不知道它们有多好。总的来说,RDF/OWL 数据库对我来说非常不成熟,所以预计会遇到一些重大的技术挑战。
于 2011-02-23T17:36:37.823 回答
2
在commands.py文件的rdfAlchemy中,有一个 commands 部分是为此目的而启动的。有一段时间没有使用它,但它正是您所询问的问题的开始,即从本体创建 python 骨架。
事实上,它使用粘贴“命令”。如果您转到 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
于 2012-06-23T20:19:38.837 回答
1
万一有人再次偶然发现这个问题,这个包现在可用于在 Python 中与 OWL 本体进行交互:https ://pypi.org/project/Owlready2/
从项目描述来看,它具有以下功能:
- 以 NTriples、RDF/XML 或 OWL/XML 格式导入 OWL 2.0 本体。
- 将 OWL 2.0 本体导出为 NTriples 或 RDF/XML。
- 透明地操作本体类、实例和属性,就好像它们是普通的 Python 对象一样。
- 将 Python 方法添加到本体类。
- 使用 HermiT 推理器执行类和实例的自动分类。
- 测试了多达 1 亿个 RDF 三元组(但可能支持更多)。
- 此外,quadstore 与 RDFlib Pyton 模块兼容,可用于执行 SPARQL 查询。
于 2018-06-12T05:30:21.193 回答
0
我也可以找到这个ordf但似乎他们刚刚为他们写了一些文本,完全不清楚如何使用它,很遗憾!
于 2011-02-25T11:55:42.280 回答