21. A computer readable storage medium containing a program which, when executed, performs an operation 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; grouping the functions required to evaluate the conditional statement into two or more groupings; selecting, from the one or more rule engines determined to include the required functions, a rule engine to process each grouping of required functions; and executing the selected rule engines to produce an output, wherein each selected rule engine processes the rule according to the corresponding grouping of required functions.
22. The computer readable medium of claim 21 , wherein executing the selected rule engines to produce an output comprises: transforming each grouping of required functions into an executable sub-rule; ordering the executable sub-rules in a sequence so that the output resulting from processing each sub-rule is used as an input for processing the next sub-rule, wherein the output resulting from processing the final sub-rule is the same as the output resulting from processing the abstract rule as a whole by a single rule engine; processing each executable sub-rule in the corresponding rule engine in accordance with the sequence; passing the output resulting from processing each executable sub-rule as an input for processing the next executable sub-rule; and if the conditional statement is resolved to true for the output resulting from processing the last executable sub-rule, returning the particular recommendation.