Systems, methods and mediums are described for processing rules and associated bags of facts generated by an application in communication with a processing engine, database and rule engine that process the bags of facts in view of the rules and generate one or more rule-dependent responses to the application which performs one or more work flows based on the responses. The rule engine may apply forward-chaining, backward-chaining or a combination of forward-chaining and backward-chaining to process the rules and facts. Numerous novel applications that work in conjunction with the processing engine, database and rule engine are also described.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A non-transitory computer readable storage medium comprising instructions for performing a function of an application that, when executed on a computing device, cause the computing device to at least: receive input to the application regarding the function from a user, one or more other sources or a combination of the user and the one or more other sources; determine one or more rules to apply to the function and a bag of facts associated with the one or more rules based on the input, wherein the bag of facts represents a current process state for which data within the bag of facts is true for the one or more rules; send a message to a rule engine containing the one or more rules and the bag of facts together; process the one or more rules and the bag of facts within the rule engine without requesting additional rules or additional data for the one or more rules from any source during the current process state to develop a rule-dependent response associated with the function, wherein such processing includes combining a forward-chaining rule with a backward-chaining rule by creating a condition within the forward-chaining rule that contains a backward-chaining query; send the rule-dependent response to the application; and perform one or more work flows within the application based on the rule-dependent response that result in performance of the function. 2. A non-transitory computer readable storage medium comprising instructions for combining a backward-chaining rule with a forward-chaining rule within a rule engine that, when executed on a computing device, cause the computing device to at least: utilize a fact inferred from the forward-chaining rule as a goal for the backward-chaining rule, unless the forward-chaining rule contains a condition that depends on negation of another forward-chaining inference, in which case execution of the forward-chaining rule is suspended; record the dependency of the rule-predicate for the problematic fact in a table; and during execution of the forward-chaining rule, skip to the next untried fact to select a new rule to execute. 3. A non-transitory computer readable storage medium comprising instructions for performing a function of an application that, when executed on a computing device, cause the computing device to at least: receive input to the application regarding the function from a user, one or more other sources or a combination of the user and the one or more other sources; determine one or more rules to apply to the function and a bag of facts associated with the one or more rules based on the input, wherein the bag of facts represents a current process state for which data within the bag of facts is true for the one or more rules; send a message to a rule engine containing the one or more rules and the bag of facts together; process the one or more rules and the bag of facts within the rule engine without requesting additional rules or additional data for the one or more rules from any source during the current process state to develop a rule-dependent response associated with the function, wherein such processing includes combining a backward-chaining rule with a forward-chaining rule by utilizing a fact inferred from the forward-chaining rule as a goal for the backward-chaining rule, unless the forward-chaining rule contains a condition that depends on negation of another forward-chaining inference, in which case execution of the forward-chaining rule is suspended, the dependency of the rule-predicate for the problematic fact is recorded in a table, and execution of the forward-chaining rule skips to the next untried fact to select a new rule to execute; send the rule-dependent response to the application; and perform one or more work flows within the application based on the rule-dependent response that result in performance of the function.