There are already 3 solutions to DMCommunity May-2020 Challenge. I especially like how Carol-Ann Berlioz created her solution using a test-driven approach when test cases prompt her which rules should be added. So, I’ve tried to reproduce her solution but instead of a product specific GUI I decided to use OpenRules decision tables defined in Excel. So, here are our test-cases with input data and expected results: Continue reading
Last week I created a “Worker Planner” that has a nice GUI deployed on Apache Tomcat and it works in sync with a remote Scheduling Decision Service deployed as AWS Lambda. The scheduling service was implemented with JavaSolver and a constraint solver included into JSR331. My objective was to demonstrate that these days with cloud-based deployment it is not so difficult to create an end-to-end full-scale decision optimization service. I also wanted to show how to apply powerful Linear Solvers to crack traditionally complex production scheduling problems. So, two days ago I took a well-known problem that is described in this example: Continue reading
There are already several good responses to the DMCommunity’s April-2020 Challenge “Doctor Planning”. Below I am describing how I tried to use this challenge to create a complete decision optimization service. I ended up with a working Worker Scheduler that shows a solution for this particular challenge in Fig. 1 (click to open):
The latest DMCommunity.org Challenge “Recreational Fee” is very simple, but I still wanted to show how to create the proper decision model using the OpenRules goal-oriented approach. The implementations is described in this PDF document.
In Aug-2018 Prof. Robert Fourer gave a tutorial “Model-based Optimization“, in which he compares two essentially different approaches to modeling optimization problem: “model-based” vs. “method-based”. He is using a relatively complex “Balanced Assignment” problem to demonstrate his points. While Fourer’s tutorial deals with optimization, I believe the same arguments are directly related to Decision Modeling that so far mainly remains method-based. During DecisionCAMP-2018 we had interesting (and sometimes hot) discussions about these two approaches and in my closing remarks I described the major differences between them as follows: Continue reading
On October 16 Business Rules Excellence Awards (BREA) announced the winners of the 2018 Awards. Congratulations to the OpenRules’s customer, a major California bank, who became a winner! Here is the brief from the BREA’s presentation:
After successfully putting a new OpenRules-based system in production, the bank extended the use of OpenRules to another mission-critical application related to risk management. Below you can read the description of this OpenRules success story. Continue reading
The major Release 7.0.0 is making OpenRules even more user-friendly without losing any of the sophistication of already proven decision modeling technology. Our customers don’t have anymore to define an execution sequence of their decision tables in special tables of the type “Decision” – these tables can be automatically generated. Now it is sufficient for a human decision modeler to define only Glossary and Decision Tables that specify business logic for all included goals and subgoals. Then for any selected business goal, OpenRules Engine will execute all related decision tables in an automatically calculated order to determine the goal’s value. You may watch this short video that uses simple examples to explain the goal-oriented approach to decision modeling supported by OpenRules-7. Continue reading
In this post we will provide a response to the DMCommunity.org Apr-2018 Challenge “Up-Selling Rules“ that deals with two decision tables: 1) up-selling rules that offer new products to a customer based on the customer profile and the products which the customer already has; 2) customer profiling rules. We will use for the first time the latest OpenRules version (not released yet to public) that removes a need for ordering of multiple decision tables. Continue reading
Last year BBC-2017 organizers gave me 20 minutes to introduce DMN to business analysts at the “Technology Theater”, an open space in the Expo hall. Based on the positive feedback from people who attended my presentation, I decided to share it with more people. You may look at my slides in the PDF format. Below I will describe an example I believe is very useful to introduce major DMN concepts in 15 minutes. Continue reading
DMCommunity.org Jan-2018 Challenge is looking for a decision model that can define promotions for different sales orders. It provides a simple example of promotion: reduce the total cost of the order by $3.50 if it contains at least 5 items 1108 and 4 item 2639. Let’s build the proper decision model. Continue reading
OpenRules already can read and execute decision models represented in the DML XML format. To test new DMN-to-OpenRules capabilities I decided to implement DMCommunity’s June-2017 Challenge using the DMN Modeling tool from Trisotech that allows non-technical people to create DMN-compliant decision models and import them to the DMN XML format. My objective was to create DMN XML for the Loan Origination problem described in the Section 11 of the DMN specification and then execute this DMN XML using OpenRules. Continue reading
DMCommunity.org June-2017 Challenge is looking for the best decision models that implement a well-known Loan Origination problem described in in the Section 11 of the DMN specification. So, I decided to address this challenge using the core DMN constructs implemented in OpenRules. I will describe my solution in the form of dialog between a fictional READER who is assumed to be a business analyst (not a programmer) and the AUTHOR, who represents myself. It is similar to the dialog-sessions described in my recent book “DMN in Action with OpenRules“. While it may look long it doesn’t omit any implementation detail. Besides serving as a good solution for the Challenge, this document describes a good decision modeling practice for OpenRules customers.
DMCommunity.org announced its Challenge “Rebooking Passengers from Cancelled Flights” in Oct-2016 and until now 4 different solutions have been submitted. It is a relatively complex use case for decision modeling. In this post I will describe different implementation approaches for this challenge and will discuss good and not so good DMN constructs used to support the underlying decisioning logic. I hope this post will initiate more discussions which may lead to the future DMN improvements by replacing the existing programming constructs to more business-friendly representations. Continue reading
I consider myself among the initiators and big supporters of the DMN standard, and I do my best to help bringing the standard to the real-world business decision modeling. Naturally, the current release of DMN includes some constructs with which I strongly disagree but I am trying not to criticize DMN too much as the standard itself is not mature enough yet and I hope it will be gradually improved based on the real-world acceptance. Continue reading
When I learned that the famous Prof. Raymond Smullyan passed away this February at the age of 97, I felt grateful to the man whose books and puzzles my friends and I enjoyed reading as young programmers many years ago. Later on we shared them with our children. I wanted somehow to mark this event and decided to buy his book “The Chess Mysteries of Sherlock Holmes” to read on vacation. Ten days ago I started to read the book during my flight from Newark to Jamaica and… haven’t even noticed as we landed. Continue reading
This month I published a new book “DMN in Action with OpenRules” at Amazon. This is a practical guide for people who want to understand how to create and maintain business decision models. The guide is based on the DMN standard and OpenRules. It is oriented to business analysts looking to build operational decision models for their own business environment.
In Dec-2016 DMCommunity.org published a new Challenge called “Loan Approval“. This challenge actually was proposed by myself based on real-world experience with one of our customers (a large bank). The most important point of this challenge was a general architecture that allows to invoke the same business logic based on real-time events coming from external sources. I described how such architecture may look like at this video that demonstrates a decision engine integrated with a PUB/SUB message broker.
However, the business logic itself also may be interesting especially if implemented using the latest DMN approach. So, I decided to do a new implementation that is described below. Everything is defined in Excel tables with zero Java code. Continue reading
DMCommunity.org published an interesting challenge “Greeting a Customer with Unknown Data” that deals with the real-world decision modeling issue: your decision model has to produce a meaningful outcome even when expected input is not available. We provided our DMN-like solution utilizing various OpenRules constructs – it is described here.
The modern Business Rules and Decision Management Systems help users to move business logic from a code to business rules controlled by subject matter experts (not developers). In particular, the latest Decision Model and Notation (DMN) standard  defines powerful and broadly applicable concepts for decision modeling that allowed experts  to call DMN a “decision modeling language”. DMN even includes a friendly enough expression language, FEEL, to express complex relationships between different decision variables. However, DMN is a general purpose “decision modeling language” that naturally stays away from domain-specific decision modeling constructs. In this article I will discuss how to enhance DMN to support specialized decision modeling languages. Continue reading
People frequently assume that a good, consistent decision model should produce one and only one decision (solution) for any valid input. However, in real-world applications we frequently deal with situations when a decision model may produce multiple feasible solutions for the same input. And it does not mean that the decision model is incomplete – simply a user may choose the most appropriate solution among all produced decisions. It can be done interactively or by adding more rules. I’ve already provided an example “Monkey Business Analyzed” that describes how to deal with multiple decisions using OpenRules What-If Analyzer. In this post I will describe another decision model that also shows how to choose an optimal decision among multiple feasible decisions. Continue reading
I decided to add the decision model “Monkey Business” to our new What-If Analyzer. It brought several considerations missed by other solutions. In this post I will discuss my implementation and will show how What-If Analyzer helps to do a through analysis of usually unnoticed aspects of business decision modeling. Continue reading
This month DMCommunity.org asked to present the best design of the notorious decision tables offered by Prof. Jan Vanthienen. It should implement the following business logic: Continue reading
The recent LinkedIn discussion “What rules representation to choose for which audience?” came to the question about business analysts handing their business rules written in plain English over to IT for an implementation. Continue reading
“Big Data” have brought “Predictive Analytics” (long-time available but hidden in the academic world under the names “Machine Learning” and “Data Mining”) to the spotlight of the modern Business Analytics. These days you will find many examples when analytics enables business decisions by supporting a path from data to decisions and actions. Below I will briefly talk about nowadays positioning of the Business Analytics and more about OpenRules own experience in this area including OpenRules Rule Learner. Continue reading
As a response to the DMCommunity.org challenge, I will describe an OpenRules-based implementation of the highly popular use case known as “UServ Product Derby”. The use case deals with automobile insurance problems including eligibility and pricing decisions for a hypothetical insurance company “UServ”. Its detailed description can be found here. Our implementation may be considered as another complex-enough example of the DMN approach. Continue reading