Rules are used as a programming paradigm in several application domains, in
cluding active databases, planning, expert systems, and billing. For exampl
e, active databases have rules that execute upon the occurrence of particul
ar events if specified condition predicates are satisfied. It is often the
case that multiple rules are fireable when a particular event occurs. We pr
opose a declarative mechanism to control the interaction and execution of m
ultiple rules. The mechanism is based upon logical meta-rules that can expr
ess various types of relationships between rules. The meta-rules allow us t
o reason statically about the rule behavior. We can determine, in polynomia
l time, whether a rule will never execute, whether two rules can ever be ex
ecuted together, and whether a rule system is guaranteed to have a unique e
xecution set for all possible rules that become fireable.
In this paper, we illustrate our techniques using rules in an active databa
se. A system based upon the meta-rules and the static analysis presented he
re has been found to be of value in a billing application at AT&T to contro
l interactions between discount plans. (C) 1999 Academic Press.