耶拿;如何在不迭代 A super 类 或 B sub 类 的情况下检查 A subClassOf B

Jena; How to check A subClassOf B without iterating A super classes nor B sub classes

让我们有一个由 Jena 操纵的 ontology 和两个 ontology 类 (OntClass),A 和 B。有什么方法可以检查

A a subClassOf B

无需遍历 A super 类 并检查 B 是否在其中。也没有迭代 B sub 类 并检查 A 是否在其中。我的意思是

A.isSubClassOf(B)

最好的检查点是文档。 (实际上,使用支持自动完成的 IDE 也可以很容易地找到它。)在这种情况下,OntClass has two methods that are exactly what you're asking for. It's not isSubClass, but rather hasSubClass(Resource). There's also hasSuperClass(Resource) 的文档。例如,要检查 A 是否是 B 的子类,您可以这样做:

OntClass A = ...;
OntClass B = ...;

A.hasSuperClass(B); // Does A have B as a superclass?
B.hasSubClass(A);   // Does B have A as a subclass?