3

私はOWL/RDF(Protegeを使用)で書かれたオントロジーを持っています。このオントロジーには、概念ごとにすでに何人かの個人が含まれています。rdflibおよびFuXiパッケージを使用してPythonに移植しました。そして、オントロジーを正常に解析してグラフに入れることができます。今、私がしなければならないのは、コンセプトごとにすべての個人を印刷することだけです。誰かが私がそれを行う方法を知っていますか?

4

1 に答える 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。トリプルの 3 つの要素のいずれかを設定することにより、主語、述語、または目的語の任意の組み合わせによって制約します。この場合、 predicaterdftypeと objectによってのみ制約しますaClass

すべての個人メンバーとすべてのクラスが必要な場合は、次のようにします。

for triple in g.triples((None,rdfType,None)):
    print triple

その場合、OWLクラスを取得するためにオブジェクトをバインドしないままにします。

于 2011-03-09T14:52:50.380 に答える