Sunday, June 8, 2014

Rule Engines - Software taking decisions

Think how you take your decisions on your life. What criteria do you use to select your work, pets, house or a school for your children? You know that some decisions are more important than others, the rest of your life may depend of some of them. You don't overlook the key decisions.
Would you like to have the information to take better decisions? Decisions are based on facts and previous experience. Are there some rules that can guide you to get what you want?

Automatizing Decisions


A system may have the capacity to take decision using its knowledge base. Their knowledge base is nothing more than conditions and actions. If conditions are met, then the system decides actions to take.
Moreover, the conditions and actions are not randomly selected, there are specific domain experts who have the knowledge to recommend  the best decision depending of the facts matched. A system also has the ability to automate decisions, experts only determine under what conditions the company has to take the actions. In other words, if the conditions are true, the actions are executed.

Rule Engine


The Rule Engine is who examines the rules by the inference engine, say, is a software that helps manage system rules.
The rule engine is code that works separately from the code implementation and has the possibility of change without having to ask for help from programmer. Domain experts can apply new rules and make changes whenever they want.
A standard rule engine may include: A Business Rule Repository that is a database to store the business rules, a Rule Engine Execution Code that has the currently programmed code to enforce the rules and a Business Rule Editor that is an intuitive user interface to define, edit, document and design rules.

Business users can define rules


With verbalization, user can define the rules using their own language. Naturally, they define the conditions and actions to be taken without changes in the code program, separating the programmer work and definitions of business analysts.
The verbalization can be asserted with different sentences, many of them can mean the same, focusing in the expressivity, clarity and formality.

Varieties of Rule Engines


There are many types of Rule Engines, these can have inference rules or event action condition rules, use Java code, C++ or others, be Open Source or not. Some of them have more features like decision trees, decision tables, rule flows, version deploys, simulations, reports, etc.


The rule engines helps you to decide "what to do" and not "how to do", it separate the domain objects with the logic that is in the rules, minimizing changes in the future, also provides a good design application when it is used adequately.

No comments:

Post a Comment