有人可以解释像 Pellet/deafult OWL Reasoner 这样的 DL Reasoner 和像 Jess 这样的规则引擎之间的区别吗?和他们的应用?
谢谢。
有人可以解释像 Pellet/deafult OWL Reasoner 这样的 DL Reasoner 和像 Jess 这样的规则引擎之间的区别吗?和他们的应用?
谢谢。
Pellet 和 Jess 都可以主要用作语义推理器。然而,Jess 是一个基于规则的专家系统,用于为一些专家需要的问题提供答案。Jess 也有自己的语言来创建规则。即我们称它们为 Jess 规则。Pellet 使用 Jena API 或 SWRL 来定义规则。因此,使用 Jess,您可以编写更复杂的规则。如果您想在这些工具之间进行替换,您可能需要为每种类型再次编写一些规则。
http://en.wikipedia.org/wiki/Semantic_reasoner
在此链接中,您可以找到语义推理器之间的比较表。我以前没有使用过 SweetRules 推理器,但它似乎同时支持 SWRL 和 Jess 规则,因此这个推理器有助于 Jess 和 Pellet 之间的交叉。
规则引擎可以将规则的定义与编码分离,将推理过程置于规则引擎内部,可以带来规则知识重用等优点。
推理者通常通过单调推理实现更受约束的规则功能(如果有的话)。当人们说“推理器”时,他们通常指的是OWL推理器,因为它是基于 RDF 的可互操作的 W3C 建议,并且可能根本不支持使用Axioms 和 Facts设置的所有规则。
另一方面,像 CLIPS、Jess 或 Drools 这样的规则引擎具有完整的、自包含的非标准编程语言,对可以表达的内容几乎没有限制,并且不需要单独的功能部分 - 因此可能会导致缓慢和由于给予程序员的自由,系统设计不佳。
从技术上讲,可以使用任何规则引擎来代替推理器。作为一个具体的生产示例,可以使用Drools-SWRLAPI将Pellet替换为Drools ,以进行 OWL/RDF 推理。Jess 也有 SWRL API。然而,由于 Pellet 是一个内置 OWL 支持的专用推理器,它神奇地推断一切并通过 API 或 SPARQL 回答问题——而 Drools 需要特殊设置和相当多的编程来集成 Java API。
另一个现实世界的区别是规则引擎主要用作BRMS(例如在金融科技中),而推理器用于语义数据存储或知识管理应用程序,如新闻/媒体机构中的商品属性或关系。
截至 Y2016,Pellet 的规则支持仅限于 SWRL,Drools-SWRLAPI 支持 SWRL 和 SQWRL(都是单调的)。SWRL 序列化本身是从 Protege SWRLTab 插件派生的“事实上的”标准。