【问题标题】:Combining reasoners in OWL API for OWL DL + SQWRL support在 OWL API 中结合推理器以支持 OWL DL + SQWRL
【发布时间】:2016-12-16 07:49:46
【问题描述】:

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

问题是:

  • 当前的 OWL 2 DL 推理器仅支持 SWRL 内置函数
  • 唯一的 SQWRL SWRLAPI 引擎是 drools-swrlapi,它是 OWL 2 RL,无法处理我的 DL 本体

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

  1. 在 Java 中直接使用 OWLAPI 在 OWL 2 DL 推理器(如 Pellet)之上执行 SQWRL
  2. 不知何故同时使用两个推理器(Pellet 和 Drools-SWRLAPI)并避免使用静态 Java 代码

所以我的问题是:是否有可能将两个推理器结合起来以使它们不会发生冲突?

喜欢

  1. 使用 DL 推理器进行预计算推理
  2. 在 Drools-SWRLAPI 上运行生成的本体以执行 SQWRL
  3. 将其返回到 DL 推理器并验证/计算更多推理
  4. 循环

谢谢!

【问题讨论】:

    标签: java owl ontology owl-api swrl


    【解决方案1】:

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

    我不熟悉 SWRL API 和 Drools 规则引擎,所以我不能说这是否可行或容易;我可能会首先采用支持 SWRL 的开源推理器之一,并尝试用 Drools 代码替换他们的 SWRL 支持——这具有确保推理器用于确保正确性和完整性的算法得到应用的优势(在这两种推理方法应该是一个很好的近似值,但可能会遗漏一些极端情况,以及丢失优化。

    相反的方法,即实现 OWL2DL 推理并随后应用 SWRL 规则,具有必须选择要实现哪些推理的弱点;分类法中的类表达式不会轻易通过OWLReasoner 接口,而且该过程的计算量可能非常大。

    【讨论】:

    • 谢谢!因此,对我来说,最简单的第一步是首先尝试使用 SQWRL 实现 RL,并假设所有 SQWRL 推理仅在 RL 模式下有效;然后在此之上运行 DL 推理器,并希望它适用于我的本体。完整的解决方案是将 SQWRL 支持添加到兼容的 DL 推理器中,这将是下一步。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多