使用 OWL 匿名注释目标阅读注释



我正在使用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>

在这里,我们对个人(firstPizza)和匿名个人之间的关系(第一个有原产国)有一个注释。我能够读取公理并将它们解析为我自己的自定义数据结构。我的问题是:我找不到一种方法来判断firstPizaa中的匿名个体与公理中的匿名个体是同一个人。JENA给他们每个人不同的ID。我怎么知道它们是否相等?

如果这是你得到的输入,你就不能推断出这两个节点是编写者意图中的同一节点 - 解析规则说这应该是两个不同的节点。它们对于您看到的属性具有相同的值这一事实可能无关紧要。

如果要生成此输出,则在创建单个时应该能够指定相同的节点 ID。这应该会在空白个体上产生一个 rdf:nodeid 属性,然后解析器会将其解释为同一个个体。

最新更新