BlackBoxExplanation 或 GlassBoxExplanation,我应该使用哪一个?

BlackBoxExplanation or GlassBoxExplanation, which one should I use?

我正在编写一个程序,给定一个 OWL ontology,使用 Pellet 作为推理器检索查询的所有解释。

为此,OWLAPI 提供了一个名为 HSTExplanationGenerator 的 class,它实现了命中集树算法以查找所有解释。

当我想创建一个HSTExplanationGenerator的实例时,我应该给一个实现接口TransactionAwareSingleExpGen的class,一个实现这个接口的class应该提供一个计算解释的方法。

现在,OWLAPI 提供了两个实现此接口的 class:BlackBoxExplanationGlassBoxExplanation。两个classes的代码我都看过了。 GlassBoxExplanation从Pellet那里得到解释,剪枝后转化为OWLAxiom的集合。但是,我发现很难理解 BlackBoxExplanation 的作用。问题是:我应该使用哪一个?这两个 class 之间的主要区别是什么?

据我所知,

GlassBoxExplanation 是由 Pellet 提供的,而不是 OWLAPI。

黑盒解释和玻璃盒解释之间的主要区别在于黑盒解释无法了解推理器的内部结构——它仅限于通过 OWLReasoner 接口可用的内容。在这方面,定义与软件工程中的黑盒测试和白盒测试没有区别。

也就是说,您可能想改用 owlexplanation 项目。它基于简洁的解释,这是 OWL 蕴涵解释的最新发展,而不是 OWLAPI 和(旧版本)Pellet 中可用的解释。

https://github.com/matthewhorridge/owlexplanation