1. A system, comprising: a data store having a knowledge base stored therein comprising first knowledge represented in a structured, machine-readable format, the data store also having a plurality of generators stored therein, 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; and one or more computing devices configured to: generate 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; determine that the second knowledge is not semantically contradicted by other knowledge in the knowledge base; store the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred; respond 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; identify a second generator of the plurality of generators for which the included fact pattern is compatible with a second query; dynamically generate 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; store the third knowledge in a cache; retrieve the third knowledge from the cache as part of recursive processing of the second query; respond to the second query using the third knowledge; determine that the first knowledge from which the second knowledge was inferred is no longer valid; and remove the second knowledge from the knowledge base using the related knowledge information.
1. A system, comprising: a data store having a knowledge base stored therein comprising first knowledge represented in a structured, machine-readable format, the data store also having a plurality of generators stored therein, 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; and one or more computing devices configured to: generate 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; determine that the second knowledge is not semantically contradicted by other knowledge in the knowledge base; store the second knowledge in the knowledge base in association with related knowledge information identifying the first knowledge from which the second knowledge was inferred; respond 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; identify a second generator of the plurality of generators for which the included fact pattern is compatible with a second query; dynamically generate 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; store the third knowledge in a cache; retrieve the third knowledge from the cache as part of recursive processing of the second query; respond to the second query using the third knowledge; determine that the first knowledge from which the second knowledge was inferred is no longer valid; and remove the second knowledge from the knowledge base using the related knowledge information. 6. The system of claim 1 , wherein the one or more computing devices are configured to identify the second generator by determining that the fact pattern included in the second generator matches a pattern of objects in the second query.