1. A computer-implemented method 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, and 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 one or more functions required to evaluate whether a rule predicate of the conditional statement is satisfied; determining one or more rule engines of a plurality of rule engines that 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, wherein selecting a rule engine to process the abstract rule comprises determining the rule engine having a lowest cost for processing the required functions; and executing the selected rule engine to process the abstract rule and produce an output.