1. A system for managing and querying a plurality of data sources, comprising: an interface to a plurality of inter-related data sources of diverse types, each of the plurality of data sources having a schema that describes its data structure; a schema generator communicating with said interface, for generating a federated schema that describes the structures of the plurality of data sources and their inter-relationships, and for modifying the federated schema over time as the plurality of data sources undergo changes; and a query generator communicating with said schema generator, for generating a query for the federated schema.