Exact Answering MachineSelected work · 2025–2026 Live demo

A working definition · Brugge, 2026

It answers questions. Not calls.

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.

Stage
Working reference implementation
Evidence
Controlled and synthetic
Customers
None yet
Decision recordSynthetic / C1

Is Harbourline Bank within its approved exposure limit?

Exposure€14.16m
Limit€12.00m
Of limit118%
exposure_minor_units ≤ limit_minor_units
A path, not a paraphrase

cp.harbourline has_position pos.harbourline.eugb31 of_instrument ins.eugb31 classified_under class.eu_government_bonds

record sha256:9efaed25…Replay ✓
An actual case from the synthetic demo. Every figure above is on the record.
Not a voicemail box.
Not a chatbot.

01 / The name problem

Three machines. Only one shows its work.

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

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.

The current default

A chatbot

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

The Exact Answering Machine

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

A wrong answer and a right answer look identical from the outside.

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.

Numeric range0.50 → 1.00Embedding retrieval → graph
Aggregation0.67 → 1.00Embedding retrieval → graph
Temporal order0.30 → 1.00Embedding retrieval → graph

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

Four steps. Then the step most systems skip.

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.

  1. 01

    Your material goes in

    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.

    Source kept
  2. 02

    It becomes a structured map

    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.

    Unknowns stay unknown
  3. 03

    The question becomes a condition

    “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.

    No prompt in the answer path
  4. 04

    The answer is computed, sealed and re-run

    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.

    Replay, not explanation

The fifth step

Refuse.

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.

datasetlimits.ref
snapshot age173 hours
freshness limit24 hours
row-count drift−34%
No conclusion produced

04 / A record, opened

Read the answer. Then read why.

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.

Case C1 · fin.exposure_limit_checkSynthetic demo
Breach

Is Harbourline Bank within its approved exposure limit?

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.

Rule appliedexposure_minor_units ≤ limit_minor_unitsrisk.exposure_limit v12 · observed 11,800 bp · threshold 10,000 bp
Datasetpositions.eod · 12 rows
As of2026-10-01
Reason paths5 · all valid
Decision stateAwaiting approval

What the run recorded

  1. s1Fetch positions.eod as-of 2026-10-01 · 12 rows
    snapshot b99268d1…
  2. s2Materialise positions.eod into graph:ws_market_risk
  3. s3Aggregate exposure by counterparty · subject cp.harbourline → €14,160,000
  4. s4Evaluate risk.exposure_limit v12 → breach at 118.00%
  5. s5Compose the report the reader is looking at

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.

record_digest sha256:9efaed25…Replay: query-level · separate verifier re-derives 264 checks

These are cases from the reference demo, not customer decisions. The figures are synthetic.

Open the full demo and run the replay yourself

05 / Selected work

The work behind the claim.

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.

01Reference implementation

The engine, and its verifier

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.

  • 264independent checks
  • 7demo cases replayed
  • 0models in the answer path
02Published

The graph underneath

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.

  • 7,831validated triples
  • 68 / 78shapes / constraints
  • 0SHACL violations
03Synthetic evidence

The retail case

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.

  • 1design case
  • 0stores run
  • 0customers
04In formation

The research programme

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.

  • Publicfield notes
  • Noclients
  • Openmethods

Also on the bench

Internal builds and side work
Kernel

EAM Zero

A Rust skeleton for decisions where the record may be wrong and execution may fail. Seven separate business objects, an append-only log.

122 tests · 3,723 records/s
Open source

Apache Ecosystem Atlas

One Apache Jena issue traced to its merged commit, with every graph edge pointing back to a public source.

v0.1 · one case · demo ↗
Infrastructure

ProcedureGraph

An RDF/Oxigraph MCP service for recording which procedures work, under which conditions, and at what cost.

3,156 LOC · 3,208 quads
A blue-grey 3D render of a rectangular desk pen holder. Product design

Modular desk pen holder

A parametric FreeCAD design, exported for suppliers and 3D printing.

90 × 70 × 115 mm · STEP / STL

06 / The honest status

What is built. What is measured. What is not.

A page about exactness should be exact about itself. This is the line between a working mechanism and a business.

Built

Can be run and inspected
  • Deterministic engine: canonical JSON, SHA-256 record digests, reason paths, replay and an independent verifier.
  • A browser demo that runs the whole loop over synthetic data, including the refusals.
  • A source-to-graph pipeline: RDF, MLSO, SHACL validation and SPARQL querying.
  • Store-operations modules in the same core: stock, movements, campaign readiness and daily rule-based tasks.

Measured

Controlled or synthetic evidence
  • Thesis benchmark: 3.47 / 5 for embedding retrieval, 5.00 / 5 for graph + structured query, on one dataset.
  • 7,831 triples, 68 NodeShapes / 78 property constraints, zero SHACL violations.
  • 264 checks re-derived by the verifier; all seven demo cases replay; tampering is caught at the exact sequence.
  • A Rust kernel with 122 tests and measured throughput of 3,723 records/s on this machine.

Not yet

Do not infer these from the page
  • A customer, a contract, a letter of intent, revenue or a validated price.
  • Real operational data, or a store, buyer or auditor who has used it.
  • A packaged product another person can install without the founder.
  • Production multi-tenancy, identity integration or a run with real personal data.

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

Bring the question your team answers by hand.

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

Sijie Jia · author of the KU Leuven thesis behind the graph pipeline · Brugge, Flanders, Belgium · +32 465 55 37 10