DTRules is an Open Sourced Rules Engine written entirely in Java. 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.
|Stable release||4.3 / July 5, 2011|
|Preview release||5.0-SNAPSHOT / July 19, 2011|
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:
- 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  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.
Unbalanced Decision Tables
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.
- 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.
- OpenL Tablets: business centric rules and open source BRMS.
- Corticon: a business centric BRMS for the Java and .NET platforms.
- DTRules Project Website
- Original Sourceforge repository
- Current Git Repository for the DTRules open source project
- Documentation for EL, the reference formal language for DTRules
- DTRules Support Formum
- Niyum, a Decision Table based engine based on DTRules
- Using Niyum to Evaluate Microsoft License Agreements presented at IntelliFest 2012