我在标准Pizza本体上使用OWL API 3.4.3和Hermit 1.3.8.1(推理器)。
我尝试提取一个类的直接超类。
这里提供的教程不考虑提取Direct超类。例如,Food有两个超类,即
- 猫头鹰:事情和
- DomainConcept 。
显示了一个简单的代码片段,用于提取上面提到的直接超类(即DomainConcept)。
public Set<OWLClass> getDirectSuperClasses(String classExpressionString, boolean direct) {
if (classExpressionString.trim().length() == 0) {
return Collections.emptySet();
}
OWLClassExpression classExpression = parser
.parseClassExpression(classExpressionString);
//NodeSet<OWLClass> subClasses = reasoner.getSubClasses(classExpression, direct);
NodeSet<OWLClass> directSuperClasses = **reasoner.get_________?????**
return directSuperClasses.getFlattened();
}
我找不到任何相关的方法可以使用推理对象调用。
有什么技巧可以直接得到想要的输出吗?
提前感谢:)
您需要的方法是OWLReasoner::getSuperClasses(OWLClassExpression, boolean)
源代码,包括javadoc,可在这里获得