How donto works
These pages document the live system — the real tables, the real pipelines, the real queries — not an idealized design. donto is a contradiction-preserving, evidence-first claim substrate: it stores every claim anyone (human or model) has ever asserted, keeps the disagreements, anchors everything to its source, and works out what is true at query time instead of at write time.
The mental model in four moves
Everything in these docs reduces to four design moves. If you hold these, every table and pipeline below will make sense:
subject — predicate → object, where the predicate is invented freely by whoever asserts it. No schema gatekeeps writes. A frontier model can emit hundreds of claims about anything for ~$0.0001 each — donto is built for that firehose, not against it.I3 — you retract or supersede by closing its transaction-time interval, never by DELETE. Disagreement is data.The life of one fact
Here is the whole system in one trace — what happens when a source document enters donto and a question later finds it:
1. STORE the source → donto_blob (SHA-256, GCS) → donto_document_revision
2. EXTRACT an LLM emits free-form claims about it (donto-extract / donto-agent)
3. CITE each claim gets an evidence span — or is flagged hypothesis (the citer)
4. ASSERT claims land as rows in donto_statement (bitemporal, paraconsistent)
5. EMBED its predicates / entities / text become 384-d vectors (the fabric)
6. ALIGN the daemon proposes predicate folds + identity hypotheses from vectors
7. QUERY recall = FTS + vectors + alignment closure, fused; evidence attached
8. RE-RANK contradictions surface side by side; maturity/confidence move over timeWhat physically exists
One Postgres 16 instance (donto-pg) holds the entire substrate — 127 tables in twelve families: the claim core, contexts, evidence + documents, extraction bookkeeping, embeddings + alignment, identity + coreference, the memory overlay (donto_x_*), frames + events, annotations, policy + access, inference, and ops telemetry. The schema reference documents every one. Around it run a small set of services: the Rust substrate API, the extraction engine, the alignment daemon, the embedding coordinator (plus volunteer machines via donto.org/help), and the consumer APIs (memory, genealogy).