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