OWL api Java 查找注释

OWL api Java find Annotation

我有一个 .owl 文件,语法如下:

<AnnotationAssertion>
        <AnnotationProperty abbreviatedIRI="iri_of_annotation"/>
        <IRI>subject</IRI>
        <IRI>object</IRI>
</AnnotationAssertion>

所以我可以得到一个人的注释:

OWLAnnotationProperty prop = factory.getAnnotationProperty(IRI.create("iri_of_annotation"));
individual.getAnnotations(ontology, prop);

这将 return 一个注释列表,其中每个注释的主题都是 个人 并且值与示例文件中的值相同 object 并按预期工作。

但我需要的是以某种方式获得一个列表,其中注释的 valueindividual 的 IRI,主题将例如在文件 subject.

提前致谢!

没有方便的方法来查找具有特定值的注释,因此您将不得不遍历所有注释断言公理并检查注释值是否与您要查找的值匹配。

(您显示的代码似乎使用了 OWLAPI 3 方法,对吗?如果是这样,我建议升级到更新的版本,OWLAPI 3 现在真的很古老。)

一个注释:IRI.create("iri_of_annotation") 创建一个相对 IRI;当从文件中读取本体时,相对 IRI 将成为绝对 IRI,因此如果您在代码中不使用绝对 IRI,很可能无法根据需要匹配数据。