A method and system for inferring facts in parallel in a multiprocessor computing environment is provided. An inference system infers facts by applying rules to a collection of existing facts. For each existing fact, the inference system schedules a thread to apply the rules to that existing fact. As a thread infers a new fact (i.e., one that is not already in the collection of facts), the thread adds that inferred fact to the collection of facts. When a thread adds a new fact to the collection, the thread also applies the rules to that new fact. After the threads complete execution, the inference system may apply the rules to the facts of the collection, including the newly inferred facts, by again launching a thread for each fact to apply the rules to that fact. The inference system performs this processing iteratively until a termination condition is satisfied.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method performed in multi-processor computer system for making inferences by applying rules to facts, the method comprising: for each of a plurality of facts, scheduling a thread for applying the rules to that fact; and for each thread scheduled for a fact, executing by a processor of the multi-processor computer system that thread wherein that thread applies rules to the fact of that thread in an attempt to make an inference based on that fact, wherein threads are executed in parallel by the processors of the multi-processor computer system. 2. The method of claim 1 wherein when a new fact is inferred from applying the rules to the facts, applying the rules to the new fact in an attempt to make an inference from the new fact. 3. The method of claim 2 wherein the rules are applied to the new fact in a new thread is scheduled for the new fact. 4. The method of claim 2 wherein the rules are applied to the new fact in the same thread that inferred the new fact. 5. The method of claim 1 wherein the facts form a collection of facts and further comprising when a new fact is inferred from applying the rules to the facts, adding the new fact to the collection facts and applying the rules to the facts in the collection until a termination condition is satisfied. 6. The method of claim 1 wherein when the rules include single condition rules and multiple condition rules, the single condition rules are applied to the facts before the multiple condition rules are applied to the facts. 7. The method of claim 6 wherein the multiple condition rules are applied iteratively in an attempt to make inferences based on any newly inferred facts. 8. The method of claim 7 wherein the rules are applied iteratively until no facts are newly inferred during an iteration. 9. The method of claim 1 wherein a fact is represented as a subject, a predicate, and an object. 10. A computer-readable storage medium containing computer-execution instructions for controlling a multi-processor computer system to make inferences, the computer-executable instructions comprising instructions that: schedule a thread for each fact for applying the rules to that fact; and launch scheduled threads for execution by processors of the multi-processor computer system wherein the execution of each thread applies rules to the fact of that thread in an attempt to make an inference based on that fact. 11. The computer-readable storage medium of claim 10 further comprising instructions that when a new fact is inferred from applying the rules to the facts, apply the rules to the new fact in an attempt to make an inference from the new fact. 12. The computer-readable storage medium of claim 11 wherein the rules are applied to the new fact in a new thread scheduled for the new fact. 13. The computer-readable storage medium of claim 11 wherein the rules are applied to the new fact in the same thread that inferred the new fact. 14. The computer-readable storage medium of claim 10 further comprising instructions that when the rules include single condition rules and multiple condition rules, apply the single condition rules to the facts before the multiple condition rules are applied to the facts. 15. The computer-readable storage medium of claim 10 wherein the multiple condition rules are applied iteratively in an attempt to make inferences based on any newly inferred facts. 16. The computer-readable storage medium of claim 10 wherein a fact is represented as a subject, a predicate, and an object. 17. A multi-processor system for making inferences by applying rules to facts that launches a thread for each fact so that each thread applies rules to the fact of that thread in an attempt to make an inference based on that fact. 18. The multi-processor system of claim 17 wherein threads are executed in parallel by processors of the multi-processor system 19. The multi-processor system of claim 17 that further, when the rules include single condition rules and multiple condition rules, applies the single condition rules to the facts before the multiple condition rules are applied to the facts. 20. The multi-processor system of claim 19 wherein the multi-processor system launches a thread for a fact to apply the single condition rules to that fact and launches a thread for that fact to apply the multiple condition rules to that fact.