我试图获得OWL类的所有等效类。我使用此代码但它不起作用,它返回空括号或IRI类(我的意思是cls的IRI)。
我想得到等价的类,因为我需要提到它们作为给定类的超类(在示例中为类cls)。所以,如果cls类等同于其他一些类的交集,那么所有这些类都是cls类的超类。
public static Set<OWLClass> getEquivalentClasses(OWLClassExpression cls) {
Node<OWLClass> equivalentClasses = reasoner.getEquivalentClasses(cls);
Set<OWLClass> result = null;
if (cls.isAnonymous()) {
result = equivalentClasses.getEntities();
} else {
result = equivalentClasses.getEntitiesMinus(cls.asOWLClass());
}
return result;
}