Forward-deployed / Learning zone
Knowledge graphsa standalone module
Lesson 02

Ontologies & data modeling

TL;DR

The ontology is the graph's data model. It is the agreed list of entity types (Customer, Product, Supplier), the relationship types allowed between them (holds, supplies, depends on), and the rules that make facts mean the same thing everywhere. It sounds like a technical artifact. It is actually a product contract — it fixes, in advance, the set of questions your graph can ever answer and the set of teams who have to agree on vocabulary. Ontology design is therefore a negotiation, not a specification. Sales' "account," finance's "billing entity," and legal's "counterparty" are three views of one thing, and someone has to decide how they map. The craft is scoping: model the handful of entity types your first killer queries need, borrow standard vocabularies where they exist, version the ontology like an API, and let it grow one proven domain at a time. Every data team has a name for the failure mode — boiling the ocean — and it has killed more knowledge-graph programs than any technology choice.

🎯 For the product leader

Why it matters — Every question your product will ever answer from the graph must be expressible in the ontology's vocabulary. If "subsidiary" isn't modeled, no query about corporate families will ever run, no matter how good the database is. The ontology is where product strategy silently becomes data architecture.

What it changes in your decisions — You treat ontology reviews the way you treat API reviews: as product decisions that need your input, not plumbing to delegate. You resource them accordingly. The scarce skill is someone who can hold both the domain and the modeling discipline.

Ask yourself — "Which questions on next year's roadmap can this ontology not express — and are we choosing that on purpose?"

Risk if ignored — A modeling committee runs for a year and produces a 400-type enterprise ontology nobody uses. Or the opposite happens: three teams each invent their own definition of 'customer,' and the graph faithfully connects things that don't mean the same thing.

Three layers: taxonomy, ontology, instances

The words get used interchangeably. They shouldn't be:

Taxonomy, ontology, instances

Three layers, not one word · budget your attention by which is load-bearing

Taxonomy debates are cheap and reversible. Ontology debates are expensive and load-bearing.

Taxonomy — categories in a tree
Electronics > Components > Fasteners
↓ classifies things in ↓
Ontology — types, relationships, rules
Customer —holds→ Contract
Contract —covers→ Product
Product —contains→ Component
Rule: a Contract has exactly one renewal date
↓ is the template for ↓
Instance graph — the actual facts
Acme Corp —holds→ #4411
#4411 —covers→ Product Y
Product Y —contains→ Widget X

The product consequence: taxonomy debates ("where does this SKU go?") are cheap and reversible. Ontology debates ("what is a customer?") are expensive and load-bearing. Budget your attention accordingly.

The ontology is a negotiation

"Customer" means the paying legal entity to finance, the user organization to product, the buying committee to sales, and the counterparty to legal. All four are right. An ontology doesn't pick a winner. It models the distinctions explicitly: a LegalEntity pays for a Subscription used by an Organization containing Users. The work is getting four departments to agree that this decomposition captures what they each mean — organizational alignment wearing a data-modeling costume.

This is why ontology projects run by engineering alone stall — the blockers aren't technical. Practical rules keep the negotiation shippable:

Design decisions that echo for years

A few modeling choices come up in every domain. Each one is secretly a product decision:

Decision The choice What it decides for the product
Granularity Is "Acme Corp" one node or a family (HQ, subsidiaries, brands)? Whether corporate-family questions (total exposure, group discounts) are ever answerable
Reification Is a purchase an edge (Customer —bought→ Product) or an entity (Order with date, price, channel)? Whether you can attach evidence, time, and amount to the fact — usually you must
Time Do edges have validity intervals (worked at, 2019–2022)? Whether history and "as-of" questions exist, or the graph only knows the present
Confidence Do facts carry certainty and provenance? Whether extracted (vs. curated) knowledge can safely coexist with system-of-record facts
Negation & absence Is "no known relationship" stored or inferred? Whether compliance can ask "prove we don't deal with X." Absence of an edge is not evidence of absence

You don't need to resolve all five up front. You need to know which ones your roadmap will hit — retrofitting time or provenance onto a live graph is a migration, not a patch.

How deep to model: the pragmatism dial

Formal ontology languages (OWL, SHACL) support machine reasoning. Define "supplies is transitive through subsidiary of," and the system infers indirect exposure automatically (reasoning lesson). That power has a cost: formal modeling talent is rare, and heavyweight ontologies are slow to change. Most successful product graphs sit deliberately low on the formality dial: a well-named set of types and edges, a handful of constraints, and documentation humans actually read. Add formality only where automated inference pays for it — compliance, medicine, engineering. "As formal as the killer queries require, and no more" is the right default. Academic completeness is how graphs die in committee.

Failure modes

Practitioner checklist