Sunday, July 04, 2004

Java Rules

The Mandarax Project "Mandarax is based on backward reasoning. This fits perfectly in a computing landscape based on a pull model (e.g. a transaction initiated from a web site). Data (e.g., from relational databases) can be integrated on the fly at query time, no replication is necessary (see the manual for a more detailed discussion of "Mandarax vs. RETE")."

The manual says: "The mandarax inference engine uses backward reasoning, and the reference implementation uses an object ­oriented version of backward reasoning similar to the algorithm used in Prolog. On the other hand, most commercial rule systems such as ILOG and popular open source solutions like CLIPS and JESS use forward reasoning, in particular an algorithm called RETE. This algorithm keeps the derivation structure in memory and propagates changes in the rule and fact base."

A description of the RETE algorithm is here.

No comments: