A Java Based Decision Table Rules Engine


Posted by Paul Snow on July 19, 2012

DTRules does not have an implementation of the Rete Algorithm. Nor does DTRules use backtracking. Instead, DTRules uses a structured set of data and a set of Decision Tables to implement policy rules.

The conditions are evaluated one after another, in the order presented. Once a column (or set of columns) succeeds, then all the actions indicated in that column (or columns) are executed in the order provided. Because DTRules supports Unbalanced Decision Tables more than one column might be executed at one time. In this case, even if an action is marked for execution in more than one succeeding column, it is still executed only once.

While Backward Chaining or Forward Chaining rules engines can, in some instances, provide powerful reasoning capabilities for arriving at solutions, the time taken to arrive at such answers is difficult to predict. These Rules Engines are not considered Deterministic because they do not specify the order of application of Rules. Deterministic Rules Engines such as DTRules have more predictable and consistent behavior, and are suited for applications that are intended to implement a stated set of policy rules.

DTRules is not as well suited for solution searches where the order and application of a set of rules is not well understood.

Leave a Comment