What you probably pictured
A telephone answering machine
Records a voice message when you are out, then plays it back. Its job is to remember what someone said.
Memory, not reasoning.
A working definition · Brugge, 2026
The Exact Answering Machine computes an answer from your own material — then hands over the exact derivation, the source behind every figure, and a re-run any third party can execute. When the answer is not there, it says so.
Is Harbourline Bank within its approved exposure limit?
cp.harbourline has_position pos.harbourline.eugb31 of_instrument ins.eugb31 classified_under class.eu_government_bonds
01 / The name problem
The name is a coincidence, not a category. A telephone answering machine remembers a voice. A chatbot produces a plausible reply. This machine does a different job: it computes an answer that can be checked.
What you probably pictured
Records a voice message when you are out, then plays it back. Its job is to remember what someone said.
Memory, not reasoning.
The current default
Generates a fluent reply from patterns in text. It is often useful. It cannot show which source forced the answer, and it rarely refuses.
Plausibility, not proof.
This site
Computes the answer from your material. Shows the rows and the rule. Re-runs on demand. Refuses when the material has no answer.
Proof, or an honest refusal.
Working definition
An exact-answer engine returns the answer, the exact derivation that produced it, and a re-run any third party can execute — or it returns an explicit refusal that names what is missing.
02 / Why exactness matters
That is the silent failure. The answer is fluent, confident and wrong — and nothing in the interface says which. If a decision has to be defended afterwards, “it sounded right” is not a defence.
The same data. Three ways of reaching it. Only one can show the condition was applied.
In a controlled benchmark, the founder’s KU Leuven thesis queried one dataset three ways and changed nothing but the access method. Retrieval scored well enough to look credible. It failed exactly where the answer had to be exact: numeric thresholds, joins across records, and ordering in time.
One dataset, one changed variable. This is a result about the access method, not about a customer, a market or a product. Read the benchmark in the thesis, §7.5. Source and limits ↗
03 / The mechanism
The engine does not ask a language model what it thinks the answer is. It computes the answer from the material, records each step, and refuses when the material cannot support a conclusion.
Rate cards, contracts, price lists, stock records, internal rules — whatever the answer has to come from. Every item keeps its source, its date and its row identity.
Loose text becomes typed statements: this channel, this price, published by this source, in this year, on this unit. Fields that are absent stay absent; they are not filled with a guess.
“Is Harbourline within its limit?” becomes an expression the material either satisfies or does not. There is no room in the middle for a plausible-sounding answer.
Every figure keeps a pointer to the row it came from. The record is hashed. An independent party can execute the same computation over the same pinned inputs and compare the result.
The fifth step
If a price is not published, the answer is “not published — this must be quoted”, not an estimate. If the reference data is stale, no conclusion is produced from it. If a rule does not cover the case, the engine names the missing rule and stops.
04 / A record, opened
Three cases from the synthetic demo: one breach, one refusal because the data is stale, one refusal because the rule does not cover the case. None of them is a customer result.
No. Exposure is €14,160,000 against a €12,000,000 limit — 118.00% of limit. The rule returns breach. A human approval is required before any action.
exposure_minor_units ≤ limit_minor_unitsrisk.exposure_limit v12 · observed 11,800 bp · threshold 10,000 bpWhat the run recorded
No model is in this answer path. The figure comes from the rows; the verdict comes from the rule. The engine can show the exact edge chain that made the aggregation valid.
No conclusion was produced. The snapshot is 173 hours old against a 24-hour limit, and its row count is 34% below the trailing median. The engine stops rather than compute from stale reference data.
snapshot_age_hours ≤ 24 and abs(row_delta_pct) ≤ 5fin.data_freshness v7 · gate failed on freshness and row-count driftWhat the run recorded
A refusal is not an empty result. The failed gate, the numbers that failed it and the evidence already read all stay on the record. Nothing is quietly filled in to make the queue look complete.
The engine cannot answer. Structured Credit is not enumerated by any published version of the rule, and it is 81.81% of this counterparty’s exposure — €9,000,000 of €11,000,000. No default class is assumed.
exposure_minor_units ≤ limit_minor_unitsrisk.exposure_limit v12 · coverage incomplete · outcome not_applicableWhat the run recorded
The missing edge is the finding. The engine does not silently classify Structured Credit as “other” and carry on. It reports the gap so a person can decide whether the rule should change.
These are cases from the reference demo, not customer decisions. The figures are synthetic.
Open the full demo and run the replay yourself05 / Selected work
Four pieces matter most: a running engine and its verifier, the graph work underneath it, a retail case designed around evidence gates, and a public research programme that uses the same discipline.
A deterministic core that seals a conclusion, replays it against pinned inputs, and lets a third party re-derive every check without trusting the author. It is a working reference implementation, not a packaged product.
KU Leuven master’s thesis: MLflow experiment metadata becomes an MLSO-aligned RDF graph, validated with SHACL and queried with SPARQL. The conversion package is published on PyPI.
A cultural-creative lifestyle retail pilot designed around operating gates: replenishment, product-file completeness, campaign readiness and the decision to expand. The mechanism has been exercised on synthetic data; no store has run it.
Retail AI Research applies the same evidence discipline to public AI-in-retail studies: force a precise question, record what the system produced, state the limits, and return only what the evidence supports.
A Rust skeleton for decisions where the record may be wrong and execution may fail. Seven separate business objects, an append-only log.
One Apache Jena issue traced to its merged commit, with every graph edge pointing back to a public source.
An RDF/Oxigraph MCP service for recording which procedures work, under which conditions, and at what cost.
Product design
A parametric FreeCAD design, exported for suppliers and 3D printing.
06 / The honest status
A page about exactness should be exact about itself. This is the line between a working mechanism and a business.
What this page will not claim
No large language model was trained for this. The engine’s answers come from a constrained graph and written rules. The EU AI Act does not require knowledge graphs, ontologies or this architecture. The design is aligned with auditability; that is all. No saving, return or ROI is promised. The evidence on this page is about a mechanism, not a commercial outcome.
Start with one question
Not a slide deck. One question where an approximate answer would be expensive, and the material the answer has to come from. That is enough to test whether this is useful.
jason.jia@thirdhour.eu