如何在 hermiT 中禁用推理
How to disable inference in hermiT
我正在使用 OWL-Api 和 hermiT 推理器,在尝试使用 hermiT 检索 partOf 子类时,它返回正确的结果,所以 partOf 子类,但它也返回推断的子类(我不需要)。
这是用于检索 partOf 子类的函数:
//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 推理引擎?
hermit.getSubClasses(domain, false);
将此更改为
hermit.getSubClasses(domain, true);
只检索直接子类。
我正在使用 OWL-Api 和 hermiT 推理器,在尝试使用 hermiT 检索 partOf 子类时,它返回正确的结果,所以 partOf 子类,但它也返回推断的子类(我不需要)。
这是用于检索 partOf 子类的函数:
//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 推理引擎?
hermit.getSubClasses(domain, false);
将此更改为
hermit.getSubClasses(domain, true);
只检索直接子类。