Java 从ObjectPropertySertion OWLAPI获取注释
我正在使用OWL2.0的OWLAPI,但有一件事我似乎还没有弄明白。我有一个OWL/XML文件,我想检索对象属性断言的注释。以下是我的OWL/XML和Java代码的片段: 猫头鹰: 鲍勃喜欢寿司 爪哇:Java 从ObjectPropertySertion OWLAPI获取注释,java,owl,owl-api,Java,Owl,Owl Api,我正在使用OWL2.0的OWLAPI,但有一件事我似乎还没有弄明白。我有一个OWL/XML文件,我想检索对象属性断言的注释。以下是我的OWL/XML和Java代码的片段: 猫头鹰: 鲍勃喜欢寿司 爪哇: 问题是,即使OWL声明有一个rdfs:comment,也不会返回任何内容。查找有关如何检索此信息的任何文档都很麻烦。添加带有注释或其他内容的公理不是问题。为了检索注释,您需要浏览感兴趣的公理。如注释中所述,使用getSomething将内容添加到本体中,不可能以这种方式检索您的axiom。以下代
问题是,即使OWL声明有一个rdfs:comment,也不会返回任何内容。查找有关如何检索此信息的任何文档都很麻烦。添加带有注释或其他内容的公理不是问题。为了检索注释,您需要浏览感兴趣的公理。如注释中所述,使用getSomething将内容添加到本体中,不可能以这种方式检索您的axiom。以下代码改编自:
ifax.isAnnotated{…}块中的其他代码是否执行?也就是说,如.isnotated返回的是真的吗?目前,问题可能在于它返回false,或者ax.getAnnotations返回空iterable。这将有助于确定正在发生的情况。ax.isAnnotated确实返回false,并且集合为空。为了避免混淆,我删除了if语句。谢谢。如果您使用的是factory.getowlObjectPropertyServationAXIOM…,您是否正在创建一个新的axiom,而不是从本体中检索一个?如果你用它来找到你正在寻找的公理,并检查它是否被注意到,会发生什么?非常感谢。非常有用。为了向其他人澄清,请重写VisitToLobjectPropertySerrionAXIOM ax以从断言axioms检索注释。您好,在本例中,如何获取特定对象属性断言的注释?在本例中,是这样的吗?据我所知,walker只获取本体中所有对象属性断言的注释。
OWLIndividual bob = manager.getOWLDataFactory().getOWLNamedIndividual(IRI.create(base + "#UserBob"));
OWLObjectProperty likes = manager.getOWLDataFactory().getOWLObjectProperty(IRI.create(base + "#Likes"));
OWLIndividual sushi = factory.getOWLNamedIndividual(IRI.create(base + "#FoodSushi"));
OWLObjectPropertyAssertionAxiom ax = factory.getOWLObjectPropertyAssertionAxiom(likes, bob, sushi);
for(OWLAnnotation a: ax.getAnnotations()){
System.out.println(a.getValue());
}
//Get rdfs:comment
final OWLAnnotationProperty comment = factory.getRDFSComment();
//Create a walker
OWLOntologyWalker walker =
new OWLOntologyWalker(Collections.singleton(ontology));
//Define what's going to visited
OWLOntologyWalkerVisitor<Object> visitor =
new OWLOntologyWalkerVisitor<Object>(walker) {
//In your case you visit the annotations made with rdfs:comment
//over the object properties assertions
@Override
public Object visit(OWLObjectPropertyAssertionAxiom axiom) {
//Print them
System.out.println(axiom.getAnnotations(comment));
return null;
}
};
//Walks over the structure - triggers the walk
walker.walkStructure(visitor);