1. A method comprising: receiving data, wherein the data is organized as a plurality of named fields, wherein each named field includes a set of values associated with the named field, wherein each named field is assigned to a category from a plurality of categories and wherein each set of values includes two or more entries; determining, for at least one category, whether there is at least one identifier field for that category, wherein each identifier field is a named field that acts as an identifier for that category; and selecting a concept, wherein selecting the concept includes: determining whether one of the categories includes an identifier field that has a unique value for each entry in the identifier field set of values and, if so, selecting the identifier field as the concept; if none of the categories include an identifier field that has a unique value for each entry in the identifier field set of values, determining whether one of the categories includes two or more identifier fields that, when combined, have a unique value for each entry in the combined identifier field set of values and, if so, selecting the combined identifier fields as the concept; and if none of the categories include an identifier field that has a unique value for each entry in the identifier field set of values and if none of the categories include two or more identifier fields that, when combined, have a unique value for each entry in the combined identifier field set of values, adding a new identifier field, wherein adding the new identifier field includes providing a unique value for each entry in set of values included in the new identifier field, associating the new identifier field with one of the categories, and selecting the new identifier field as the concept.