Чтение аннотаций с помощью OWL Anonymous Annotated Target

Я использую JENA для чтения свойств аннотаций, определенных в аксиомах онтологии. Например у меня есть этот индивидуум и приложенные к нему аксиомы

      <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) и анонимным человеком. Я смог прочитать аксиомы и преобразовать их в собственную структуру данных. Моя проблема: я не могу найти способ сказать, что анонимный человек внутри firstPizaa тот же самый, что и анонимный человек в аксиоме. JENA дает каждому из них разные идентификаторы. Как я могу сказать, что они равны или нет?


person Motasem M. Al-wazir    schedule 10.01.2017    source источник


Ответы (1)


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

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

person Ignazio    schedule 10.01.2017
comment
Спасибо за ответ. Я тот, кто производит продукцию. Я использую OWLAPI, используя этот метод getOWLObjectPropertyAssertionAxiom, определенный в ObjectAssertionProvider. Как я могу использовать owlAPI для добавления rdf:nodeid? - person Motasem M. Al-wazir; 11.01.2017