将OWL API中的reasoners组合用于OWL DL + SQWRL支持

时间:2016-12-16 07:49:47

标签: java owl ontology owl-api swrl

我需要在OWL 2 DL本体上计算一些SQWRL规则。

问题是:

  • 目前的OWL 2 DL reasoners仅支持SWRL内置
  • 唯一的SQWRL SWRLAPI引擎是drools-swrlapi,它是OWL 2 RL并且无法处理我的DL本体

我考虑两种可能的解决方案:

  1. 直接在Java中使用OWLAPI在OWL 2 DL推理器(如Pellet)之上执行SQWRL
  2. 以某种方式使用两个reasoners(Pellet和Drools-SWRLAPI)并避免使用静态java代码
  3. 所以我的问题是:是否可以将两个推理者结合起来,以免他们发生冲突?

    喜欢

    1. 使用DL推理器预计算推断
    2. 在Drools-SWRLAPI上运行生成的本体以执行SQWRL
    3. 将其放回DL推理器并验证/计算更多推论
    4. 谢谢!

1 个答案:

答案 0 :(得分:1)

如果将OWLReasoner创建为非缓冲并且Drools-SWRLAPI实现输入本体中的所有推断的三元组,则这应该是可行的。情况可能并非如此,因此可能需要采取措施来实现这些推论。

我不熟悉SWRL API和Drools规则引擎,所以我不能说这是可行的还是简单的;我可能首先选择一个支持SWRL的开源推理器并尝试用Drools代码替换他们的SWRL支持 - 这样做的好处是可以确保推荐者使用的算法来确保正确性和完整性的应用(循环之间)两种推理方法应该是一个很好的近似,但可能会遗漏一些极端情况,以及失去优化。

反向方法,即实现OWL2DL推论并随后应用SWRL规则,具有必须选择推断实现的弱点;分类中的类表达式不会轻易穿过OWLReasoner接口,并且该过程可能在计算上非常昂贵。