Patent ID: 7644361

Claim:
A method for recommending relevant data components for view creation across a plurality of heterogeneous data sources, said method comprising the steps of: detecting a user selection of a first set of data components from a displayed set of data components, for inclusion into a new view of data, the first set of data components being sourced from a first data source of said plurality of heterogeneous data sources; identifying a second set of data components that relates to said first set of data components based on pre-defined and learned equivalence relationships among the data components of said plurality of heterogeneous data sources, the second set of data components being sourced from a second data source of said plurality of heterogeneous data sources, each said learned equivalence relationship having an associated confidence factor based on a comparison between the data components of said plurality of heterogeneous data sources; determining a degree of relevance of each data component in said second set of data components to said first set of data components; ranking the data components in said second set of data components according to said determined relevance; wherein said determined relevance of each data component of said second set of data components to said first set of data components is computed based on at least one of the following factors: (i) whether the first and second data sources of said data components are related directly by a primary key or a foreign key; (ii) whether the first and second data sources of said data components are related indirectly through other primary/foreign keys and join conditions and the level of the indirection; (iii) the confidence factors of the equivalence relationships that link said data components directly or indirectly; (iv) whether said data component constitutes part of a primary or a foreign key that links the data sources directly or indirectly; (v) whether any sibling, ancestor or descendant of said data components constitutes part of a primary or a foreign key that links the first and second data components directly or indirectly; (vi) the join conditions used to perform a join between two different data sources according to a congruence relationship in any associated views of data in which said data component is a join attribute; (vii) the other join conditions used to perform a join between two different data sources according to a congruence relationship in the views mentioned in (vi) in which said data component is not a join attribute; and (viii) the relative frequency of co-occurrence of said data component and any subset of said first set of data components in existing views of data; and displaying, according to the rank, a subset of said second set of data components to the user as possible candidate data components for inclusion into said new view with the selected first set of data components.