1. A computer-implemented method for extracting facts, the method comprising: at a computer system including one or more processors and memory storing one or more programs, the one or more processors executing the one or more programs to perform the operations of: 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 of the computer system.