On the design and evaluation of rule-based systems