开发者

DL Reasoner vs Rule Engine: can you explain the difference?

开发者 https://www.devze.com 2022-12-10 16:10 出处:网络
Can so开发者_运维知识库meone explain the differences between a DL Reasoner like Pellet/deafult OWL Reasoner and a rule engine like Jess? and their applications ?

Can so开发者_运维知识库meone explain the differences between a DL Reasoner like Pellet/deafult OWL Reasoner and a rule engine like Jess? and their applications ?

Thanks.


Both Pellet and Jess can primarily be used as semantic reasoners. However Jess is a rule-based expert system which is used for providing answers to some expert needed problems. Also Jess has its own language to create rules. Namely we call them Jess Rules. Pellet uses Jena API or SWRL to define rules. So with Jess, you can write more complex rules. If you want to do a replacement between these tools, you may need to write some rules again for each type.

http://en.wikipedia.org/wiki/Semantic_reasoner

In this link you can find a comparison table between the semantic reasoners. I have not use SweetRules reasoner before but it seems that it supports both SWRL and Jess rules, therefore this reasoner can be helpfull in crossing between Jess and Pellet.


Rule Engines can separate the definitions of rules apart from coding, and put the process of reasoning inner the rule engines, which could bring some advantages such as reusing the knowledge of rules.


Reasoners usually implement a more constrained functionality of rules (if at all) with monotonic inference. When people say "reasoner" they generally mean OWL reasoner as it is an interoperable W3C recommendation based on RDF and may not have rule support at all with everything set up using Axioms and Facts.

Rule engines like CLIPS, Jess or Drools, on the other hand, feature a complete, self-contained non-standard programming language with little limitations on what can be expressed and with no need for a separate functional part - thus potentially leading to slow and poorly designed system due to freedom given to programmer.

Technically, any rule engine can be used instead of a reasoner. As a specific production example, one can replace Pellet with Drools using Drools-SWRLAPI for OWL/RDF reasoning. Jess also has SWRL API. However, as Pellet is a dedicated reasoner with built-in OWL support it magically infers everything and answers the questions via API or SPARQL - while Drools will require special setup and quite a bit of programming to integrate Java APIs.

Another real-world difference is that rule engines are primarily used as a BRMS (in FinTech for example) while reasoners are used in semantic data store or knowledge management applications like goods' properties or relationships in news/media agencies.

As of Y2016, rule support of Pellet is limited to SWRL and Drools-SWRLAPI supports both SWRL and SQWRL (both monotonic). SWRL serialization itself is a 'de-facto' standard derived from Protege SWRLTab plugin.

0

精彩评论

暂无评论...
验证码 换一张
取 消