24. A computer-implemented method, comprising: storing a knowledge base in a data store, the knowledge base comprising first knowledge represented in a structured, machine-readable format; storing a plurality of generators in the data store, each generator including a fact pattern representing one or more characteristics of facts that can be generated by that generator, and code for generating the facts; using one or more computing devices, generating second knowledge for inclusion in the knowledge base by inferring the second knowledge from the first knowledge using a first generator of the plurality of generators; using one or more computing devices, determining that the second knowledge is not semantically contradicted by other knowledge in the knowledge base; using the one or more computing devices, storing the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred; using the one or more computing devices, generating a first query, a second query, and a third query, including translating one or more corresponding natural language questions; using the one or more computing devices, responding to the first query using the first knowledge; using the one or more computing devices, responding to the second query using the second knowledge; using the one or more computing devices, identifying a second generator of the plurality of generators for which the included fact pattern is compatible with the third query; using the one or more computing devices, dynamically generating third knowledge not represented in the knowledge base in response to the third query by inferring the third knowledge from one or both of the first knowledge and the second knowledge using the second generator; storing the third knowledge in a cache; using the one or more computing devices, retrieving the third knowledge from the cache as part of recursive processing of the third query; using the one or more computing devices, responding to the third query using the third knowledge; using the one or more computing devices, determining that the first knowledge from which the second knowledge was inferred is no longer valid; and using the one or more computing devices, removing the second knowledge from the knowledge base using the related knowledge information.
24. A computer-implemented method, comprising: storing a knowledge base in a data store, the knowledge base comprising first knowledge represented in a structured, machine-readable format; storing a plurality of generators in the data store, each generator including a fact pattern representing one or more characteristics of facts that can be generated by that generator, and code for generating the facts; using one or more computing devices, generating second knowledge for inclusion in the knowledge base by inferring the second knowledge from the first knowledge using a first generator of the plurality of generators; using one or more computing devices, determining that the second knowledge is not semantically contradicted by other knowledge in the knowledge base; using the one or more computing devices, storing the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred; using the one or more computing devices, generating a first query, a second query, and a third query, including translating one or more corresponding natural language questions; using the one or more computing devices, responding to the first query using the first knowledge; using the one or more computing devices, responding to the second query using the second knowledge; using the one or more computing devices, identifying a second generator of the plurality of generators for which the included fact pattern is compatible with the third query; using the one or more computing devices, dynamically generating third knowledge not represented in the knowledge base in response to the third query by inferring the third knowledge from one or both of the first knowledge and the second knowledge using the second generator; storing the third knowledge in a cache; using the one or more computing devices, retrieving the third knowledge from the cache as part of recursive processing of the third query; using the one or more computing devices, responding to the third query using the third knowledge; using the one or more computing devices, determining that the first knowledge from which the second knowledge was inferred is no longer valid; and using the one or more computing devices, removing the second knowledge from the knowledge base using the related knowledge information. 27. The method of claim 24 , wherein the code for generating the facts included in the first generator includes an executable query, and wherein generating the second knowledge includes determining that at least part of a matching query matches the fact pattern included in the first generator, executing the executable query using values derived from the matching query as input to the executable query to generate one or more results, and deriving the second knowledge from the one or more results.