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 readingFree 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 readingNew 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 readingOpenRules 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 readingSanity 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 readingGenerative 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 readingSolving DMCommunity Challenge “Coins”
This weekend I tried to play with the latest DMCommunity Challenge that asks: “Suppose you need to pay 1 Euro. In how many different ways you can do it via 1c, 2c, 5c, 10c, 20c, 50c and 1 Euro coins?” It sounds as a very simple problem for any constraint solver.
Continue readingDeclarative Decision Modeling with OpenRules Solver
DecisionCAMP-2023 is now a history. As the Chair of this popular annual decision-management event, I published my fresh impressions after 3 days of interesting presentations and discussions. In this post I will describe the key ideas behind OpenRules presentation “Declarative Decision Modeling with Rule Solver”. You may watch its recording.
Continue readingDecisionCAMP-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
OpenRules Award
September 3, 2023 — OPENRULES, INC. has been selected for the 2023 Best in the Software company category by the Monroe Township Award Program. Press Release
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 readingRules 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 readingComposite 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 readingDeclarative 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 readingSudoku Decision Model
Everybody is familiar with Sudoku: you need to fill a 9×9 grid in a such way that each column, each row, and each of the nine 3×3 boxes (also called blocks) contains the digits from 1 to 9, only one time each. In this post I’ll show how easy to build a Sudoku decision model using the latest OpenRules Rule Solver.
Continue readingUnconscious 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 readingNested 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 readingNested 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 readingDecision 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 readingHelping 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 readingHappy 20th Birthday, OpenRules!
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 readingOpenRules 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 readingChatGPT Producing Simple Decision Models
I asked ChatGPT to generate a decision model for a simple Vacation Days problem. Here are two results:
Continue readingChristmas 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 readingHappy 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 readingExtensible 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 readingUsing 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 readingBusiness 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 readingDealing with Nested Loops
The DMCommunity Challenge July-2022 “Team Performance” gives BR&DM vendors a good opportunity to demonstrate how to handle nested loops. I will describe how it can be done with OpenRules Decision Manager.
Continue readingOpenRules 8.5.3
OpenRules Decision Manager Release 8.5.3 adds several advanced features such as simplified iterations over collections of objects, new operators, multiple rules in CSV-based decision tables, upgrades dependencies, and more. See Release Notes 8.5.3
@BBC-2022
On June 30 I presented “How Business Analysts Represent and Debug Complex Decisioning Logic” at BBC-2022 (Building Business Capability). Ron Ross tweeted: “Provocative (and scary) insight of the day at BBC Conference via @Jacob_OpenRules” and posted this photo:
Continue readingDecision 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 readingFast 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 readingDecision 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:
- Graphical Debugger included in OpenRules Explorer
- Command Line Debugger described in this post.
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
Handling Large Payloads with OpenRules-based AWS Lambda
I’ll share our recent real-world experience building decision services capable to handle huge payloads with sound performance. I will describe how putting a decision service into a cloud-based environment supporting parallel execution allowed us to improve the performance 100 times!
Continue readingRESTful 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