Patent ID: 8364682

Claim:
A method performed by a data processing apparatus, the method comprising: receiving, by a data processing apparatus, first join data defining first joins of records in a first log file to records in a second log file, wherein: each record in the first log file describes a first user device event and includes a first identifier that identifies a user device; each record in the second log file describes a second user device event and includes a second identifier that identifies a user device; and each first join describes a join of a particular record in the first log file to a particular record in the second log file by an association of the first identifier of the particular record in the first log file to the second identifier of the particular record of the second log file, and represents the first type of user event of the particular record of the first log file and the second type of user event of the particular record of the second log file occurring at a particular user device, and wherein the first identifier and second identifier are different identifiers; for each association of a first identifier to a second identifier: determining, by the data processing apparatus, whether the association of the first identifier to the second identifier meets a confidence threshold; storing, in a storage device, the association of the first identifier to the second identifier in a mapping of first identifiers to second identifiers only if the association meets the confidence threshold; and for each mapping of a first identifier to a second identifier, associating, by the data processing apparatus, particular records that include the first identifier from the first log file with particular records that include the second identifier from the second log file.