16. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer, the one or more programs comprising instructions for: program code for identifying a predefined pattern in a first document; extracting a first fact having an attribute and a value from the first document based on the predefined pattern; retrieving a second document that contains the attribute and the value of the first fact; identifying in the second document a contextual pattern associated with the attribute and value of the first fact; extracting a second fact from the second document using the contextual pattern; and storing the first fact and the second fact in a fact repository.
16. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer, the one or more programs comprising instructions for: program code for identifying a predefined pattern in a first document; extracting a first fact having an attribute and a value from the first document based on the predefined pattern; retrieving a second document that contains the attribute and the value of the first fact; identifying in the second document a contextual pattern associated with the attribute and value of the first fact; extracting a second fact from the second document using the contextual pattern; and storing the first fact and the second fact in a fact repository. 21. The non-transitory computer readable storage medium of claim 16 , wherein the computer code for retrieving the second document comprises computer code for querying a search engine for a document containing the attribute and the value of the first fact.