确定一组OWLAnnotationAssertionAxiom中是否存在特定注释

时间:2015-11-17 06:30:41

标签: rdf owl owl-api

我发现我目前迭代所有注释的方法耗费时间......你能建议更好的方法吗? 这是我目前的代码: -

Set<OWLAnnotationAssertionAxiom> annotations = ont.getAnnotationAssertionAxioms(relationIRI);
        if (annotations != null && annotations.size() > 0)
        for (OWLAnnotationAssertionAxiom annotation : annotations) {
            if (annotation.getProperty().getIRI().getShortForm().equals(OntologyConstants.ABSTRACT)) 
                abstractProperty = true;
        }

1 个答案:

答案 0 :(得分:2)

在OWLAPI 3中,没有更简单的方法可以满足您的需求。

在OWLAPI 4中,如果您知道要搜索的属性的完整IRI(不仅仅是简短形式),您可以这样做:

OWLAnnotationProperty p = owlDataFactory.getOWLAnnotationProperty(iri);
abstractProperty= !EntitySearcher.getAnnotationObjects(relationIRI, ont, p).isEmpty();

如果您只有简短形式,则无法利用任何快捷方式,原始代码仍然是最佳方式。