2017-01-10 13 views
0

JenA를 사용하여 온톨로지의 공리에 정의 된 주석 속성을 읽습니다. 는 예를 들어 I는 다음은 개별 (firstPizza) 및 익명 개별 관계 (제 hasCountryOfOrigin) 위에 주석을이 개인과 연결 공리 OWL로 주석 읽기 익명 주석 대상

 <owl:NamedIndividual rdf:about="http://www.co-ode.org/ontologies/pizza/pizza.owl#firstPizza"> 
    <rdf:type rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#Pizza"/> 
    <hasCountryOfOrigin> 
     <Country> 
      <hasCountryOfOrigin rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#Italy"/> 
     </Country> 
    </hasCountryOfOrigin> 
</owl:NamedIndividual> 
<owl:Axiom> 
    <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string">123</owl:versionInfo> 
    <owl:annotatedSource rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#firstPizza"/> 
    <owl:annotatedProperty rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#hasCountryOfOrigin"/> 
    <owl:annotatedTarget> 
     <Country> 
      <hasCountryOfOrigin rdf:resource="http://www.co-ode.org/ontologies/pizza/pizza.owl#Italy"/> 
     </Country> 
    </owl:annotatedTarget> 
</owl:Axiom> 

있다. 나는 공리를 읽고 자신의 맞춤 데이터 구조를 파싱 할 수있었습니다. 내 문제는 firstPizaa 내부의 익명의 개인이 공리의 익명의 개인과 동일한 사람이라는 것을 알 수있는 방법을 찾을 수 없습니다. JENA는 각자 다른 이드에게 제공합니다. 그들이 동등하다는 것을 어떻게 알 수 있습니까?

답변

1

이것이 입력이라면 작성자의 의도에 따라 두 노드가 같은 노드라고 추측 할 수 없습니다. 구문 분석 규칙은 두 노드가 서로 다른 노드라고 말합니다. 그들이 볼 수있는 속성에 대해 동일한 값을 가지고 있다는 사실은 관련이 없습니다.

이 출력을 생성하는 경우 개인을 만들 때 동일한 노드 ID를 지정할 수 있어야합니다. 이렇게하면 빈 개인에 rdf : nodeid 속성이 생겨 파서가 동일한 개인으로 해석하게됩니다.

+0

답변 해 주셔서 감사합니다. 나는 생산물을 생산하는 사람이다. ObjectAssertionProvider에 정의 된이 메소드 getOWLObjectPropertyAssertionAxiom을 사용하여 OWLAPI를 사용하고 있습니다. owlAPI를 사용하여 rdf : nodeid를 추가하려면 어떻게해야합니까? –