Practical people know that one of the most important property of a business rule is its ability to be violated. Here are a few examples:
1) In a wealth management system, business rules such as “Technology sector inside a client portfolio should not exceed 17.5 %” are most likely violated during the trading day as technology stock prices constantly fluctuate.
2) Even such hard rule as “A technician cannot serve two different customers at the same time” in reality still may be violated. For example, a scheduler may assign a technician to serve two different customers between 9:00 and 11:00 even if officially each job requires not 60 but 75 minutes. Why? Because a scheduler knows that these two customers live nearby, and an experienced technician still will be able to complete both jobs within a 2-hours window.
A practical decision support system should also be able to make similar decisions. So, instead of trying to satisfy all rules it is better to assign certain weights (importance) to some rules, setup violation limits, and try to minimize the total weighted rules violation.
Now-days, I can see that more and more of our customers look for such an intelligence in their systems. It seems as a natural trend: as custom decision management systems become more mature, they should become more knowledgeable and more flexible. It is quite similar to a rookie employee who gains real world experience over time. I usually redirect OpenRules customers to this 2009 presentation. It includes an interesting example of how to deal with a notorious rule engine benchmark “Miss Manners” when input data is not what is usually expected.
To make this presentation available to more practitioners, I decided to upload it to the SlideShare. Hopefully you will find it useful if your decision support application has to deal with hard and soft rules. If you have any questions do not hesitate to send a request to email@example.com or directly to me at firstname.lastname@example.org – I really like to deal with such problems.
P.S. If you look for a deeper understanding of how CP deals with these problems, you may look at the presentation “Using Hard and Soft Rules to Define and Solve Optimization Problems” presented by Prof. Barry O’Sullivan and me at BRForum in Nov-2009.