Machine Learning inside Decision-Making Applications: Practical Use Cases

Machine Learning (ML) tools have been successfully used for decision-making applications for many years. Despite many success stories, ML popularity in enterprise-level software for years remained incomparable with commonly used Rule Engines or even with Optimization tools. Why? Until recently some application developers considered ML to be “too scientific” or unstable with rarely guaranteed results, others complained that it required too much data for practical applications. Nowadays, when Generative AI dominates most technological news and many populists use the terms “AI” and “ML” almost as synonyms, the situation is changing. Vendors and practitioners, who professionally develop decision intelligence software, see a growing interest in ML tools as enterprise developers want to add AI to their existing decision-making applications.

Continue reading

Free POC Development

OpenRules Decision Manager becomes so powerful and easy to use that it dramatically reduces the efforts needed to develop new decision models and deploy them on cloud as decision microservices. OpenRules team has great practical experience of rapid creation of working prototypes or Proof of Concepts (POC). That’s why we offer a FREE POC development. After a brief meeting, we quickly (usually within 1-3 days!) put together a POC tested locally and deployed on cloud, so the customer may start testing it remotely without any installations! Read more Continue reading

Sorting Collections of Objects in OpenRules

We added more user-friendly sorting capabilities to the Release 10.1.0 of OpenRules. There are no need to use Java to define objects in the array of list of business objects that should be sorted inside a decision model. Let’s consider a simple example of sorting the array of “Passengers” using their frequent flier status and a number of miles.

Continue reading

New RuleSolver’s Modeling Facilities

OpenRules RuleSolver is an open source tool that adds the power of Constraint and Linear Programming to Business Decision Modeling. It extends OpenRules Decision Manager to support Declarative Decision Modeling and Decision Optimization.

The newest OpenRules Release 10.1.0 comes with an essentially simplified RuleSolver which now requires only two tables “DefineVariables” and “PostConstraints“ to define many complex logical problems. It also provides predefined methods for problem resolution so you really may concentrate only on the question “WHAT” and not worry about “HOW”. I will demonstrate the new decision modeling facilities using a relatively complex logical problem “Family Riddle“.

Continue reading

OpenRules New Release 10.1

OpenRules Release 10.1.0 is now available. New capabilities include:

  • New decision modeling constructs for RuleSolver
  • Enhanced RuleDB including parameterized DataSQL tables
  • Support for nested loops over the same collection
  • Big Decision Tables with fixed width format
  • Various improvements (patterns, templates, big tables, reworked User Manual, bug fixes).

Integrated Use of Rule Learner and Rule Engine

Nowadays we are experiencing an interesting phenomenon: the more people talk about Generative AI, the more interest we see in the integration of Rule Engines and traditional Machine Learning tools such as http://RuleLearner.com. It is especially important when our customers put these tools into the “Ever-Learning Loop” when the Rule Learner constantly learns new rules from the decisions produced by Rule Engine using previously discovered rules. You may use this simple cloud-based service https://saas.rulelearner.com/ to see how easy to learn rules from historical datasets. You will be able to discover classification rules based on your own labeled datasets without any downloads.

Solutions for Challenge “Soldier Payment Rules”

The DMCommunity’s Aug-2023 Challenge brought serious discussions at LinkedIn about the integrated use of SQL and Rule Engines. Instead of making generic statements about which technology is better, I prefer to answer this question for a concrete problem. My colleague Alex Mirtsyn has already provided a pure rules-based solution. As I was asked to provide a solution with OpenRules RuleDB, I extended Alex’s solution with access to a relational database directly from business rules. I will describe the resulting decision model in this post.  

Continue reading

Sanity Checkers for AI-based Decisions

“When it comes to AI, expecting perfection is not only unrealistic, it’s dangerous.
Responsible practitioners of machine learning and  AI always make sure
that there’s a plan in place in case the system produces the wrong output.
It’s a must-have AI safety net that checks the output,
filters it, and determines what to do with it.”
Cassie Kozyrkov, Chief Decision Scientist, Google

“When we attempt to automate complex tasks and build complex systems, we should expect imperfect performance. This is true for traditional complex systems and it’s even more painfully true for AI systems,” – wrote Cassie Kozyrkov. “A good reminder for all spheres in life is to expect mistakes whenever a task is difficult, complicated, or taking place at scale. Humans make mistakes and so do machines.” 

Like many practitioners who applied different decision intelligence technologies to real-world applications, I can confirm the importance of this statement. I also can share how we dealt with the validation of automatically made decisions in different complex decision-making applications.

Continue reading

Generative AI at DecisionCAMP

As the Chair of DecisionCAMP-2023, I published my notes from this major annual decision-management event. This year was dominated by the “huge elephant in our decision modeling kitchen”: Generative AI. Contrary to many other conferences that discuss this explosive technology in general, the Decision Management Community deals with very specific real-world problems and has a well-established standardized infrastructure for their practical solutions. So, we have good ideas where exactly to apply constantly advancing ChatGPT, LLMs, and other Generative AI tools.

Continue reading

DecisionCAMP-2023 starts on Sep 18

DecisionCAMP is the annual gathering devoted to Decision Intelligence technologies that help businesses build Intelligent Decision Services and integrate them into modern enterprise architectures. These technologies bring AI into the hands of business users. With LLM breaking all rules, this year camp will be especially interesting as many speakers will talk about the integrated us of Generative and Symbolic AI. I will again chair this important event and will present “Declarative Decision Modeling with Rule Solver” on Sep 19 at 9:00 AM EDT. Everybody may join the DecisionCAMP by registering for free. Link

Big Decision Tables

Decision tables are the most popular decision modeling constructs but they have a tendency to grow with time or to use huge arrays of data from the very beginning. When decision tables have tens and even hundreds of thousands of rules, their performance may go down. It becomes especially unacceptable when such big decision tables need to be executed a million times a day. This article describes how OpenRules deals with big decision tables executing even very large tables within milliseconds and giving its users a choice of where to keep and maintain their data: in Excel, in a CSV file, in a fixed-width file, or in a database. Link

Custom Template for Nested Loops

If you read attentively my latest post, you may notice this interesting table:

What does it do? It compares every unique pair (G1;G2) of elements of the array “Guests” using rules “SeatingForTwoGuests”. It is based on the newly introduced custom template “ActionNestedLoops” that our customers may find it quite useful.

Continue reading

Rules as Preferences (Miss Manners Advanced)

DMCommunity Challenge July-2023 deals with a rules-based decisioning problem when not all rules can be satisfied and thus should be considered as preferences. It offers an advanced version of “Miss Manners” (see OpenRules solution) with not equal numbers of males and females at each party. So, the seating arrangement “boy-girl-boy-girl and each guest has someone on the left or right with a common hobby” becomes not a Rule but a Preference. It makes the problem much more difficult to represent and solve especially if we want to find an optimal seating. In this post I will demonstrate how to build the corresponding business decision model using the latest version of OpenRules Rule Solver.

Continue reading

Composite Decision Variables

In real-world decision models, you may want to write business rules that refer to combinations of two or more individual decision variables called composite decision variables. For example, your business concept “Department” may have a decision variable “Manager” of the type “Employee” which is another business concept with such variables as “Name”, “Salary”, “Gender”, etc.

Continue reading

Declarative Decision Model “Flight Rebooking”

Rule Solver can be used to build a real declarative decision model for one of the most complex decision modeling challenges “Flight Rebooking” offered by DMCommunity.org: “A flight was cancelled, and we need to re-book passengers to other flights considering their frequent flyer status. miles, and seat availability“. Most of the submitted solutions were based on a procedural approach and used different implementations of a greedy algorithm where decision models concentrate on “HOW” to make flight assignments. We suggested and implemented a decision model that concentrate on Problem Definition (“WHAT”) instead of Problem Resolution. The complete model is described here. Link

Declarative Decision Model “Miss Manners”

This problem used to be one of the popular benchmarks for rule engines 20 years ago. And now DMCommunity.org brings it back to see how modern decision engines can represent and solve this problem today. I will demonstrate it in this post with the latest OpenRules Rule Solver.

Continue reading

Unconscious Thoughts

Today Yann LeGun tweeted: “Thought != Language” in response to this Einstein’s quote: “I rarely think in words at all. A thought comes, and I may try to express it in words afterwards.”

It reminded me Henri Poincaré whose book on how the inventor’s mind works I was lucky to read as a University student. I tried to google the topic and found this article: “Poincaré found that he would often struggle unsuccessfully with some mathematical problem, perhaps over days or weeks (to be fair, the problems he got stuck on were difficult, to say the least). Then, while not actually working on the problem at all, a possible solution would pop into his mind. And when he later checked carefully, the solution would almost always turn out to be correct.

How was this possible? Poincaré’s own suspicion was that his unconscious mind was churning through possible approaches to the problem “in the background”—and when an approach seemed aesthetically “right,” it might burst through into consciousness. Poincaré believed that this “unconscious thought” process was carried out by what might almost be a second self, prepared and energized by periods of conscious work, yet able to work away on the problem in hand entirely below the level of conscious awareness. Link

Pattern Matching in OpenRules Decision Tables

OpenRules allows non-technical users to easily compare different strings with certain values. Decision table conditions may use simple operators such as “Is”, “Is One Of”, “Starts With”, and “Contains”. There are also more powerful patterns matching operators such as “Like” and “Match”. In this post I will describe these useful operators.

Continue reading

Nested Attributes in OpenRules Glossary and Tests

In real-world decision models, our customers deal with complex business glossaries. In particular, it is quite common when one business concept refers to other business concept and it is not immediately clear how to define and use such references. I will explain how it’s supposed to be done in OpenRules. let’s consider a simple example “HelloNestedLocation” with the following glossary:

Continue reading

Nested Loops in OpenRules Decision Models

Iterating over collections (arrays) of decision variables is a frequent need in real-world decision models. For example, the following decision table defines if a company has high-paid employees:

The iteration here is defined by the [for each Employee in Employees] in the first row. The ACTION-BREAK in the column “ActionExecute” will force the iteration process to stop (break) when the very first high-paid employee is found.

Continue reading

Decision Model “Permit Eligibility”

In this post we describe an OpenRules decision model that addresses DMCommunity.org Mar-2023 Challenge “Permit Eligibility”. The Challenge asks to implement this rule: “An applicant is eligible for a resident permit if the applicant has lived at an address while married and in that time period, they have shared the same address at least 7 of the last 10 years.” There is already 2 DMN-based solutions published by Bruce Silver who explained that this simply sounding rule requires to address several not so simple considerations. There is also an attempt to create a decision model with ChatGPT, which I analyzed and converted to a working Java code. I asked an OpenRules developer Alex Mirtsyn to look at this problem, and together we came up with a solution described in this post.

Continue reading

Helping ChatGPT to Build a Working Decision Model

These days only lazy people don’t write about ChatGPT and large language models (LLM). Vendors are trying to be the first to announce a ChatGPT integration even when they don’t have anything serious to show. I’ve also written about it: see “ChatGPT Producing Simple Decision Models and “LLM and Decision Modeling“. This weekend I decided to help ChatGPT (that is now at GPT-4) to address the Challenge “Permit Eligibility” published by DMCommunity.org. It has a simple rule: “An applicant is eligible for a resident permit if the applicant has lived at an address while married and in that time period, they have shared the same address at least 7 of the last 10 years.” But this rule contains several tricky assumptions – no wonder, DM vendors are not in a hurry to submit a solution.

Continue reading

Happy 20th Birthday, OpenRules!

Happy20

OpenRules, Inc. is now 20 years old! Our team met this anniversary in the best possible way – we did not notice it! We are so busy with adding new powerful capabilities to OpenRules products and supporting our real-world customers. I described a brief history of our company and our development plans 5 years ago. Since then we overperformed by introducing OpenRules Decision Manager which became one of the fastest and user-friendly Decision Intelligence Platform available on the market today. More and more major corporations worldwide choose OpenRules for intelligent business automation. Stay tuned: 20-year-old OpenRules with proven records and unique R&D capabilities is working on new breakthroughs.

OpenRules + Apache Spark: 6M Decisions per Second!

Our customers frequently select OpenRules for their decision management needs because of two important factors: 1) Ease of Use; and 2) Performance and Scalability. We have large customers who use OpenRules to create very complex decision models capable to handle large payloads – see an example with 17M records.

Recently we received a request to create a decision service capable to handle 1B records. Luckily this large corporation already uses Apache Spark for scalable computing as thousands of other companies, including 80% of the Fortune 500.

Within a few days, our team built a POC that put an OpenRules-based decision service inside an Apache Spark application. The performance results were really impressive: the total execution time for 1 billion records was under 7 minutes averaging 6 million decisions per second! Read more in the new manual “OpenRules-Spark Integration“.

When we converted a POC into a real decision service that handles more than 30,000 complex rules, we received the following execution results:

We Know More Than We Can Tell

Living through the ChatGPT boom, it is interesting to read this article “Is ChatGPT Aware?“:

Polanyi’s paradox, named in honor of the philosopher and polymath Michael Polanyi, states that “we know more than we can tell.” He means that most of our knowledge is tacit and cannot be easily formalized with words. In The Tacit Dimension, Polanyi gives the example of recognizing a face without being able to tell what facial features humans use to make such a distinction.

It brings back some of my related thoughts on “Business Rules and Tacit Knowledge” from 7 years ago. It described how “Human Learning” and “Decision Modeling” were moving in opposite directions. Will we see a change?

LLM and Decision Modeling

ChatGPT has the public excited, but the experts are reserved in their praise. Thinking about a practical application of the Large Language Models (LLM) to decision modeling this quote from LeCun caught my attention:

When we create practical decision models we usually deal with an even more limited “universe”. A decision model “manipulates the state of the decision variables” within a very specific business domain (insurance, loan origination, claims, medical guidelines, etc.) complemented by generic concepts well covered by such relatively small standards as DMN and SBVR. Decision modeling universe is really “limited, discrete, deterministic, and fully observable”.

So, being cautious about the current ChatGPT’s hype, we may be more optimistic about the next breakthrough in Decision Modeling. I suspect the answers of experts to my DecisionCAMP-2022 question “Are our Rule Engines Smart Enough?” would be different today.

OpenRules is Shining in the Serverless World

When 3.5 years ago we introduced a new OpenRules Decision Manager, it was specifically designed as a Decision Intelligence Framework for creation, debugging, and management of Superfast Decision Microservices for that time brand new Serverless world. Over the last 3 years we witnessed how major corporate customers migrated their rules-based applications deployed on the large web servers to OpenRules. Over the last few weeks we saw how several new customers were really surprised that they don’t need anymore heavy lifting for building and managing their rules-based light-weighted microservices. In this brief post I share a working sample that demonstrates how easy it is to build, test, debug, deploy, and run RESTful decision services with OpenRules using any on-cloud or on-premise infrastructure.

Continue reading

OpenRules 9.1.0 with Friendly Iterations

OpenRules Release 9.1.0 essentially simplifies how our customers iterate over collections of business objects. Now you may describe your loops in one decision table, immediately see iteration nodes in Decision Diagrams, and analyze the content of each iteration while you are looping over collections inside OpenRules Debugger. Here is a simple loop over an array of Players that accumulates their scores to calculate Team Score:

If in the previous releases every iteration required at least two tables, in Release 9.1.0 one intuitive table is sufficient.

Continue reading

Christmas Model in JavaSolver

DMCommunity.org offered the Dec-2022 Challenge “Christmas Model” created with ChatGPT. This nice model defines a set of people, a set of gifts, the happiness level, and costs of each gift. The objective is to maximize the total happiness, subject to the budget constraint that the total cost of the gifts must be less than or equal to the budget, and the constraint that each person can only receive one gift. As a holiday exercise, I tried to implement it using a free and open-sourced JavaSolver.com. Here is my solution:

Continue reading

Happy Holidays

The Holidays season is upon us, and OpenRules team wants to express our sincere appreciation to all our customers and colleagues around the world. In 2022 we made very serious enhancements to OpenRules products and apparently our customers like them. We promise to make OpenRules even more powerful and user-friendlier in 2023. We wish you and your families all the best in the coming New Year!

New Major Release OpenRules-9: Happy Thanksgiving!

Our team worked hard to prepare a nice Thanksgiving gift for our customers, and today I am happy to announce general availability of OpenRules-9! This major new release comes with a new implementation of our Graphical Explorer and Debugger as a foundation for the current and future OpenRules Interactive Decision Modeling Environment oriented to business users. Watch new Intro Video, read Release Notes 9.0.0, and evaluate it for free. Happy Thanksgiving!

Continue reading

Extensible DMN

DMN is a modeling language and notation for the precise specification of business decisions and business rules using well-defined tabular formats. This popular standard even includes an interchangeable XML format. However, contrary to XML (eXtensible Markup Language), DMN can hardly be called extensible. Today’s DMN allows a user to define complex problem-specific decision modeling constructs using powerful FEEL boxed expressions (that still are being criticized as too close to programming).  But DMN doesn’t specify means for building simple domain-specific decision tables that look very natural for business users and hide complex implementation details that actually may require programming.

Continue reading

Using a Decision Model for Orchestration of Decision Models

OpenRules empowers business users with an ability to assemble new decision services by orchestrating existing decision services independently of how they were built and deployed. The service orchestration logic is a business logic too, so it’s only natural to apply the decision modeling approach to orchestration. OpenRules allows business analysts to create a special orchestration decision model that describes under which conditions such services should be invoked and how to react to their execution results. Link

Decision Modeling: Declarative vs Procedural

The ultimate objective of Business Decision Modeling:

A business analyst (subject matter expert) defines a business problem, and a smart decision engine solves the problem by finding the best possible decision.

Declarative decision modeling assumes that a business user specifies WHAT TO DO and a decision engine figures out HOW TO DO it. This is quite opposite to the Procedural approach frequently used in traditional programming.

Continue reading

Business Rules and SQL: Competitors or Partners?

IEEE Spectrum just published the article “The Rise of SQL” about the recent SQL’s comeback caused not only by the ever-increasing use of databases, but also by the use of SQL within the fields of data science, machine learning, big data, and streaming systems. While traditionally, Business Rule Engines did not communicate with databases directly, our customers frequently prefer to use SQL-like business rules to access their data when it is necessary following their business logic. At the same time, they want to preserve the power of SQL dealing with databases of any complexity. Two years ago OpenRules introduced a special product “Rule DB” that does exactly this by empowering Excel-based business rules with a run-time RDBMS communication mechanism. In this post we will explain how to migrate an SQL query to OpenRules.

Continue reading

Decision Models for Medical Claim Processing

DMCommunity.org Challenge May-2022 still has no submitted solutions. I knew that the problem is not as simple as it sounds because we, at OpenRules, have quite a few claim processing customers, whose decision models address similar and much more difficult problems. When I tried to create a decision model for this challenge, I quickly got a solution that still produced these errors while processing a test-claim:

[E71.313] cannot be reported together with [E72.3]
[E72.3] cannot be reported together with [E71.313]

But the challenge specifically required not to produce duplicate errors. Trying several decision modeling approaches, I built a few “tried-and-failed” decision models before I came up with two solutions which I feel comfortable enough to share here.

Continue reading

Fast Live Support

OpenRules, Inc. offers fast support online sessions to help you to start working with OpenRules or to address your technical problem.  Upon your request, an OpenRules expert will send you an invite to a remote-support session addressing your particular problem by studying it together with you on your own computer. Anytime you also may order a paid fast-support service that costs only $60.00 USD for up to a 1 hour support session. Link

How Decision Tables work with Big Datasets

Decision tables is the most popular mechanism for representation of business logic – no wonder they play the major role in the DMN standard. However, when it comes to analyzing large amount of data, standard decision tables may not be the best way to do it. In this post, I’ll describe a much better approach implemented in OpenRules.

Continue reading

Decision Services Handling Large Payloads

On Apr 20, 2022 I shared recent OpenRules experience building decision services capable to handle huge payloads with sound performance. He described how putting a decision service into a cloud-based environment supporting parallel execution allowed a large US corporation improve the performance 100 times! Watch Recording

OpenRules Debuggers

OpenRules Decision Manager provides two Decision Model Debuggers:

While the graphical debugger is the most user friendly debugger, it is currently available only under Windows and Linux. The Command Line Debugger is available under Windows, Mac, and Linux. Continue reading

RESTful Decision Services: Error Handling with OpenRules

Usually input validation is an essential part of business decision models created by OpenRules customers. They add rules that validate input decision variables for null values, empty strings, impossible values like Feb 29 during a non-leap year, and many other problem-specific input errors. These custom error reporting mechanisms usually generate lists of errors with explanations in the JSON response for RESTful decision services. However, while input errors are diagnosed by the decision service, its return code is usually 200 meaning it was a “good” request. In this post I will describe how your service may return code 400 for bad requests.

Continue reading