1. A method implemented on at least one computing device, each computing device having at least one processor, storage, and a communication platform connected to a network for providing identifiers to objects, the method comprising: categorizing received input data representing a plurality of objects into a plurality of entity categories; generating a first graph of entities using the plurality of entity categories; matching the first graph of entities with a second graph of entities; comparing object pairs, each object pair including a first object from the first graph of entities and a corresponding second object from the second graph of entities; and assigning identifiers to each object based on comparing the object pairs, wherein categorizing received input data into a plurality of entity categories comprises determining that a third object is not recognized and assigning the third object to a new entity category, determining that a fourth object is recognized and has been previously deleted and assigning the fourth object to a deleted entity category, determining that a fifth object was once a part of a composite object that has been split into a plurality of objects and assigning the fifth object to a split entity category, determining that a sixth object is one of a plurality of objects merged into a single composite object and assigning the sixth object to a merged entity category, and determining that a seventh object may belong to both the split entity category and the merged entity category and assigning the seventh object to a shuffled entity category.