Similarity is not transitive

Looking alike can help us find a group. It cannot tell us what the group is for.

Search for Coke in a supermarket app.

You probably want to see Coca-Cola Classic, Coke Zero, cans, bottles, and multipacks together. They belong to one useful group for the search you made.

Now imagine you have put a 330ml can of Coca-Cola Classic in your basket. The app sends you a 500ml bottle instead.

Both are Coke. Both are similar products. They are not the same thing to buy.

The group changed because your purpose changed.

That is the question underneath similarity not being transitive. How does anything ever get grouped? Not by finding things that look alike and calling the job done. First, somebody has to say what the group is for.

A useful group is not always one entity

We group things constantly.

A family photo album might group a mother, her children, and grandparents. A family tree groups them differently. A hospital must keep their records separate. The people are related. They are not one person.

Search works this way too. Search for a bicycle and you may want similar bicycles, spare parts, helmets, and repair guides. That is a good group for exploring. It is not a claim that all those things are the same bicycle.

The word group can hide several different jobs:

What someone is trying to do A useful group What must stay separate
Find family photos people who belong to one family each person
Browse for Coke related brands, flavours, sizes, and packs individual purchasable items
Place an order the exact product requested a can, bottle, different size, or flavour
Trace a recall products from one batch identical-looking products from another batch
Deliver a parcel references to one address neighbouring houses and flats

There is no single, correct grouping. There is a good grouping for a stated purpose.

A candidate group is a shortlist

This is the useful distinction.

A candidate group is a shortlist of things that might be relevant. It is what a search gives you before you choose. It can contain alternatives, neighbours, related things, and things that turn out not to be right.

An entity group is narrower. It says several records describe one real-world thing.

Where you see it Candidate group What it is not saying
eBay search for a Nintendo Switch listings that may be the console, a bundle, a case, or an accessory these listings are one item
Netflix suggestions films and series that may suit what you want to watch these are the same programme
Supermarket search for Coke related flavours, sizes, bottles, cans, and multipacks any result can replace any other at checkout
Delivery address lookup properties that may be the destination neighbouring houses are one address

The candidate group is allowed to be broad. It should be. Its job is to avoid missing the thing you need.

The entity group has a harder job. It has to be right about one thing in the world.

The product in the middle

Here are three product records.

Record Looks like What it leaves open
A Coca-Cola Classic 330ml can B, because they share the brand and product name whether B means this can
B Coca-Cola Classic A and C, because it leaves out the size and container which product someone wants
C Coca-Cola Classic 500ml bottle B, because they share the brand and product name whether A and C can be substituted

Record B is useful for search. It can bring A and C together when somebody wants Coke.

But B cannot turn A and C into one purchasable item. The vague record acts like a bridge. If a system joins everything that resembles it, it loses the details that matter at checkout.

This is what similarity is not transitive means in normal language: similarity does not travel down a chain.

A is like B. B is like C. That does not make A and C alike enough for the thing you are trying to do.

Here, the vague record B helps a search find both products. It does not make a 330ml can and a 500ml bottle the same thing to buy.

When a group should be saved

Some groups are only useful for a moment. A search for Coke creates a shortlist, then disappears when you close the app.

Other groups are worth keeping. A product family, a recall batch, a film franchise, or a household may be named, reused, and governed over time. Give those groups an ID and store what belongs to them.

Here is the difference for one product:

Coca-Cola Classic 330ml can
  ├─ GTIN: identifies this sellable variant
  ├─ size: 330ml
  ├─ container: can
  └─ belongs to: Coca-Cola Classic product family

The size and container describe the product. The GTIN helps distinguish this sellable variant from another one. The product-family membership is a relationship. Many different products can belong to that one family.

Entity resolution helps at the step before this. One retailer may write Coke Can 330ML; another may write Coca-Cola Classic 330ml can. Resolution asks whether both references describe this sellable variant. If they do, they can be linked to it. The product-family relationship is a separate, later claim.

Once there are named entities and typed relationships, you have a graph. Graph analytics can then ask useful questions across it: which products belong to this family, which items were in this batch, or which films sit in the same franchise. It can find patterns and communities too.

But it cannot repair a bad identity link by analysing the graph harder. If two retailer rows were wrongly treated as one product, every group built on that mistake inherits it.

The same shape appears in a movie catalogue. Resolution can connect two catalogue rows that describe one film. Genre and franchise are stored relationships. A row such as “because you watched this” is usually a temporary recommendation group, made for one viewer at one time. It is useful without claiming that the films are the same film.

The same thing happens with people and places

Family resemblance is familiar. A child can resemble a parent, and two siblings can resemble each other. That can help you notice a relationship. It does not entitle a system to merge their bank accounts, patient records, or school files. People get this wrong a lot.

Addresses have the same shape. Consider these three references:

Record Looks like What it leaves open
A 10 Downing Street, London SW1A 2AA B, because the street and postcode agree that C is the same address
B Downing Street, London SW1A 2AA A and C, because it omits the house number which house it means
C 11 Downing Street, London SW1A 2AA B, because the street and postcode agree that A is the same address

The missing number makes B useful for finding candidate addresses. It also makes B unsafe as a decision. It cannot tell us whether the delivery belongs at number 10 or number 11.

Robin Linacre describes the practical version as discriminating tokens amongst neighbouring addresses. In a candidate list on one street, the shared street name is not what decides. The house number, flat number, or named building may be the detail that separates one candidate from the rest. Even then, it is evidence, not a universal rule. His examples show why missing or awkward address parts make the simple rule fail.

Similarity finds. Intent groups.

This leaves similarity with an important job.

It finds the products that may satisfy a search. It finds the addresses that may be meant. It finds family members who may belong in an album. It makes a large world small enough to look at.

Then the purpose decides what happens next.

First ask Then decide
What is the person trying to do? What kind of group would help them?
Are we browsing, ordering, recalling, delivering, or deciding? Which differences matter for that job?
Is this a group of related things or one real-world entity? Whether to keep the records together, separate, or unresolved

When the task is to identify one real-world entity, similarity is only the beginning. The records still need evidence that they refer to the same person, place, or item.

Similarity is evidence about identity. It is not identity itself.

Two records can share many properties and still refer to different things. Two records can look less alike and still refer to one thing, because one person used an abbreviation, a nickname, or an older address. Similarity tells us where to look. It cannot finish the claim.

That is the distinction underneath sameness and similarity. Similarity is not an answer. It is a way of arriving at the question that needs answering.

The sorites paradox sits nearby. There is no magical point at which one more shared feature makes two things the same. The sensible boundary depends on what is at stake.

Reading

First published
5 September 2026
Last revised
7 September 2026
Fingerprint
0bbd3a5cbbe12a7e

SHA-256 of this page's markdown source. Check it yourself, or read what it proves.