"Did you know that Mary is pregnant?" said John to Paul. "No, but thanks for the information." Oops, by asking this question, John informs Paul about a new fact. The problem of how to prove the possession of information without giving it away can be solved with a protocol and encryption technology. Research on this topic has recently won a prize in the Netherlands. As a jury member I wondered whether this research could help me in solving an issue that I encountered earlier.
This issue has its source in the following question from a customer: "If I have secret rules, can you verify to make sure that my (non secret) business rules do not conflict with the secret rules?" Eventually, this question resulted in the issue: "Are secret rules business rules?"
Suppose someone has to add new rules to a rule collection that contains both known and unknown rules. For example, he enters the following rule:
An unmarried person is eligible for a marriage.
Now, suppose we have a program that verifies whether this rule does not conflict with any of our secret rules. If this verification program reports that there is a (secret) rule that conflicts with our example rule, we can readily conclude that the secret rule states that in some or all cases persons who are unmarried are not eligible for a marriage. What can this rule be? A gay person? Is there any way to hide the secret rule in this case? Yes, but only if you are not going to tell that there was a conflict!
It is possible to verify whether a set of rules contain conflicts, using automated verification techniques. If we use some secure transactions, we can even verify known rules and secret rules together. But if we communicate the result of the verification process to the user we cannot avoid revealing information about the secret rule(s).
So, in a normal business environment, the existence of secret rules is bound to cause problems.
"Rules must be explicit" is a statement of the third article of the Business Rules Manifesto. The reasons to make rules explicit are also given in this document:
- ...so that they can be validated for correctness by business people. (5.1)
- ...so that they can be verified against each other for consistency. (5.2)
- ...so they can be readily redeployed to new hardware/software platforms. (10.3)
I cannot validate or verify a secret rule. I cannot communicate a secret rule, and a secret rule does not conform to principle 4.2 of the Business Rules Manifesto:
4.2. If something cannot be expressed, then it is not a rule.
So the question whether a secret rule is a business rule should be answered with 'no'. A secret rule is not a business rule. Of course it is a matter of perspective, because there should be at least one person in the world that knows about the rule that is a secret rule for other people. For this person, the rule may be a business rule.
 Business Rules Group, Business Rules Manifesto -- the Principles of Rule Independence, Ver. 2.0 (Nov. 2003), URL: http://www.businessrulesgroup.org/brmanifesto.htm
# # #