从“.owl”文件导入命名空间并在 RDFLIB 图中使用术语

import namespace from ".owl" file and use terms in RDFLIB graph

我正在使用 rdflib 创建图表。我想使用我拥有的“.owl”文件中的一些术语。我如何使用 rdflib 将此 owl 文件导入为 MyImportedTerminology,并访问其条款,以便我可以在图中执行类似的操作?

g.add((Thing, OWL.sameAs, MyImportedTerminology.OtherThing))

我试用了 owlready2,具体来说:

MyImportedTerminology = get_ontology("file:///path/to/owl/file.owl").load()

但是我好像不能直接用。我收到错误:Object MyImportedTerminology.OtherThing must be an rdflib term

如有任何帮助,我们将不胜感激。

所以 owlready2 与 RDFlib 不同,后者是您标记此问题的内容。

RDFlib 比 owlready2 级别低,允许您直接使用 URI、名称空间和文字构建 RDF 三元组。你不需要导入 OWL 文件来在 RDFlib 中使用它的术语,你只需要引用你的 OWL 文件,你可以这样做:

from rdflib import URIref

g.add((Thing, OWL.sameAs, URIRef("http://namespace-from-owl-file.org#OtherThing")))

您也可以在 OWL 文件中为命名空间创建命名空间对象,然后执行以下操作:

from rdflib import Namespace

MYNS = Namespace("http://namespace-from-owl-file.org#")

g.add((Thing, OWL.sameAs, MYNS.OtherThing))