我有用 OWL/RDF(使用 Protege)编写的本体。这个本体已经为每个概念填充了一些个体。我已经使用 rdflib 和 FuXi 包将它移植到 python 中。我可以成功解析我的本体并放入图表。现在我唯一需要做的就是打印出每个概念的所有个体。有谁知道我该怎么做?
问问题
1738 次
1 回答
4
当您说每个概念的所有个人时,我猜您的意思是all the resources of rdf:type an specific class
。您可以通过rdflib
遍历图表轻松地做到这一点:
from rdflib import Graph
from rdflib import URIRef
g = Graph()
g.parse("ontology.owl")
aClass = URIRef("http://www.someuri.org/for/your/class")
rdftype = URIRef("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")
for triple in g.triples((None,rdfType,aClass)):
print triple
(None,rdfType,aClass)
表示对图进行迭代的约束g
。通过设置三元组中的三个元素中的任何一个,您可以通过主语、谓语或宾语的任意组合进行约束。在这种情况下,我们仅受 predicaterdftype
和 object约束aClass
。
如果您想要所有个人成员和所有课程,您可以这样做:
for triple in g.triples((None,rdfType,None)):
print triple
在这种情况下,我们让对象未绑定以捕获任何 OWL 类。
于 2011-03-09T14:52:50.380 回答