我正在使用OWL-Api和hermiT推理器,当尝试使用hermiT检索partOf subclasses时,它会返回正确的结果,所以它会返回partOf子类,但它也会返回推断的子类(我不需要)。
以下是用于检索partOf subClasses的函数:
//ricerca delle classi che hanno come parti quella attuale
System.out.println("Questa classe è parte di: ");
OWLClassExpression domain = df.getOWLObjectIntersectionOf((Stream<? extends OWLClassExpression>) ontologia.objectPropertyDomainAxioms(partOf));
NodeSet<OWLClass> subClassesInDomain = hermit.getSubClasses(domain, false);
if(subClassesInDomain.isEmpty()) {
System.out.println("\tQuesta classe non è parte di nessun'altra");
}
else {
for(Node<OWLClass> parteDi : subClassesInDomain) {
OWLClass classe2 = parteDi.getRepresentativeElement();
System.out.println("\t"+ classe2.getIRI().getFragment());;
}
}在此图像中,提供了操作的实际结果。given result
在这里,它显示了我需要的结果。wanted result
是否有办法仅对此操作禁用hermiT推理引擎?
发布于 2019-02-05 20:58:14
hermit.getSubClasses(domain, false);将其更改为
hermit.getSubClasses(domain, true);仅检索直接子类。
https://stackoverflow.com/questions/54517882
复制相似问题