MaterialGraph · Normalisation
A flat catalog has the materials. It can’t answer the question.
Every brand spells a specification its own way. MaterialGraph folds those messy source values onto canonical tokens, so one query finds every matching material across every brand. The gap below — measured on the graph — is what that normalisation is worth.
Vocabulary
10,615 → 48
source spellings collapse onto canonical tokens
Coverage
2
attributes normalised on the graph
Lift
×3.7
more materials for the same question
Brand reach
60 → 389
brands reached on the headline queries
Every canonical token is discoverable by agents — GET /api/v1/catalog/specifications/facets returns the live filter vocabulary, so an agent learns the language before it queries.
Fire rating
euroclass → fire_classifications3,710 source spellings collapsed onto 18 canonical tokens.
The same fact, as brands actually spell it:
Before · raw string
“ASTM E84 Class A”
12,568
variants · 35 brands
After · canonical token
astm_e84_class_a
65,344
variants · 189 brands
5.2× more matching materials, across 35 → 189 brands, for the same question.
Material content
composition_breakdown → material_content6,905 source spellings collapsed onto 30 canonical tokens.
The same fact, as brands actually spell it:
Before · raw string
“100% Vinyl”
28,580
variants · 25 brands
After · canonical token
vinyl
62,245
variants · 200 brands
2.2× more matching materials, across 25 → 200 brands, for the same question.
Measured July 14, 2026 · precomputed from the graph · /api/v1/normalisation-proof