Verification Checks

Circular reasoning analysis Search for circular references in rules, e.g., find a case in two or more rules where an identifier[1] is both assigned and referenced.  Circularity may lead to a deadlock in the reasoning process.
Contradictory chain analysis Search for contradictions between rules, e.g., find a case where an identifier is assigned a different value in two different rules.  Contradictions may lead to unexpected results when priorities or rules change, or when new rules are added.
Contradictory condition analysis Search for rules with conditions that can never be true because the conditions are contradictory.
Self-contradiction analysis Search for rules that are internally inconsistent.
Range completeness analysis Search for incomplete usage of 'ranged' identifiers.
Value completeness analysis Search for incomplete usage of 'enumerated' identifiers.
Constraint violation analysis Search for incorrect usage of 'constrained' identifiers.
Unused conclusion analysis Search for rules whose actions are never utilized.  This check can only be performed if the required input and output of the ruleset (system) are known.
Unreachable goal analysis Search for rules whose conditions can never be evaluated.  This check can only be performed if the required input and output of the ruleset (system) are known.
Obsolescence analysis Search for constructs in the rulebase that either are never used or have no impact.
Redundancy analysis Search for duplications and subsumptions in condition and action parts between rules.

Notes

[1]  An 'identifier' is "something that identifies a thing."  There are many other words in use for 'identifier' -- such as 'attribute,' 'variable,' or 'term.'  We have used the word 'identifier' because it is independent of a particular paradigm.  The word 'attribute,' for example, is typically used in the context of programming.    return to article