A method for data access, comprising the steps of: (a) receiving a request by an application object manager from an application program accompanied by a role name, (b) receiving a set of data by the application object manager from a disparate data source, (c) determining a set of object types, where each object type of the set contains the one of the role names in its object type definition, (d) analyzing a first object type against a first set of data according to defining characteristics, (e) analyzing a second object type against a second set of data according to defining characteristic, and characterized by steps for (f) determining a set of candidate object types as a sub-set of the set, where the defining characteristics of each object type contained in the set of candidate object types are contained as a sub-set in attributes or field names of the set of data, (g) selecting one object type from the candidate object types by applying prioritized finding rules (RUk) which manage parallel object type definitions, (h) querying a non-volatile data store for determining if the selected object type has already been instantiated for values of the defining characteristics given in the set of data, and if so, returning the corresponding instance of the selected object type, and if not, creating an instance of the selected object type and generating a unique identifier suitable for use as a technical key for the non-volatile data store, before a step for (i) returning the relevant object instance to the application program which processes it according to predefined role characteristics contained in the returned object instance. (a) receiving a request by an application object manager from an application program accompanied by a role name, (b) receiving a set of data by the application object manager from a disparate data source, (c) determining a set of object types, where each object type of the set contains the one of the role names in its object type definition, (d) analyzing a first object type against a first set of data according to defining characteristics, (e) analyzing a second object type against a second set of data according to defining characteristic, and characterized by steps for (f) determining a set of candidate object types as a sub-set of the set, where the defining characteristics of each object type contained in the set of candidate object types are contained as a sub-set in attributes or field names of the set of data, (g) selecting one object type from the candidate object types by applying prioritized finding rules (RUk) which manage parallel object type definitions, (h) querying a non-volatile data store for determining if the selected object type has already been instantiated for values of the defining characteristics given in the set of data, and if so, returning the corresponding instance of the selected object type, and if not, creating an instance of the selected object type and generating a unique identifier suitable for use as a technical key for the non-volatile data store, before a step for (i) returning the relevant object instance to the application program which processes it according to predefined role characteristics contained in the returned object instance.