Blog
Thesaurus: how terms relate and map across systems
The thesaurus captures relationships between terms — synonyms, aliases, and mappings across systems. Here’s what it is, how it’s made with concrete examples, and why it’s essential for “tell me everything about this customer.”
What it is
A thesaurus for a governed data product is the layer that links your canonical terms to the names and identifiers used in other systems. “Customer” in your CRM might be stored as cust_id in the warehouse, account_id in billing, and customer_id in the support tool. The thesaurus records those mappings so you can correlate and join data across sources without hand-coding every integration. It’s what lets one query return “everything about this customer” across systems.
How it’s made
The thesaurus is built and maintained in three ways:
- Canonical term + system-specific aliases. You choose a canonical name for a concept (e.g. “customer_id”) and register how each source system refers to it. Each mapping includes the system name, the field or table name in that system, and optionally a transform (e.g. “strip prefix”).
- Stored in the governed data product or a shared mapping store. Mappings can live in the asset’s metadata (e.g. “this asset’s customer_id maps to Shopify Customer.id and Stripe customer”) or in a central thesaurus service that multiple assets reference. Either way, the mapping is versioned and auditable.
- Used at read or sync time. When you ingest from multiple systems or answer a cross-system query, the pipeline or query layer uses the thesaurus to resolve “customer_id” to the right column or API field in each system, then joins or merges on that identifier.
Example thesaurus entries for a Customer 360–style asset:
{
"canonical_term": "customer_id",
"definition": "Stable, unique identifier for a customer.",
"mappings": [
{ "system": "Shopify", "field": "Customer.id", "format": "gid://shopify/Customer/123" },
{ "system": "Stripe", "field": "customer.id", "format": "cus_xxx" },
{ "system": "Zendesk", "field": "user.external_id", "notes": "We store Shopify id here" },
{ "system": "warehouse", "table": "dim_customer", "column": "cust_id" }
]
}New systems are onboarded by adding a new mapping; no need to change the canonical term. The thesaurus is updated when a source renames a field or when you add a new system that has the same concept under a different name.
Why it matters for governed data products and AI
Without a thesaurus, every integration and every AI prompt has to hard-code “in Shopify it’s X, in Stripe it’s Y.” With it, the governed data product exposes one logical view (e.g. customer_id) and the thesaurus handles the rest. That’s how Loxtep can show “everything about this order” or “everything about this customer” — the process graph and queries use the thesaurus to resolve identities across systems so your AI gets one coherent context.