1. A method of generating a set of well organized query results, comprising: receiving, from a requesting entity, an abstract query composed from a plurality of logical fields, wherein each logical field specifies (i) a name used to identify the logical field, and (ii) an access method that maps the logical field to data in an underlying database; retrieving a first set of query results for the abstract query from the underlying database, wherein retrieving the first set of query results, comprises generating, from the abstract query, an intermediate representation of the abstract query that indicates (i) a set of logical fields included in the abstract query, (ii) an indication of data sources within the database mapped to by the set of logical fields, and (iii) a set of one-to-one and one-to-many relationships specified for the plurality of logical fields; and further comprising, generating, from the intermediate representation, a resolved query issued against the database; transforming the first set of query results into a second set of query results wherein the second set of query results are organized according to the set of one-to-one and one-to-many relationships specified for the plurality of logical fields; and providing the second set of query results to an output formatter configured to display the query results to the requesting entity according to the one-to-one and one-to-many relationships.