From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) DTRules.com
Stable release
4.3 / July 5, 2011 (2011-07-05)
Preview release
5.0-SNAPSHOT / July 19, 2011 (2011-07-19)
Written in Java
Operating system Cross-platform
Type rules engine
License ASL 2
Website dtrules.com

DTRules is an Open Sourced Rules Engine written entirely in Java.[1][2] DTRules executes Decision tables directly, and utilizes a Domain-specific language for expressing the conditions and actions within the Decision Tables.

DTRules is a Deterministic Rules Engine, meaning that the execution of the rules within the Decision Tables is ordered by the tables themselves. DTRules is not a production rule system, and does not currently use any implementation of the Rete algorithm.


Decision Table based Rules Engines have been used by a number of states to automate policy since 2000. Deloitte has used this technology in the following deployments:[3]

  • Colorado CBMS
  • California CalWIN
  • Texas TIERS
  • Michigan BRIDGES

Ohio used another Decision Table based Rules Engine in its OFAST project. This project supports corporate audits, which are generally performed by auditors using laptops.

Neither of the previous two code bases were open source projects, and development and general availability of these implementations is unknown.

The development of DTRules began in 2003, and was established as an open source project on SourceForge in 2006 [4] Despite establishing the repository on SourceForge, development continued against a CVS install on the project website that is no longer active. Eventually, DTRules was moved over to Github.[5]


Unbalanced Decision Tables[edit]

DTRules provides support for unbalanced decision tables. Instead of forcing developers to flush out the condition table with all paths, unbalanced tables allow ambiguity which is resolved one of two ways. Either the actions of the first column where all conditions match is executed (in DTRules this is a first table), or the actions of all tables with matching conditions are executed (in DTRules this is an all table).

The use of Unbalanced Decision Tables greatly simplifies the presentation of logic to business users and developers alike. This makes the decision tables much easier to understand, validate, and maintain. Because DTRules produces the balanced, single hit tables from the unbalanced form, any validation that requires balanced tables can be done with the "auto balanced" forms.

Related systems[edit]

  • ILOG rules: a business rule management system.
  • JBoss Drools: a business rule management system (BRMS).
  • JESS: a rule engine for the Java platform – it is a superset of CLIPS programming language.
  • Prolog: a general purpose logic programming language.
  • Gandalf: Open-Source Decision Engine (PHP).
  • OpenL Tablets: business centric rules and open source BRMS.
  • Corticon: a business centric BRMS for the Java and .NET platforms.


External links[edit]