распечатка отдельных лиц для каждой концепции в онтологии с использованием rdflib - PullRequest
3 голосов
/ 09 марта 2011

У меня и онтология написана на OWL / RDF (с использованием Protege). Эта онтология уже заполнена некоторыми людьми для каждой концепции. Я перенес его в python, используя пакеты rdflib и FuXi. И я могу успешно разобрать мою онтологию и вставить график. Теперь единственное, что мне нужно сделать, это распечатать всех людей для каждой концепции. Кто-нибудь знает, как я могу это сделать?

1 Ответ

4 голосов
/ 09 марта 2011

Когда вы говорите все индивидуумы для каждой концепции, я предполагаю, что вы имеете в виду 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. Установив любой из трех элементов в тройке, которую вы ограничиваете любой комбинацией предмета, Предикат или объект. В этом случае мы ограничиваемся только предикатом rdftype и объект aClass.

Если вы хотите, чтобы все индивидуальные участники и все классы вы могли сделать:

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

В этом случае мы оставляем объект свободным для захвата любого класса OWL.

...