Business Rules: From JRules to Data Mining

Remember the "business rules" craze of the early 2000s? They were popular especially with mortgage lenders. An example ILOG JRules decision table for mortgage lending.

Although sometimes imbued with some kind of magic reasoning (e.g. backtracking), business rules engines were really just simplistic decision trees under the covers. The real main advantage of a business rules engine at the time was that it exposed business logic in a form digestable and specifiable by business analysts and decision makers, as opposed to locking it up in Java or C++.

But now we are in the era of machine learning, including data mining. Instead of hand-crafting business rules based on a combination of manual analysis and gut instict (and probably rubber-stamped by some hapless VP), now business rules are determined automatically by machine learning. Except we don't call them business rules anymore; we call them decision trees. And instead of using a "business rules engine" like JRules we use a machine learning system like R, Weka, or Spark MLlib. Instead of the Rete algorithm (which is really only a performance optimization of a dead-simple rule-firing algorithm), the algorithms we use today go by names like ID3, CART, and C4.5.

By and large, those employing machine learning decision tree generation algorithms are not congizant of the business rules heritage. One exception is the Open Rules open-source rules engine, which in fact includes a module for learning business rules. Even JRules (now called IBM Operational Decision Manager) doesn't have any machine learning decision tree generation.

In reality, executing the predict() function on a machine learning library like Spark MLlib or SciKitLearn is the functional equivalent of executing the Rete algorithm in JRules, though likely without the performance optimizations that Rete affords.

This new world of machine learning opens up a whole new world, as decision trees are just a small part of machine learning. We also have regression and neural networks at our easy disposal now, for example. Linear regression, neural networks, and Bayesian networks open up the world of fractional probabilities and contributions, what might have been called fuzzy logic in the era of business rules and before. Fuzzy logic is something that was proposed for JRules but never implemented.

Two final advantage of today's world: getting skills training on machine learning is free from several available MOOCs, whereas getting skills training on business rules engines in that era cost thousands of dollars from engine vendors. And machine learning libraries today are free and open source compared to proprietary commercial business rules engines of yesteryear.