利用Reasoner对象提取Pizza本体中的直接超类



我在标准Pizza本体上使用OWL API 3.4.3和Hermit 1.3.8.1(推理器)。

我尝试提取一个类的直接超类

这里提供的教程不考虑提取Direct超类。例如,Food有两个超类,即

  1. 猫头鹰:事情
  2. 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,可在这里获得

最新更新