1. A computer-implemented method, comprising configuring one or more computer processors to perform an operation comprising: providing a data abstraction model, comprising: a plurality of logical field definitions for each of a plurality of logical fields, wherein at least some of the plurality of logical field definitions include a logical field name and a reference to an access method for retrieving data from at least one physical field of the data, whereby the retrieved data is exposed as a value of the respective logical field name, and wherein each access method is selected from at least two different access method types; and iteratively performing a data abstraction model restriction process for a plurality of successively executed abstract queries, comprising: executing an abstract query, the abstract query having been composed on the basis of a respective instance of the data abstraction model; receiving a result set for the executed abstract query; restricting, by operation of the one or more computer processors, the respective instance of the data abstraction model on the basis of the result set to produce a restricted instance of the data abstraction model; and executing a next successive abstract query, the next successive abstract query having been composed on the basis of the restricted instance of the data abstraction model; whereby each successive instance of the data abstraction model is a more restricted version of an immediately previous instance of the data abstraction model, each instance of the data abstraction model having been restricted on the basis of a respective result set output for the immediately previous abstract query.