java - 猫头鹰 API : Good substitution for isSubclassOf method

标签 java owl owl-api

你好,

我正在使用 Java OWL API(版本 5)并想检查一个类是否是另一个类的子类。现在我正在通过获取预期子类的所有父类(super class)并检查此列表是否包含预期父类(super class)来执行此操作。这种方法有效,但如果类和我的本体变大,我需要做很多,它不是很有效。

在以前的 OWL API 版本中,OWLClassReasoner 中似乎有一个 isSubclassOf(.., ..) 方法。但在当前版本中,两者都不再存在。

我是否忽略了什么,如果没有,是否有更有效的方法来完成这项任务?

最佳答案

OWLClassReasoner 是一个 OWLAPI 2 类 - 我相信 OWLAPI 2 的最后一个版本是在 2009 年左右,所以可以说代码已经过时了。

使用真正的推理器(即 OWLAPI 5 的 HermiT 或 Openllet 之一 - 它们可以在 Maven Central 上找到),您可以使用以下代码:

OWLReasoner reasoner = ...
OWLClass a = ...
OWLClass b = ...
boolean bIsSuperclass = reasoner.getSuperClasses(a, false).containsEntity(b);

关于java - 猫头鹰 API : Good substitution for isSubclassOf method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47759948/

相关文章:

java - OWLApi : Failed to create a hermit reasoner instance

java - 我应该处理从 EditorSupport 返回的 jface CellEditors

java - OWLAPI : modify ontology after creating (HermiT) reasoner

sparql - Protégé 5 中具有相同数据属性的相邻线部分的区域

java - 在使用 Jena (java) 或 RDFLib (python) 时,我应该如何确定是将本体打开为 'turtle' 还是 'xml' ?

taxonomy - 本体:OWL-在类之间创建连接

java - 密码加密

java - 无法声明类字段

java - 如何在java中仅显示小数点后两位的 double 值