Ontology & knowledge graphs

Entity resolution for knowledge graphs: block, match, cluster

Three records for the same customer, spelled three ways, is the most common reason a knowledge graph gives wrong answers. Entity resolution is the unglamorous step that fixes it.

ExplainerSumanta Mukhopadhyay7 min read5 sources
#ontology#knowledge-graph#data#ai
EXPLAINER · ONTOLOGY & KNOWLEDGE GRAPHS19 Oct 2026 · 08:30 GST

Knowledge graph projects tend to hit the same problem early. The ontology is clean, the sources are mapped, and then the graph has four nodes for one customer: "ACME Ltd", "Acme Limited", "ACME LTD." and a typo. Every query that touches that customer is now wrong, and an AI agent reading the graph will be confidently wrong.

Entity resolution is how you fix that. It is less glamorous than ontology design and just as important.

The three stages

End-to-end entity resolution is usually described as three stages: blocking, matching and clustering2.

StageWhat it doesWhy it matters
BlockingChooses which pairs of records are worth comparingComparing every pair is impossible at scale
MatchingScores how likely each candidate pair is the same entityWhere accuracy is won or lost
ClusteringGroups matched pairs into entitiesTurns pairwise decisions into consistent entities, and can infer indirect matches

Blocking: don't compare everything

A million records means roughly half a trillion possible pairs. Blocking narrows that to plausible candidates, for example records sharing a postcode, the first letters of a surname, or a normalised company name. A survey of the field describes candidate selection as the main lever for making entity resolution scale1.

The trade-off is recall. Block too tightly and true matches never get compared. I use several blocking rules in combination, then measure how many known matches each rule would miss.

Matching: probabilistic and explainable

The classic approach is the Fellegi-Sunter model. Each field comparison, such as name, date of birth or address, contributes evidence for or against a match, weighted by how informative agreement on that field is. Modern record linkage is still largely built on it3.

I like it for two reasons. It works without much labelled data, because parameters can be estimated from the data itself. And it is explainable: you can show exactly which fields drove a match, which matters in healthcare, finance and anywhere an auditor might ask.

Splink, an open-source library developed at the UK Ministry of Justice, implements this approach at scale and is used to link people across courts, prisons and probation datasets45. It is usually the first tool I evaluate.

Machine-learned matchers can beat probabilistic ones on very messy data, but they need labelled pairs and are harder to explain. Start probabilistic, measure, and only add complexity where the numbers justify it.

Clustering: make decisions consistent

Pairwise matching can produce contradictions: A matches B, B matches C, but A doesn't match C. Clustering resolves these into consistent groups and can infer matches that were never directly compared2. In a graph, each cluster becomes one entity node with links back to every source record, so you never lose provenance.

How it fits the knowledge graph

  1. Resolve before you load. Run resolution in the pipeline and load resolved entities, keeping source records as linked nodes.
  2. Keep the evidence. Store match scores and contributing fields on the links, so a wrong merge can be explained and reversed.
  3. Use the ontology to guide matching. Entity types define which fields matter: date of birth for people, registration numbers for companies, product codes for items.
  4. Human review for the grey zone. Auto-accept high scores, auto-reject low ones, and route the middle band to a reviewer.
  5. Re-run incrementally. New records are matched against existing entities rather than reprocessing everything.

This is the step that makes the ideas in ontology vs knowledge graph vs semantic layer work on real data, and it is why GraphRAG answers can be trusted. The same discipline applies to patient matching in healthcare platforms, which I touch on in OMOP data quality.

How I can help

I design knowledge graphs and the resolution pipelines that feed them, from blocking strategy to review workflows. See ontology and knowledge graphs, or analyse your challenge and bring the result to a call.

References
  1. 1
  2. 2
  3. 3
    The State of Record Linkage and Current Research ProblemsWilliam Winkler, US Census Bureau · 1999
  4. 4
    Splink: free software for probabilistic record linkage at scaleLinacre et al., International Journal of Population Data Science · 2022
  5. 5
FAQ

Common questions

What is entity resolution?

It is the process of working out which records, often from different systems, refer to the same real-world entity, such as a person, company or product, so they can be linked or merged.

What are the main steps?

Typically blocking, to limit which pairs are compared; matching, to score candidate pairs; and clustering, to group matches into entities, which can also infer indirect matches.

Do I need machine learning for entity resolution?

Not always. Probabilistic methods based on the Fellegi-Sunter model, available in open-source tools such as Splink, work well at scale and are explainable. Machine learning helps when records are messy and labelled examples exist.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. US & UAE time zones.