我已经用OWL / RDF(使用Protege)编写了本体.这个本体已经为每个概念填充了一些个人.我已经使用rdflib和FuXi软件包将其移植到python中.而且我可以成功解析我的本体并放入图表中.现在,我唯一需要做的就是为每个概念打印出所有个人.有谁知道我该怎么做?
解决方法:
当您说出每个概念的所有个体时,我想您是指rdf:type特定类的所有资源.使用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的约束.通过设置
您通过主题的任意组合来约束三元组中的三个元素中的任何一个,
谓词或宾语.在这种情况下,我们仅通过谓词rdftype和
对象aClass.
如果您希望所有个人成员和所有班级都可以这样做:
for triple in g.triples((None,rdfType,None)):
print triple
在这种情况下,我们将使对象不受约束以捕获任何OWL类.