使用Reasoner对象提取比萨本体中的直接超类

时间:2016-10-12 16:29:16

标签: java ontology owl-api protege4

我在标准披萨ontology上使用OWL API 3.4.3和Hermit 1.3.8.1(推理者)。

我尝试提取类的直接超类

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

  1. 猫头鹰:事情
  2. DomainConcept 即可。
  3. 显示一个简单的代码段来提取上面提到的 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();
        }
    

    我无法找到可以使用推理对象调用的任何相关方法

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

    提前致谢:)

1 个答案:

答案 0 :(得分:1)

您所使用的方法是OWLReasoner::getSuperClasses(OWLClassExpression, boolean)

源代码(包括javadoc)可用here