1. A computer-implemented method of automatically executing a set of rules, the method comprising the steps of: determining if there are reciprocal dependencies between any two rules in the set of rules in a rule based expert system; determining a level of dependency of each rule in the set of rules in the rule based expert system; recursively removing the rule with the lowest level of dependency until the set is empty in the rule based expert system; and determining a firing priority for the set of rules using the rule based expert system.