使用 OWL 匿名注释目标读取注释
Reading annotations with OWL Anonymous Annotated Target
我正在使用 JENA 读取 ontology 中公理中定义的注释属性。
例如我有这个个体及其附加的公理
<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) 和匿名个人之间的关系(第一个 hasCountryOfOrigin)进行了注释。我能够阅读公理并将它们解析为我自己的自定义数据结构。我的问题是:我无法找到一种方法来判断 firstPizaa 中的匿名个体与公理中的匿名个体相同。 JENA 给他们每个人不同的 id。如何判断它们是否相等?
如果这是你得到的输入,你不能推断这两个节点是作者意图中的同一个节点——解析规则说这应该是两个不同的节点。它们对于您看到的属性具有相同的值这一事实可能无关紧要。
如果您正在生成此输出,您应该能够在创建个体时指定相同的节点 ID。这应该会在空白个体上产生一个 rdf:nodeid 属性,然后解析器会将其解释为同一个体。
我正在使用 JENA 读取 ontology 中公理中定义的注释属性。 例如我有这个个体及其附加的公理
<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) 和匿名个人之间的关系(第一个 hasCountryOfOrigin)进行了注释。我能够阅读公理并将它们解析为我自己的自定义数据结构。我的问题是:我无法找到一种方法来判断 firstPizaa 中的匿名个体与公理中的匿名个体相同。 JENA 给他们每个人不同的 id。如何判断它们是否相等?
如果这是你得到的输入,你不能推断这两个节点是作者意图中的同一个节点——解析规则说这应该是两个不同的节点。它们对于您看到的属性具有相同的值这一事实可能无关紧要。
如果您正在生成此输出,您应该能够在创建个体时指定相同的节点 ID。这应该会在空白个体上产生一个 rdf:nodeid 属性,然后解析器会将其解释为同一个体。