我正在编写一个程序,给定一个OWL本体,通过使用Pellet作为推理器来检索查询的所有解释。
为此,OWLAPI 提供了一个名为 HSTExplanationGenerator
的类,该类实现了命中集树算法来查找所有解释。
当我想创建一个HSTExplanationGenerator
的实例时,我应该给出一个实现接口TransactionAwareSingleExpGen
的类,实现此接口的类应该提供一个计算解释的方法。
现在,OWLAPI 提供了两个实现此接口的类:BlackBoxExplanation
和 GlassBoxExplanation
。我已经阅读了这两个类的代码。 GlassBoxExplanation
从 Pellet 那里得到解释,修剪它,然后将其转换为一组OWLAxiom
。但是,我发现很难理解BlackBoxExplanation
的作用。问题是:我应该使用哪一个?这两个类之间的主要区别是什么?
我所知,GlassBoxExplanation
是由Pellet提供的,而不是OWLAPI。
和玻璃盒解释之间的主要区别在于,黑盒解释无法知道推理者的内部结构 - 它仅限于通过OWLReasoner
界面提供的内容。在这方面,定义与软件工程中的黑盒测试和白盒测试没有什么不同。
也就是说,您可能希望改用猫头鹰解释项目。它基于简洁的解释,这是OWL蕴涵解释的最新发展,而不是OWLAPI和(旧版本的(Pellet中可用的解释。
https://github.com/matthewhorridge/owlexplanation