Inference Engines

Un-Rule Engines for Business Rules

March 1 2009: added Postgres Rules, and a few edits.
Revised Oct 20 2008: This is a new "hybrid rule engine" category for the development site, more nut-and-bolts-oriented than most rule engine discussions.

A Rule Engine By Any Other Name?

What should one call rule engines without true inferencing capabilities. How can they be called rule engines if the don't do rule inferencing ? Maybe the best term is "un-rule engines", as if we were talking about the "un-Cola" of soft drink marketing fame.

Links - Rule Engines

Updated: Dec 5 2008, more links, RuleLab.Net

Note that there is some overlap in the use of the term "rule engine" with pattern matching, text transformation, rendering and other filtering or search engines that have some level of rule capabilities.

RuleLab.Net is closed source, closed license and closed almost everything else, but it has good documentation of its facilities. Also on the plus side of the ledger, it has a hosted solution and is not terribly expensive as these things go.

Links - Ruby Rule Engines

Updated Sept 19 2008: added Ruby/EventMachine links
Updated Sept 19 2008: more links for Ruleby

Not a major category among the many rule engines implemented in Java and other languages. In this case, I've pushed the definition of 'engine' to the limits so I can include some of the more solid and interesting implementations.

Link - Commercial Inference Engines

Updated Sept 8 2008: added BizTalk links ( after much agonized debate with myself )

Generally identical to "enterprise" business rule engines, usually implemented in Java or C++. This category excludes many pattern or search engines geared toward business intelligence and data mining.

Links- Python Inference Engines

Oct 5 2009: PyKE 1.0.2 download, seems to be fairly active
Updated Jan 26 2009: new SimPy 2.0 release, Twisted framework, more links
Updated Oct 29 2008: added Narval

An important and growing segment of the rule engine world ... Python runs fast, a necessary requirement for all large rule-based applications.


Links - OWL/RDF Inferencing

More pattern matching and structural parsing than symbolic processing in a classical sense of an inference engine.

Links - Open Source C++ Inference Engines

Updated Oct 3 2008:

C++ engines are often neglected for web-based inferencing applications, but compilation is possible on non-shared hosting ...

Links - Java Open Source Inference Engines

Feb 3 2009: reflections on the power of modern marketing in selecting rule engines.

Sun appears to be serious about open sourcing the Java Development Kit and Virtual Machine, so it is time to consider Java as an environment for implementing Open Source rule and inference engines.

As an interpreted language, the performance and resource consumption of client and server-side solutions will probably be a critical design factor, particularly as Java-based rule engines tend to aspire to enterprise-level applications.

Links - Join Calculus

Some interesting possibilities that may lead to a better RETE algoritm. There are some good article suggesting directions for investigation but references on the web are still a bit thin.

RETE Meets Join Calculus ?


There is an interesting relationship between the RETE algoritnm and an emerging field called Join Calculus. The RETE algorithm has always suffered from a sense of being ad-hoc, it works therefore it is, without any real explanation for why it works so well in so many situations. Join Calculus may be able to provide a more general grounding for building rule engines than RETE, or at least give RETE a stonger theoretical foundation.

Links - Drools

Drools is probably the leading Open Source Java rule engine and rule management environment. It is the community version of commercial JBoss Rules. The whole operation os very solid - the Drools/JBoss Rules User Guide is among the best of any business rules product, either open source or commercial.

The following is a heavily paraphrased version of the three main points on Drools site:

Links - PHP Rule Engines

Updated: Sept 24 2008: more links, RAP

A very thin category at the moment, but the new Drupal Rules project may help to fill it out.

The RAP project has a simple forward and backward chaining inference engine using networks of relationships rather than condition/action statements like a true rule engine.

Semantic Web Inferencing versus Workflow/Rule Engines


There are critical differences between the kind of inferencing done by Semantic Web applications and the inferencing done by rule engines. A simple explanation might be that SemWeb apps are more knowledge-intensive and rule engines are more process-intensive, particularly in a business context. Potential, this might change over time, but of today, I would say the following applies.

Links - The Drupal Rules Engine Project

Update: Jan 16 2009 - Current development release ( rules-6.x-1.x-dev ).
Update: Sept 29 2008 - Current production release ( 6.x-1.0-beta3 )

Wolfgang Ziegler ( a.k.a. fago ) has started a project derived from the workflow-ng module to create a Drupal rules nodule implementing inference engine functionality, tightly coupled to the Workflow-NG module. One presumes that the rules engine will implement forward/backward chaining and be pluggable into the workflow engine.

Syndicate content