2017-01-10 4 views
0

Я использую JENA для чтения свойств аннотации, определенных в аксиомах в онтологии. Например, у меня есть этот человек и его присоединенные аксиомыЧтение аннотаций с помощью 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> 

Здесь мы имеем аннотацию над соотношением (первый hasCountryOfOrigin) между физическим лицом (firstPizza) и физическим лицом Anonymous. Я смог прочитать аксиомы и разобрать их на собственную собственную структуру данных. Моя проблема: я не могу найти способ сказать, что анонимный человек внутри firstPizaa является тем же, что и анонимный человек в аксиоме. ДЖЕНА дает каждому из них разные идентификаторы. Как я могу сказать, что они равны или нет?

ответ

1

Если это вход, который вы получаете, вы не можете сделать вывод о том, что два узла являются одним и тем же узлом в намерении автора - правила синтаксического анализа говорят, что они должны быть двумя различными узлами. Тот факт, что они имеют одинаковые значения для свойств, которые вы видите, может быть неактуальным.

Если вы создаете этот вывод, вы должны указать один и тот же идентификатор узла при создании отдельных лиц. Это должно привести к атрибуту rdf: nodeid для пустых лиц, который затем анализатор будет интерпретировать как один и тот же человек.

+0

Спасибо за ответ. Я - тот, кто производит выход. Я использую OWLAPI, используя этот метод getOWLObjectPropertyAssertionAxiom, определенный в ObjectAssertionProvider. Как использовать owlAPI для добавления rdf: nodeid? –

 Смежные вопросы

  • Нет связанных вопросов^_^