Part 3 of 4 · 8 min

The Ontology

A language model can reason. It cannot know your estate. The ontology is the part you build either way, and ours is built on a grammar nobody edits.

There's a package in your codebase called PKG_AML_CHK_04. It holds the thresholds your transaction monitoring actually runs on, and two people are the only reason anyone knows that. The policy document describes something adjacent to it. When a new architect joins, they get read access to the repository and very little to explain it.

They work it out eventually, over about a month, and most of that month is spent asking people. Old tickets get opened to see which threshold survived. Bit by bit they build a feel for which parts of the policy are enforced in code and which parts everyone has quietly routed around for years.

Every agent you point at that repository starts where the new architect starts. It never gets the month of asking around. Without a map, it stays on day one forever.

This is the third of a series on what Coherence actually is and does. Part 1 covered what Coherence is: the layer that models what is required to exist, not only what does. Part 2 ended with parsed evidence flowing in, each piece traceable to where it came from. This part is about the layer that makes that evidence mean something, to people and to machines.

An ontology of the domain, not the documents

The word is intimidating and the idea is plain. An ontology is a written-down account of what one part of your business consists of: the things in it, how they connect, and the evidence sitting behind every connection.

For the control from Part 2, the ontology reads like this. A Regulation mandates an Obligation. The Obligation is addressed by a Control. The Control is carried by a Capability, which runs on a System. And the System is implemented by functions in files you can open.

Notice what's in it: things a risk officer would recognise, with the names a risk officer uses, connected the way they'd describe them. No file paths, no document numbers.

The things are the nouns of the domain. The connections are the verbs. A walk across them makes sentences. "Which systems implement our sanctions controls." "What has to change if Obligation 4 tightens."

Here is where our ontology differs from every other one, and it's the thing worth taking from this article. Palantir document their version plainly, and it's a direct lift from the warehouse: a dataset becomes a type of object, a row becomes an object, a column becomes a property, a join becomes a link. Everything in their picture already exists in the data. The ontology makes it explicit.

Ours runs the other way. The map holds what the domain's rules require to exist, written down first, and then your material is checked against it. So a control with nothing implementing it isn't missing from the ontology. It's in it, marked, with what was expected named next to it.

Theirs makes explicit what your data already contains. Ours also states what your data should contain and doesn't.

Five things and four named connections. Every one of them points at something real, or the gap is the finding.
Five things and four named connections. Every one of them points at something real, or the gap is the finding.click to enlarge ⤢

"Our documents already describe this"

They do. A policy document says a control exists. What it doesn't say is whether the control is running, which function enforces it, or whether the version in the code still matches the version in the paragraph.

That knowledge lives somewhere today. In your architects' heads, in old tickets, in the one engineer who wrote the procedure in 2019. It gets rebuilt by every person who needs it, slightly differently each time. Ask three people whether a control is covered and you can get three answers.

The ontology moves that knowledge out of heads and into the platform. "This obligation is addressed by that control" gets settled once, in the words the business uses, and every screen and agent that touches the obligation reads the same thing from then on.

And a document has no verbs at all. It states an intention; it has no idea what happens when the intention and the code diverge. The ontology does. Seven rules run across it, and each one fires when something that should be there isn't. An obligation with nothing enforcing it. A risk with nothing mitigating it. A capability nothing automates. A system carrying no capability, because orphaned technology is its own problem.

That is the difference between a gap somebody notices and a gap that gets computed. And it's why coverage here is two numbers rather than one.

On a demonstration estate, one of those rules caught a recovery capability with nothing behind it. A rule caught it. Nobody searched.

Same policy, same control. The difference is whether anything checks that the code agrees.
Same policy, same control. The difference is whether anything checks that the code agrees.click to enlarge ⤢

The grammar is fixed, and that's the product

None of this works on a grammar you can negotiate.

Six zones, and they're the six questions every organisation already has to answer about itself whether or not it wrote them down. Why. What we're trying to achieve. How we do it. What we run on. What rules bind us. What could break. Four kinds of thing inside each, twenty-four in all. Then a fixed set of connections, and which ones are legal depends on which zones you're joining: governance can enforce or constrain a capability, a capability runs on a system, a risk is mitigated by a capability. Four combinations are deliberately left empty, because each has its opposite already covered, so every statement has exactly one legal direction. One direction means one fact, which means one thing to be right or wrong about.

All of that is fixed in source code, identical in every deployment. Nobody edits it. Not in settings, not by request, not for a large enough contract.

This is the most argued-with decision in the platform, so here's the case rather than the slogan. An editable grammar is how architecture repositories died, and their failure was arithmetic rather than features. Keeping a hand-drawn model current costs more as the organisation grows, the labour available to do it doesn't, and every local extension becomes a private dialect. Then there's the harder point. On a negotiable grammar you can compute nothing. Every read in Part 4 exists because the vocabulary is finite and known. And nothing transfers. A new industry arriving as a vocabulary pack over the same engine only works if the engine is actually the same one.

The economics follow from that, and they're a design target rather than a measured result. Corrections your experts make get kept, familiar shapes get recognised without paying to extract them again, and you pay for reading only what's genuinely new. That property exists only while the grammar stays locked.

The elements are fixed. The molecules are yours.

There's a cost to that refusal and it's worth stating. If what your organisation needs is a formal, standards-based ontology for its own sake, with a reasoner over it, this is not that tool and won't become it. That's a real category with real products in it.

Six zones, twenty-four kinds of thing, a fixed set of connections. What goes inside them is your business.
Six zones, twenty-four kinds of thing, a fixed set of connections. What goes inside them is your business.click to enlarge ⤢

Humans needed this map first

This did not begin as an AI feature. A shared ontology is how an organisation ends up with one answer to "is this control covered" rather than five, and it's how that answer outlives the architect who worked it out.

The test for a model that works is simple enough. Hand it to someone who knows the business and not the systems, and see whether they can navigate it. If the control carries the name your risk officer uses, they can. If it carries PKG_AML_CHK_04, they can't. Palantir's guidance on this is blunt and ours says the same thing: model the real world, not the source artifacts. The failure mode is identical in both platforms too. One concept per function, cryptic names kept, declared finished. What you get back is a mirror of the codebase's accidents rather than a model of the domain.

For years that was the whole business case: consistency, faster onboarding, one definition everyone works from. Worth doing, never pressing. AI is what made it pressing.

Then AI made it the whole game

Hand an agent a repository and a policy folder and it will give you answers. That's exactly the problem. It picks a threshold and assumes it's live, decides the procedure it found is the one in force, and says all of it smoothly. The new architect does get to the truth eventually, a month in, having annoyed two engineers on the way. The agent has no month. It answers on the first call. Fine in a demo. Not fine in front of an auditor.

And the guessing is charged on every call. The agent rebuilds the same understanding from scratch each time: which files are live, how the paragraph maps onto them, what the constants mean. That work is paid for repeatedly and it accumulates nowhere. Call one thousand starts as ignorant as call one, because nothing in the setup gives the understanding a place to sit.

Scale the model and you scale how convincing the guess sounds, not how often it's right.

The ontology is where the understanding sits. The work happens once, and every call after that starts from it: things a person named, connections checked against evidence, and only what the caller is cleared to see. When the agent wants to change something it doesn't get write access to your systems, because there is no write path to your systems. It proposes, and the proposal goes through the same gates a person's would. It drafts and it never signs.

There's a second effect worth naming. Because the agent is reading an ontology rather than text, it can be wrong in a way you can detect. Every reference in an answer has to appear in what the tools actually returned, or the answer is replaced with an honest one. Hallucination isn't impossible at the proposal stage. It becomes impossible at the point where something is called true.

How I put it to technical teams: the reasoning improves every quarter, and you can now hold it in-house and tune it on your own material. That still leaves it with nothing to reason about. It needs eyes, meaning what it may see. Hands, meaning what it may propose and nothing it may execute. And a memory, meaning the standing record of what's been decided. All three come from the ontology, not from the model.

You can rent the reasoning, and increasingly own it. The ontology of your own estate you build either way.

Same material, same agent. One of these can be trusted in front of an auditor.
Same material, same agent. One of these can be trusted in front of an auditor.click to enlarge ⤢

Run the domain as code

Like software, the model is versioned and reviewed. A domain doesn't go live because somebody saved it. A person publishes it, and the platform refuses while the work is unfinished: anything audited red blocks it, so does an open review task. Overridable, but only deliberately, and the override is itself on the record.

And like software, changes can be tried before they ship. A proposed change goes onto a copy, its consequences get computed side by side against the real thing, and then it's either promoted or dropped. Nothing is written by looking at it. Part 4 covers that.

The quiet payoff is the same one code has. The architect, the auditor and the agent are all reading one ontology, so there's one version of the domain to disagree about.

A domain goes live when a person publishes it, and it can't go live while the work is unfinished.
A domain goes live when a person publishes it, and it can't go live while the work is unfinished.click to enlarge ⤢

Who sees what

Security carries straight through from Part 2. Clearance on the underlying evidence carries forward, a thing in the ontology honours the access rules of the material behind it, and material with no classification is treated as restricted rather than as safe. The same rules bind people and agents alike.

One honest caveat, and every platform in this category owes you the same one. The parsers are mechanical. The modelling is design work, and it won't happen without someone who knows the domain in the room. Scope it tighter than instinct suggests. A single domain people actually use beats an estate half-authored. And take the smaller domain with its real owner over the bigger one with a stand-in, because a link that's missing shows up and a link that's wrong doesn't.

Every other part of this platform can be bought. The ontology has to be authored.

The obligation is in the ontology now: its control, the capability carrying it, the system it runs on, the function implementing it, the clearance rules around it, and the standing record of what's been decided about it. Part 4 is the day job. How an architect follows a tightened rule down to the code it touches, without writing a query, against an ontology that hasn't gone stale.


Figures from our own estates are labelled as such.

Model your first domain today.

You send five documents, we model them, and the first cut comes back in days.

This site uses cookies

We use essential cookies for the site to function and analytics cookies (Google Analytics) to understand how you use it. Analytics cookies are only activated with your consent. We do not track you across other websites. Your data is stored in the EU and processed in accordance with GDPR. Read our Privacy Policy