python - rdflib "repeat node-elements"OWL/XML 文件解析错误

标签 python xml owl rdflib

我有一个由其他人在 Protege 中准备的 OWL 文件。我正在尝试使用以下 Python 代码解析它,但不断收到解析错误。

import rdflib
g=rdflib.Graph()
result = g.parse(r'myfile.owl')

rdflib.exceptions.ParserError: file:///myfile.owl:461:27: Repeat node-elements inside property elements: http://www.w3.org/2002/07/owl#Class

行号和字符号指的是 <Class IRI="#Gas"/> 的开头OWL 文件中的行。这是否表明“SubClassOf”构造错误,或者我需要另一个插件才能正确使用 rdflib,或者其他什么? OWL 文件如下所示:

<Declaration>
    <Class IRI="#Acetylene"/>
</Declaration>
<Declaration>
    <Class IRI="#Gas"/>
</Declaration>
...
<SubClassOf>
    <Class IRI="#Acetylene"/>
    <Class IRI="#Gas"/>
</SubClassOf>

最佳答案

您显示的 XML 代码不是 RDF/XML;它是 OWL/XML。因此,RDFlib 无法解析它也就不足为奇了。 RDFlib 应该 能够解析 OWL 本体的 RDF 映射的 RDF/XML 序列化,但这与本体的 OWL/XML 序列化不是一回事。您应该使用 OWL 工具将 OWL/XML 文件转换为 RDF/XML 文件,或者要求本体提供者提供 RDF/XML 序列化。

另见

关于python - rdflib "repeat node-elements"OWL/XML 文件解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27243394/

相关文章:

architecture - OWL 有哪些用例?

python - 递归 - 你如何从特定的遍历中提取

xml - 需要在 Linux env 中用 Perl 脚本修改几个 XML 文件

python - 如何将 Python 应用程序移植到在 Windows 中运行良好的 Linux

android - 从 MultiSelectListPreference(SharedPreferences) 获取所有选中的条目

c# - 如何在oracle数据库中保存XML文档

class - OWL 不同类的相同对象属性

owl - 实例和子类之间的主要区别是什么?

python - 如何在 google colab 上升级 pandas

python - 无法从 GridFS 加载 joblib 序列化模型