OWL/RDF로 작성한 온톨로지가 있습니다 (Protege 사용). 이 온톨로지는 이미 각 개념에 대해 일부 개인으로 채워져 있습니다. 나는 rdflib와 FuXi 패키지를 사용하여 파이썬에 이식했다. 그리고 필자는 필자의 온톨로지를 성공적으로 파싱하여 그래프를 작성할 수있다. 지금해야 할 일은 각 개념에 대한 모든 개인을 인쇄하는 것입니다. 아무도 내가 어떻게 할 수 있는지 안다?rdflib을 사용하여 온톨로지의 각 개념에 개인을 인쇄합니다.
3
A
답변
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
을 반복하는 구속을 나타냅니다. 세 가지 요소 중 세 가지 요소 중 하나를 설정하면 대상의 조합 (예 : 술어 또는 개체)이 제한됩니다. 이 경우 술어 rdftype
과 오브젝트 aClass
만 제한합니다.
당신은 당신이 할 수있는 모든 개인 회원과 모든 클래스 원한다면 : 우리가 어떤 OWL 클래스를 캡처하는 개체 언 바운드를 남겨
for triple in g.triples((None,rdfType,None)):
print triple
하는 경우입니다.
'rdflib.term.URIRef'에 'term'과 관련하여 오류가 발생하여 오류가 발생합니다. – Hossein
@Hossein은 코드의 새 버전을 확인합니다. 이전에 게시 한 코드는 최신 버전의 rdlib에서만 작동합니다.이 새로운 버전이 도움이 될 것입니다. 그렇지 않으면 실행중인 Python 및 rdflib의 버전을 알려주십시오. –