9. 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, responding to a first query using the second knowledge, the first query having been received subsequent to storage of the second knowledge in the knowledge base; 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 a second query; using the one or more computing devices, dynamically generating third knowledge not represented in the knowledge base in response to the second query by inferring the third knowledge from 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 second query; using the one or more computing devices, responding to the second 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.
9. 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, responding to a first query using the second knowledge, the first query having been received subsequent to storage of the second knowledge in the knowledge base; 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 a second query; using the one or more computing devices, dynamically generating third knowledge not represented in the knowledge base in response to the second query by inferring the third knowledge from 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 second query; using the one or more computing devices, responding to the second 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. 16. The method of claim 9 , wherein determining that the first knowledge is no longer valid includes determining that a first knowledge base fact corresponding to the first knowledge has changed state from true to false, and wherein removing the second knowledge from the knowledge base includes identifying a second knowledge base fact corresponding to the second knowledge using a related facts table corresponding to the second knowledge base fact, the related facts table representing the related knowledge information and identifying the first knowledge base fact.