1. A computer-implemented method of querying distributed data sources, the method being executed using one or more processors and comprising: receiving a query; identifying, based on the query, one or more relevant elements from an overall data model stored in computer-readable memory; identifying, using an adapter mapping, one or more adapters based on the one or more relevant elements, the adapter mapping associating each relevant element with a particular adapter; querying, using the one or more adapters, one or more data elements in the data sources of the disparate data sources, each adapter being specific to a data source of the one or more data sources; in response to querying, receiving, at the one or more adapters, one or more data results; transforming each data result of the one or more data results into a unified data format to provide respective one or more transformed data results; storing the one or more transformed data results in a temporary data store; and querying the temporary data store to generate a result.