我需要在 OWL 2 DL 本体上计算一些 SQWRL 规则。
问题是:
我考虑两种可能的解决方案:
所以我的问题是:是否可以组合两个推理器以使它们不会发生冲突?
喜欢
谢谢!
如果
OWLReasoner
被创建为非缓冲并且Drools-SWRLAPI实现了输入本体中的所有推断三元组,那么这应该是可行的。情况可能并非如此,因此可能有必要采取措施来实现这些推论。
我不熟悉 SWRL API 和 Drools 规则引擎,所以我不能说这是否可行或容易;我可能会首先采用支持 SWRL 的开源推理机之一,并尝试用 Drools 代码替换其 SWRL 支持 - 这样做的优点是确保推理机用于确保正确性和完整性的算法得到应用(在这两种推理方法应该是一个很好的近似,但可能会遗漏一些极端情况,以及丢失优化。
相反的方法,即具体化 OWL2DL 推论并随后应用 SWRL 规则,其缺点是必须选择具体化哪些推论;分类中的类表达式不会轻松地穿过
OWLReasoner
接口,并且该过程的计算成本可能非常高。