1. A method comprising: representing within a K-partite graph, weighting factors between a set of identifier elements and a set of data elements, wherein the K-partite graph also represents weighting factors between the set of identifier elements and a set of metadata elements, wherein in the K-partite graph, the set of identifier elements, the set of data elements, and the set of metadata elements are independent and disjoint sets such that no two vertices within a same set are adjacent, and wherein the set of metadata elements are distributed in two or more layers; providing an identifier-metadata matrix to contain a weighting factor between each identifier element of the set of identifiers elements and each metadata element of the set of metadata elements, and providing an identifier-data matrix to contain a weighting factor between each identifier element of the set of identifier elements and each data element of the set of data elements; calculating a score vector that ranks each data element in the set of data elements, the score vector being calculated by adding an initialized predetermined value of score vector with an adjusted multiple of the weighting factors between a set of identifier elements and a set of data elements and the weighting factors between the set of identifier elements and a set of metadata elements traversed from a starting identifier element to a corresponding data element of the set of data elements via the set of metadata elements and another identifier elements of the set of data elements, wherein the adjusted multiple of the weighting factors between a set of identifier elements and a set of data elements and the weighting factors between the set of identifier elements and a set of metadata elements is an adjusted value, wherein the adjusted value is obtained after traversed the weighting factors between a set of identifier elements and a set of data elements and the weighting factors between the set of identifier elements and a set of metadata elements based on a number of layers for the set of the metadata, and calculating the score vector further comprises: initializing the score vector with the predetermined value for each score; determining a path between a starting identifier element and each data element in the set of data elements, the path being represented by a first value representing a weighting factor between the starting identifier element and a first metadata element, a second value representing a weighting factor between a first identifier element and the first metadata element, and a third value representing a weighting factor between the first identifier element and a first data element; retrieving the first value from the identifier-metadata matrix for each path; retrieving the second value from the identifier-metadata matrix for each path; retrieving the third value from the identifier-data matrix for each path; calculating an updated score for the first data element for each path by adding the predetermined value to multiple of the first value, the second value, and the third value; calculating a normalized score vector using the updated score; checking the normalized score vector with a predetermined iteration criterion; when the predetermined iteration criterion was not satisfied, repeating checking the normalized vector with the predetermined iteration criterion until the predetermined iteration criterion is satisfied by replacing the score vector with the normalized score vector and recalculating the normalized score vector; selecting at least one data element from the set of data elements using the normalized score vector and a predetermined selection criterion when the predetermined iteration criteria is satisfied; and wherein the method is implemented by a computing device, which executes program instructions stored on a non-transitory storage medium.