1. A method of processing descriptive queries for data sources in a system comprising a set of data providers, wherein each data provider is distinguished by a type of data that the data provider provides and a set of attributes, wherein each attribute has a unique name and a particular type of value, and wherein the data providers are grouped into provider kinds, wherein each provider kind has a name, and wherein the data providers that are grouped into a same provider kind provide a same type of data and have a same set of attributes, the method comprising: obtaining a descriptive query comprising the name of a given provider kind and a specification of a mapping from an assignment of one or more values for one or more attributes of one or more data providers to a true value or a false value; and resolving the descriptive query, wherein resolving the descriptive query comprises determining one or more data providers in the set of data providers that belong to the given provider kind specified in the descriptive query and for which the mapping specification in the descriptive query maps the one or more values of the one or more attributes of the one or more data providers to the true value, wherein the descriptive query further comprises a specification of a selection mechanism for selecting one or more data providers from a set of data providers, and wherein resolving the descriptive query further comprises applying the selection mechanism specified in the descriptive query to the data providers in the set of data providers that belong to the provider kind specified in the descriptive query and for which the mapping specified in the descriptive query maps the values of the attributes of the data provider to the true value, wherein the obtaining and resolving steps are performed at least in part by a processor coupled to a memory.