1. A computer-implemented method of selecting a rule engine for processing an abstract rule, comprising: receiving an abstract rule having a conditional statement and a consequential statement; wherein the consequential statement defines a particular recommendation that is returned when the conditional statement is satisfied; wherein the conditional statement and the consequential statement are defined using logical field definitions defined in an abstraction model that models underlying physical data in a manner making a schema of the physical data transparent to a user of the abstraction model; determining the functions required to evaluate the conditional statement; determining which one or more rule engines of a plurality of rule engines include the required functions; selecting, from the one or more rule engines determined to include the required functions, a rule engine to process the abstract rule; and executing the selected rule engine to process the rule and produce an output.