1

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

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

此处提供的教程不考虑直接超类的提取。 例如,Food 有两个超类,即,

  1. 猫头鹰:东西
  2. 领域概念

显示了一个简单的代码片段来提取上面提到的Direct 超类(即 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();
    }

我找不到任何 可以使用 reasoner object 调用的相关方法。

直接获得所需输出的任何技巧?

提前致谢 :)

4

1 回答 1

1

你所追求的方法是OWLReasoner::getSuperClasses(OWLClassExpression, boolean)

源代码,包括 javadoc,可在此处获得

于 2016-10-12T20:44:54.910 回答