Table of contents for OMG Decision Model Notation Day
- OMG Decision Model Notation – Importance of decisions
- Jan Vanthienen on Decision Tables
- The KPI Decision Model
- Decisions in IBM WebSphere/ILOG BRMS
- RuleGuide for managing decisions and rules
- Extracting logic from legal documents
- CEP and Decision Management
- OpenRules and Decision Modeling
- Discussing a proposal for a decision modeling notation
Jacob Feldman presented to the Object Management Group Decision Modeling Notation meeting on OpenRules – an open source “decision management system”. Jacob argues that OpenRules is a Decision Management System for a number of reasons – besides having a rule engine and a rule engine it also supports automated rule discovery, predictive analytics, an optimization solver, a rules dialog to build web applications and support for a finite state machine. On top of the functionality he focuses on the importance of having business analysts manage business rules. This involves both understanding the underlying semantics (obviously) as well as using a familiar interface – in his case, Excel.
The OpenRules approach can use a KPI Decision Model–based approach, typed directly into Excel. Rule Families are laid out in Excel with condition and conclusion columns. It can also support a more compact but less rigorous decision table approach. Besides these rule families you need a set of fact definitions – a business glossary. Each fact name used in a rule family are linked to a business concept and mapped to a technical attribute name to support implementation. To support testing, other blocks of cells in Excel can be used to store data types and example records. Finally the decision objects must be defined, mapping business concepts to object definitions.
Essentially all the various elements are defined in tables within Excel, each labeled to define what it is, and the engine then picks up the Excel specification and executes it. OpenRules can use Excel for everything but also allows the rules to be stored in a physical rule repository and can be passed in to the execution environment as objects.
I have a scheduled deep dive with OpenRules soon so look for a First Look in the coming weeks.