Comparison
25 alternatives — agent-memory systems, bitemporal databases, knowledge-graph platforms, claim models, entity resolution — assessed feature-by-feature against donto and ranked by relevance, most relevant first. Researched 2026-06-11 from vendor docs, papers, and code. This page is honest in both directions: it names the four features no alternative has, and it names what each alternative does better than donto.
The 15-year field precedent for donto’s bones — per-datum provenance, append-only revisioning, reversible identity — and the deep fork: Gotham resolves ambiguity at ingest, donto at query time. Essay-length, fully sourced.
The twelve features
donto’s feature set, used as the rubric. Four of them — F3, F7, F8, F11 — scored “yes” for no researched alternative.
Separate transaction-time and valid-time axes; time-travel queries on both — “what did we believe at T1 about time T2?”
Conflicting claims held simultaneously as legal, queryable state — never auto-resolved, invalidated, or merged away.
rebuts / undercuts / supports structure between claims, so disagreement itself is queryable.
Every claim linked to the exact source span in a retrievable document — or honestly flagged as unanchorable interpretation.
Append-only belief history; deletion structurally forbidden (donto enforces this with a database trigger).
Extractors freely invent predicates at write time — no fixed ontology, no property-approval process.
Vocabulary equivalences resolved at read time via similarity, confidence-weighted — not eager canonicalization.
Entity identity kept as scored, revisable edges; no hard merges; threshold selectable per query.
Computed per-claim standing: verification maturity, corroboration, contradiction-pressure, recency.
FTS + vector fusion; memorize / recall / search; MCP server. (Table stakes in 2026 — everyone competes here.)
A separate post-hoc citation stage verifies every extracted claim against its source span — a structural hallucination filter.
Extraction runs, source documents, and content-addressed blobs recorded per claim.
The matrix
✓ has it · ◐ partial (justified per system below) · — absent. Systems in relevance order. Hover any cell for the per-system justification.
| system | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| donto | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| #1Zep / Graphiti | ✓ | ◐ | — | ◐ | ◐ | ✓ | — | — | ◐ | ✓ | — | ◐ |
| #2Hindsight (Vectorize) | ◐ | ◐ | — | ◐ | ◐ | ◐ | — | — | ◐ | ✓ | — | ◐ |
| #3Mem0 | — | ◐ | — | — | ◐ | ◐ | ◐ | — | — | ✓ | — | ◐ |
| #4Wikidata / Wikibase | ◐ | ◐ | — | ◐ | ◐ | ◐ | — | — | ◐ | — | — | ◐ |
| #5Nanopublications | ◐ | ✓ | ◐ | ◐ | ✓ | ✓ | — | — | — | — | — | ◐ |
| #6Palantir Gotham | ◐ | ◐ | — | ◐ | ◐ | — | — | ◐ | — | ◐ | — | ✓ |
| #7Neo4j | — | ◐ | ◐ | ◐ | — | ✓ | — | — | — | ◐ | ◐ | — |
| #8Vector databases (as a class) | — | ◐ | — | ◐ | — | — | ◐ | — | — | ◐ | — | — |
| #9XTDB v2 | ✓ | — | — | — | ◐ | ◐ | — | — | — | — | — | ◐ |
| #10ORKG | ◐ | ◐ | — | ◐ | ◐ | ✓ | ◐ | — | — | ◐ | ◐ | ◐ |
| #11Datomic | ◐ | ◐ | — | — | ◐ | — | — | — | — | — | — | ◐ |
| #12Cognee | — | — | — | ◐ | — | ◐ | — | — | ◐ | ✓ | — | ◐ |
| #13Letta (MemGPT) | — | — | — | ◐ | ◐ | — | — | — | — | ✓ | — | ◐ |
| #14Dolt | ◐ | — | — | — | ◐ | — | — | — | — | ◐ | — | ◐ |
| #15TerminusDB | ◐ | — | — | — | ◐ | ◐ | — | ◐ | — | ◐ | — | ◐ |
| #16Senzing | — | ◐ | — | ◐ | ◐ | — | — | ◐ | — | — | — | ◐ |
| #17Palantir Foundry (Ontology) | ◐ | — | — | ◐ | ◐ | — | — | — | — | ◐ | ◐ | ✓ |
| #18Stardog | — | ◐ | — | — | — | ◐ | ◐ | — | — | ◐ | ◐ | ◐ |
| #19Ontotext GraphDB | ◐ | ◐ | — | — | ◐ | ◐ | — | — | — | ◐ | ◐ | ◐ |
| #20AllegroGraph | ◐ | ◐ | — | — | — | ◐ | — | — | — | ◐ | ◐ | ◐ |
| #21SQL:2011 temporal tables | ✓ | — | — | — | ◐ | — | — | — | — | — | — | ◐ |
| #22RDFox | — | ◐ | — | — | — | ✓ | ◐ | — | — | ◐ | — | ◐ |
| #23Diffbot Knowledge Graph | — | — | — | ◐ | — | — | — | — | ◐ | — | ◐ | ◐ |
| #24Quine / thatDot | ◐ | — | — | — | ✓ | ◐ | — | — | — | — | — | — |
| #25LangMem (LangChain) | — | — | — | — | — | ◐ | — | — | ◐ | ◐ | — | — |
donto’s row is honest with footnotes: F3’s machinery is live but its density is still low (2,433 argument edges against 42M claims), and F9 is standing v1, shipped 2026-06-11.
The field, ranked
Most relevant first. Relevance means “how seriously should someone choosing donto evaluate this instead” — a mix of conceptual overlap, buyer overlap, and capability.
Zep / Graphiti
agent memoryhigh relevanceReal-time temporal knowledge-graph memory: Graphiti (OSS core) builds bi-temporal graphs from conversations; Zep is the managed platform on top.
Why ranked here: The closest conceptual neighbor: the only competitor with genuine bi-temporality and an invalidate-not-delete philosophy. The architectural fork: Graphiti RESOLVES contradictions; donto HOLDS them.
Feature detail + what it does better
| F1 | Bitemporal state | ✓ | four edge timestamps; point-in-time queries on both axes |
| F2 | Contradiction-preserving | ◐ | contradicted edges are invalidated — picks a winner; history queryable, not co-equal |
| F3 | Typed argument edges | — | contradiction handled solely by invalidation |
| F4 | Evidence anchoring | ◐ | edges link to source episodes; no character spans, no unanchorable flagging |
| F5 | Non-destructive revision | ◐ | invalidate-don’t-delete by design, but delete APIs exist |
| F6 | Schema-late vocabulary | ✓ | LLM invents relation names freely by default |
| F7 | Query-time alignment | — | opposite: eager ingest-time dedup and canonicalization |
| F8 | Identity-as-hypothesis | — | entity resolution hard-merges at write time |
| F9 | Claim standing | ◐ | LLM “fact ratings”; no corroboration or contradiction-pressure |
| F10 | Hybrid retrieval + memory API | ✓ | semantic + BM25 + graph traversal; official MCP server 1.0 |
| F11 | Verified LLM extraction | — | single-pass extraction, no post-hoc citation verification |
| F12 | Process provenance | ◐ | episodes kept as ground truth; no content-addressed blobs or run records |
- Managed cloud with SOC 2 + HIPAA BAA
- Multiple graph-DB backends
- Polished Python/TS/Go SDKs + framework integrations
- Graph-explorer UI
- Published MCP server 1.0
Published LongMemEval_s 71.2% (gpt-4o reader, Jan 2025) — reader choice dominates these scores, so cross-vendor comparison is soft.
Hindsight (Vectorize)
agent memoryhigh relevanceFour-network agent memory (facts, experiences, confidence-scored opinions, observations) with retain/recall/reflect and 4-way hybrid retrieval — the AMB/BEAM benchmark authors.
Why ranked here: The most epistemics-flavored competitor — append-only facts, contradiction-aware recall, scored opinions — and the system donto benchmarks against on BEAM. Its reflect/freshness loop is the JUDGE-loop-shaped thing donto is still building.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | occurrence interval + ingestion time; no transaction-time axis or time-travel |
| F2 | Contradiction-preserving | ◐ | raw facts append-only, but opinions converge to one scored belief |
| F3 | Typed argument edges | — | reinforce/weaken update scores; not stored argument edges |
| F4 | Evidence anchoring | ◐ | document ids + preserved chunks; no per-fact span offsets |
| F5 | Non-destructive revision | ◐ | facts append-only; entity summaries LLM-merged; delete APIs exist |
| F6 | Schema-late vocabulary | ◐ | free narrative facts but fixed 4-network typology |
| F7 | Query-time alignment | — | eager write-time canonicalization of entities |
| F8 | Identity-as-hypothesis | — | hard entity merges via weighted argmax |
| F9 | Claim standing | ◐ | opinion confidence + proof counts; no maturity axis |
| F10 | Hybrid retrieval + memory API | ✓ | 4-way retrieval + cross-encoder rerank; 30-tool MCP server |
| F11 | Verified LLM extraction | — | no post-hoc citation verification stage |
| F12 | Process provenance | ◐ | documents API + operations tracking; no content-addressed blobs |
- Disposition parameters (skepticism/literalism/empathy modulating belief formation)
- Shipped reflect loop with observation freshness trends
- Cross-encoder reranking + token-budget packing
- Embedded no-server mode
- Owns the AMB benchmark harness
Self-published BEAM-10M 64.1%; donto-full-1 scored 0.684 on identical questions in a partial-ingest state (~5% claim coverage). Hindsight runs the leaderboard it tops.
Mem0
agent memoryhigh relevanceThe adoption leader in agent memory: an LLM pipeline extracting salient facts into a vector store, served back via hybrid retrieval.
Why ranked here: The name every prospect knows — mindshare leader, architecturally a fact cache rather than an epistemic substrate. Its April-2026 pivot to ADD-only (no destructive update) is the market converging on donto’s append-only stance.
Feature detail + what it does better
| F1 | Bitemporal state | — | single created_at plus optional timestamp; no dual axes |
| F2 | Contradiction-preserving | ◐ | classic pipeline LLM-DELETEd conflicts; 2026 ADD-only pivot co-stores but doesn’t model them |
| F3 | Typed argument edges | — | graph variant removed from OSS in 2026 |
| F4 | Evidence anchoring | — | memories are LLM paraphrases; no source spans |
| F5 | Non-destructive revision | ◐ | audit-only history table; deletes still destroy live state |
| F6 | Schema-late vocabulary | ◐ | free-text facts, no predicate model |
| F7 | Query-time alignment | ◐ | embedding+BM25 fusion only; no explicit equivalence machinery |
| F8 | Identity-as-hypothesis | — | entity linking is a ranking boost, not scored identity |
| F9 | Claim standing | — | retrieval relevance only |
| F10 | Hybrid retrieval + memory API | ✓ | hybrid fusion; OpenMemory MCP server |
| F11 | Verified LLM extraction | — | extraction output trusted as-is |
| F12 | Process provenance | ◐ | user/agent/run ids; no source documents or blobs |
- Massive community + funding momentum
- AWS first-party distribution (Bedrock/Strands)
- ~20 pluggable vector stores and LLM providers
- OpenMemory local-first cross-client MCP
- Sub-second latency engineering
Benchmark numbers publicly contested (the Mem0-vs-Zep LOCOMO dispute); self-reported BEAM-10M 48.6% unreplicated.
Wikidata / Wikibase
claim modelhigh relevanceThe planet’s community-curated claim store: every statement carries qualifiers, references, and a three-level rank; Wikibase is the deployable software.
Why ranked here: donto’s closest conceptual ancestor — statement-level references, ranks, and held disagreement. It falls short exactly where donto bets: span-level evidence, computed standing, queryable belief history, free predicate minting, hypothesis-grade identity.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | qualifiers carry valid time; edit history not queryable in SPARQL |
| F2 | Contradiction-preserving | ◐ | conflicting statements coexist, but ranks drive social resolution |
| F3 | Typed argument edges | — | disagreement lives on talk pages, not in the graph |
| F4 | Evidence anchoring | ◐ | references are URL/work-level; span quotation optional and rare |
| F5 | Non-destructive revision | ◐ | full revision history, but live statements destructively edited |
| F6 | Schema-late vocabulary | ◐ | property creation gated by community proposal (~12K properties) |
| F7 | Query-time alignment | — | one curated vocabulary; no similarity folding |
| F8 | Identity-as-hypothesis | — | items hard-merged with redirects |
| F9 | Claim standing | ◐ | ranks are 3-valued editorial flags, not computed standing |
| F10 | Hybrid retrieval + memory API | — | SPARQL + label search; no vector recall or memory API |
| F11 | Verified LLM extraction | — | human/bot editing, no extraction pipeline |
| F12 | Process provenance | ◐ | per-edit provenance; no extraction-run or blob model |
- The community-curation governance machine
- Multilingual labels at planetary scale
- The WDQS SPARQL ecosystem
- Property constraints (soft validation)
- Federation hooks
Nanopublications
claim modelhigh relevanceAtomic claims as tiny immutable RDF graphs — assertion + provenance + pubinfo — cryptographically named (Trusty URIs) and published to a decentralized server network.
Why ranked here: Philosophically the nearest neighbor: immutable, provenance-first, atomic claims with supersede-not-delete. It is a publishing standard, though — no alignment, standing, retrieval engine, or extraction pipeline. The only other system where immutability is enforced rather than promised.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | creation timestamp only; no valid-time axis or time-travel |
| F2 | Contradiction-preserving | ✓ | anyone publishes anything; conflicts coexist permanently |
| F3 | Typed argument edges | ◐ | CiTO cite/dispute terms usable; no enforced argumentation semantics |
| F4 | Evidence anchoring | ◐ | PROV provenance at work level, not exact spans |
| F5 | Non-destructive revision | ✓ | Trusty URIs enforce immutability; supersede/retract are append-only |
| F6 | Schema-late vocabulary | ✓ | any RDF predicate usable |
| F7 | Query-time alignment | — | alignment is manual ontology reuse |
| F8 | Identity-as-hypothesis | — | standard RDF identity |
| F9 | Claim standing | — | nothing aggregates assessments into standing |
| F10 | Hybrid retrieval + memory API | — | SPARQL services only |
| F11 | Verified LLM extraction | — | human/tool authoring |
| F12 | Process provenance | ◐ | signed per-nanopub provenance; no blob store or run model |
- Cryptographic verifiability — anyone can check integrity offline
- Full decentralization, no single owner
- DOI-like citability of single claims
- W3C-stack interop
Palantir Gotham
intel platformhigh relevancePalantir’s defense/intelligence platform (2008): a curated Dynamic Ontology over an append-only Revisioning Database, with per-datum provenance-borne access control, federated search, link analysis (Graph), geospatial C2 (Gaia), and multi-instance Nexus Peering.
Why ranked here: The 15-year field precedent for donto’s bones — per-datum source tethering, append-only revision cards, reversible entity merges, human-adjudicated conflict — built pre-abundance: typing at ingest, identity by winner-merge, one current truth in the UI. The deepest structural sibling in the field.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | RevDB “stack of cards” gives full per-attribute transaction-time history; no valid-time axis — world-time is just data properties visualized on timelines |
| F2 | Contradiction-preserving | ◐ | conflicting values coexist as revision cards and parallel analyst sandboxes, but the UI presents a winner — no co-true ranked state |
| F3 | Typed argument edges | — | no argument model; replication conflicts go to a human adjudication queue |
| F4 | Evidence anchoring | ◐ | every property and relationship tethers to its source document — record/document granularity, not spans, and no unanchorable flagging |
| F5 | Non-destructive revision | ◐ | append-only revision cards (actor + time + security + source per change), but a hard-delete purge capability exists |
| F6 | Schema-late vocabulary | — | the Dynamic Ontology is admin-curated and typed at ingest; “dynamic” means editable post-deployment, not emergent |
| F7 | Query-time alignment | — | alignment is integration-time parser work by forward-deployed engineers |
| F8 | Identity-as-hypothesis | ◐ | object resolution is reversible with preserved sub-histories, but picks a “winner” record for writes — asserted merge, not scored hypothesis |
| F9 | Claim standing | — | no maturity/corroboration ranking; documented critique: algorithm-derived links read as fact in the UI |
| F10 | Hybrid retrieval + memory API | ◐ | federated search across every integrated source + Search Around multi-hop graph queries; not a memory API, no MCP |
| F11 | Verified LLM extraction | — | AI detections get human confirm/dismiss (Video app); no citation-verification stage |
| F12 | Process provenance | ✓ | per-revision actor/source/classification, and provenance carries mandatory access control into derivatives — exceeds donto here |
- Provenance that is ACCESS-CONTROL-BEARING: classification propagates as mandatory control into every derived dossier, slide, and chat message — auto-classify to highest content, redact-down
- Nexus Peering: multi-instance replication of full record history, across different classification schemes, disconnected-tolerant, with human conflict queues
- CBAC + RBAC + ABAC down to per-property portion markings; tamper-evident audit accredited for TS/SCI environments
- Operational apps donto has no analogue for: Gaia (geospatial C2), Video (FMV + AR overlays), Target Workbench
- 15 years of field validation in the hardest provenance-critical environments on earth
Full essay-length comparison at /comparison/gotham — researched 2026-07-02 from Palantir docs, the 2010 whitepaper, patents, the UK G-Cloud service definition, and press coverage.
Neo4j
graph platformhigh relevanceThe dominant property-graph database, now centered on GraphRAG: vector indexes, an official GraphRAG framework, and LLM graph-construction tooling.
Why ranked here: The default answer to “store extracted knowledge as a graph” — the thing donto must explain itself against. Every donto invariant is a build-it-yourself convention on Neo4j, silently violable by any writer.
Feature detail + what it does better
| F1 | Bitemporal state | — | temporal property types only; no engine time-travel |
| F2 | Contradiction-preserving | ◐ | reified claim nodes coexist by convention; no semantics |
| F3 | Typed argument edges | ◐ | any relationship type expressible; no argumentation tooling |
| F4 | Evidence anchoring | ◐ | GraphRAG lexical graph links chunks to docs — convention, not contract |
| F5 | Non-destructive revision | — | in-place update and DELETE are the normal model |
| F6 | Schema-late vocabulary | ✓ | schema-optional; labels and relationship types minted freely |
| F7 | Query-time alignment | — | alignment must be precomputed |
| F8 | Identity-as-hypothesis | — | standard practice is destructive node merging |
| F9 | Claim standing | — | GDS scores are generic graph metrics |
| F10 | Hybrid retrieval + memory API | ◐ | native vector + FTS, hybrid retrievers, official MCP; no memorize/recall semantics |
| F11 | Verified LLM extraction | ◐ | LLM Graph Builder extracts; no span-citation verification |
| F12 | Process provenance | — | no native extraction-run or source lineage |
- Cypher + the GQL ISO standard
- Multi-hop traversal performance
- Clustering/HA + managed Aura
- Graph Data Science library
- The largest graph talent pool and integration surface
Vector databases (as a class)
retrievalhigh relevancePinecone / Weaviate / Qdrant / pgvector — embedding-similarity stores, the default memory layer of the RAG era. (donto itself runs on pgvector.)
Why ranked here: What every team evaluating “agent memory” reaches for first — high perceived relevance, low capability overlap. The class answers “what’s similar?”; it cannot answer “what’s claimed, by whom, contradicted by what, as of when?”
Feature detail + what it does better
| F1 | Bitemporal state | — | timestamp metadata filters at best |
| F2 | Contradiction-preserving | ◐ | stores contradictory texts blindly; cannot represent conflict as conflict |
| F3 | Typed argument edges | — | no edges at all |
| F4 | Evidence anchoring | ◐ | chunk metadata can point at sources — app convention |
| F5 | Non-destructive revision | — | upsert/delete are the API |
| F6 | Schema-late vocabulary | — | claims aren’t representable — only opaque text + payload |
| F7 | Query-time alignment | ◐ | embedding similarity is read-time matching, but over text with no claim joining |
| F8 | Identity-as-hypothesis | — | no entity model |
| F9 | Claim standing | — | cosine similarity is not corroboration |
| F10 | Hybrid retrieval + memory API | ◐ | hybrid retrieval at scale is the class’s home turf; memory semantics live in layers above |
| F11 | Verified LLM extraction | — | out of scope |
| F12 | Process provenance | — | out of scope |
- Managed elastic scale to billions of vectors
- Single-digit-ms ANN latency
- Quantization + GPU acceleration
- Multi-tenancy and serverless pricing
- Enormous integration ecosystem
XTDB v2
bitemporal DBmedium relevanceAn immutable bitemporal SQL database — every table tracks system time and valid time per SQL:2011 — on a columnar Arrow engine, speaking the Postgres wire protocol.
Why ranked here: The best-in-class answer to “who else does real bitemporality?” and the credible “just use a bitemporal DB” objection — but it versions one agreed truth; nothing for contested knowledge. Its ERASE is a compliance feature donto deliberately rejects: a philosophical fork, not a gap.
Feature detail + what it does better
| F1 | Bitemporal state | ✓ | system + valid time on every table; time-travel on both axes |
| F2 | Contradiction-preserving | — | updates supersede per entity/period; conflicts resolved |
| F3 | Typed argument edges | — | no argumentation model |
| F4 | Evidence anchoring | — | no evidence concept |
| F5 | Non-destructive revision | ◐ | immutable by default, but ERASE permanently destroys (GDPR feature) |
| F6 | Schema-late vocabulary | ◐ | dynamic columns, no DDL; still relational attributes |
| F7 | Query-time alignment | — | no vocabulary folding |
| F8 | Identity-as-hypothesis | — | hard primary-key identity |
| F9 | Claim standing | — | no standing |
| F10 | Hybrid retrieval + memory API | — | no vectors, no memory API |
| F11 | Verified LLM extraction | — | no extraction |
| F12 | Process provenance | ◐ | reified queryable transactions; write-level audit |
- SQL:2011 bitemporal SQL on the Postgres wire protocol
- Columnar Arrow engine + object-storage separation (cheap full history)
- ACID serializable transactions
- ERASE for GDPR Art. 17
- Kubernetes-native ops
ORKG
claim modelmedium relevanceTIB Hannover’s Open Research Knowledge Graph: scholarly contributions as structured statements, compared across papers in machine-actionable tables.
Why ranked here: The closest use-case cousin: cross-source scientific claims with per-source attribution and post-hoc property alignment — independent validation of donto’s thesis, including the free-predicate “problem”. A curated scholarly app, not a general substrate.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | immutable published snapshots; no valid time or time-travel |
| F2 | Contradiction-preserving | ◐ | contradictory paper results coexist by design — per-paper attribution, not semantics |
| F3 | Typed argument edges | — | comparisons juxtapose; no argument edges |
| F4 | Evidence anchoring | ◐ | anchored to papers at DOI level, not spans |
| F5 | Non-destructive revision | ◐ | published comparisons immutable; working graph editable |
| F6 | Schema-late vocabulary | ✓ | users freely mint properties — predicate proliferation is their documented problem too |
| F7 | Query-time alignment | ◐ | comparison builder aligns similar properties — curatorial, not query-time |
| F8 | Identity-as-hypothesis | — | manual resource merges |
| F9 | Claim standing | — | curation grades, not computed standing |
| F10 | Hybrid retrieval + memory API | ◐ | faceted + similarity search, SPARQL, REST APIs; no memory API |
| F11 | Verified LLM extraction | ◐ | LLM-assisted suggestion with human validation |
| F12 | Process provenance | ◐ | per-statement who/when + PROV on snapshots |
- The comparison-table product (citable cross-paper SOTA tables with DOIs)
- Scholarly integrations (DataCite, ORCID)
- Curated templates and observatories
Datomic
bitemporal DBmedium relevanceNubank’s immutable fact database for the JVM: an append-only log of [entity attribute value tx] datoms with Datalog queries and as-of/since/history time travel.
Why ranked here: The closest mainstream system to donto’s append-only DNA, at the opposite epistemic pole: unitemporal, single-truth, schema-required. System-of-record for one agreed reality.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | transaction time only; valid time hand-modeled |
| F2 | Contradiction-preserving | ◐ | cardinality-many holds multiple values; cardinality-one auto-retracts |
| F3 | Typed argument edges | — | no argumentation model |
| F4 | Evidence anchoring | — | no evidence concepts |
| F5 | Non-destructive revision | ◐ | append-only with history, but excision permanently deletes |
| F6 | Schema-late vocabulary | — | every attribute requires upfront schema |
| F7 | Query-time alignment | — | fixed attribute identifiers |
| F8 | Identity-as-hypothesis | — | deterministic upsert identity |
| F9 | Claim standing | — | no standing |
| F10 | Hybrid retrieval + memory API | — | Lucene fulltext only; no vectors or memory API |
| F11 | Verified LLM extraction | — | no LLM tooling |
| F12 | Process provenance | ◐ | reified transactions take arbitrary metadata |
- Datalog with recursive rules
- Peer model — database-as-a-value queried in-process
- Speculative what-if databases (never committed)
- Jepsen-validated single-writer ACID
- Planet-scale production proof
Cognee
agent memorymedium relevanceAn Extract-Cognify-Load pipeline ingesting 38+ formats into a combined knowledge-graph + vector + relational store with remember/recall/forget operations.
Why ranked here: A well-funded graph-RAG productizer with overlapping pitch language, but architecturally the opposite of a claim substrate: eager canonicalization, hard merges, deletion-as-feature.
Feature detail + what it does better
| F1 | Bitemporal state | — | extracts event valid-time only; no transaction axis |
| F2 | Contradiction-preserving | — | conflicts trigger invalidation or clarification — resolution, not coexistence |
| F3 | Typed argument edges | — | absent |
| F4 | Evidence anchoring | ◐ | page/section citations, not exact spans |
| F5 | Non-destructive revision | — | forget/prune are first-class features |
| F6 | Schema-late vocabulary | ◐ | free extraction by default, but pushes Pydantic/OWL schemas |
| F7 | Query-time alignment | — | eager canonicalization at write (fuzzy cutoff at ingest) |
| F8 | Identity-as-hypothesis | — | content-hash + embedding hard merges at cognify |
| F9 | Claim standing | ◐ | marketing claims feedback-reweighted edges; undocumented |
| F10 | Hybrid retrieval + memory API | ✓ | vector+graph hybrid, official MCP, Claude Code plugin |
| F11 | Verified LLM extraction | — | citations carried from ingestion, never verified |
| F12 | Process provenance | ◐ | relational doc/chunk tracking + OpenTelemetry |
- Pluggable multi-backend matrix (5 graph DBs × 7+ vector stores)
- OWL ontology integration
- 38+ format multimodal ingestion
- Graph visualization UI + one-click deploys
Letta (MemGPT)
agent memorymedium relevanceThe UC-Berkeley agent runtime for stateful agents that learn via self-editing memory blocks, archival vector memory, and sleep-time background agents.
Why ranked here: Extremely well-known, but it competes as an agent runtime with memory, not a memory substrate — prose blocks, not claims.
Feature detail + what it does better
| F1 | Bitemporal state | — | created/updated timestamps only |
| F2 | Contradiction-preserving | — | self-editing memory rewrites conflicts into one clean context |
| F3 | Typed argument edges | — | memory is text blocks, not a claim graph |
| F4 | Evidence anchoring | ◐ | source passages link chunks to files; no per-claim anchoring |
| F5 | Non-destructive revision | ◐ | block history undo/redo; in-place edits are the design |
| F6 | Schema-late vocabulary | — | free prose — no typed claims at all |
| F7 | Query-time alignment | — | no predicates exist to align |
| F8 | Identity-as-hypothesis | — | no entity model |
| F9 | Claim standing | — | retrieval rank only |
| F10 | Hybrid retrieval + memory API | ✓ | hybrid vector+FTS via RRF; insert/search APIs |
| F11 | Verified LLM extraction | — | sleep-time derivation unverified |
| F12 | Process provenance | ◐ | source files + passage lineage + block history |
- A full agent runtime (loop, tools, subagents, server-side state)
- ADE visual development environment
- Sleep-time compute
- Agent File (.af) portability standard
Dolt
versioned DBmedium relevanceA MySQL-compatible SQL database with full Git semantics — branch, merge, diff, clone, and pull tables like a repository; actively marketing “agents need branches”.
Why ranked here: The strongest general-purpose versioned-data product and the only one in its class converging on donto’s agent-memory buyer narrative — with single-truth semantics: merging forces a winner.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | commit history ≈ transaction time (AS OF); no valid time |
| F2 | Contradiction-preserving | — | conflicts are merge errors to resolve; one truth per branch HEAD |
| F3 | Typed argument edges | — | no claim model |
| F4 | Evidence anchoring | — | no evidence model |
| F5 | Non-destructive revision | ◐ | full history but rewritable (gc, squash; auto-GC default in 2.0) |
| F6 | Schema-late vocabulary | — | DDL required before writes |
| F7 | Query-time alignment | — | exact relational semantics |
| F8 | Identity-as-hypothesis | — | primary-key identity |
| F9 | Claim standing | — | no scoring |
| F10 | Hybrid retrieval + memory API | ◐ | beta vectors + FTS + official MCP; no recall fusion API |
| F11 | Verified LLM extraction | — | agents write via SQL, unverified |
| F12 | Process provenance | ◐ | content-addressed commits with author/message |
- Git semantics on tables (branch/merge/diff/push-pull as SQL procedures)
- Cell-level three-way merge
- MySQL wire compatibility
- Data pull requests with web review UI
- Mature commercial hosting
TerminusDB
versioned DBmedium relevance“Git for data”: JSON documents over an RDF graph with immutable commit history, branch/merge/diff, schema validation, and GraphQL/WOQL datalog.
Why ranked here: The closest philosophical neighbor among versioned graph stores — but it versions at the dataset level (commits) where donto versions at the claim level, and it enforces consistency where donto holds contradiction.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | transaction-time travel via commits; no valid time |
| F2 | Contradiction-preserving | — | schema validation enforces consistency |
| F3 | Typed argument edges | — | hand-modelable only |
| F4 | Evidence anchoring | — | commits record author/message, not evidence spans |
| F5 | Non-destructive revision | ◐ | append-only layers, but squash/reset discard history |
| F6 | Schema-late vocabulary | ◐ | schema-first closed-world; v12 allows untyped JSON blobs |
| F7 | Query-time alignment | — | no read-time folding |
| F8 | Identity-as-hypothesis | ◐ | VectorLink suggests scored duplicate candidates; merges manual |
| F9 | Claim standing | — | no standing |
| F10 | Hybrid retrieval + memory API | ◐ | vector sidecar + MCP via DFRNT tooling; no fusion API |
| F11 | Verified LLM extraction | — | no extraction |
| F12 | Process provenance | ◐ | per-commit provenance, content-addressed layers |
- Whole-dataset git collaboration (branch/merge/rebase/push/pull/clone)
- Closed-world schema validation on every commit
- WOQL datalog + auto-generated GraphQL
- Succinct immutable data structures
Senzing
entity resolutionmedium relevanceThe specialist real-time entity-resolution engine: principle-based matching with explanations, no training or tuning, embeddable in your own process.
Why ranked here: Not a substrate — it solves exactly one slice (identity), better than anyone on resolution quality, while sharing donto’s non-destructive philosophy. More plausible as a component donto embeds than an alternative. donto’s identity layer is embryonic by comparison.
Feature detail + what it does better
| F1 | Bitemporal state | — | current-state resolved view |
| F2 | Contradiction-preserving | ◐ | conflicting source values retained inside entities |
| F3 | Typed argument edges | — | disclosed/derived relationships only |
| F4 | Evidence anchoring | ◐ | record-level provenance; structured records, no spans |
| F5 | Non-destructive revision | ◐ | originals kept; record deletes supported |
| F6 | Schema-late vocabulary | — | preconfigured person/org feature schema |
| F7 | Query-time alignment | — | resolution recomputed at ingest |
| F8 | Identity-as-hypothesis | ◐ | closest in field: never fuses records, auto un-merges on reversal — but serves ONE canonical view, no per-query threshold |
| F9 | Claim standing | — | match scoring, not standing |
| F10 | Hybrid retrieval + memory API | — | entity search APIs only |
| F11 | Verified LLM extraction | — | not an extraction system |
| F12 | Process provenance | ◐ | per-record source provenance + explainable match keys |
- Real-time ER at billions of records, millisecond latency
- Sequence-neutral entity-centric learning
- Zero-training principle-based matching
- Watchlist-grade fuzzy name/address comparators
- Explainable match output
Palantir Foundry (Ontology)
enterprise platformmedium relevanceFoundry’s Ontology maps integrated enterprise data to governed object types, links, and actions — an operational digital twin powering apps and AIP agent workflows.
Why ranked here: The clearest philosophical foil: Foundry curates ONE operational truth, donto holds ALL contested truths. Competes for “where does org knowledge live” budgets; unbuyable for small teams.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | dataset transactions give transaction-time versioning; no claim-level valid time |
| F2 | Contradiction-preserving | — | one canonical operational truth; conflicts resolved upstream |
| F3 | Typed argument edges | — | links model domain relationships |
| F4 | Evidence anchoring | ◐ | object→dataset→source lineage is strong; no span contract |
| F5 | Non-destructive revision | ◐ | versioned datasets; objects are mutable operational state |
| F6 | Schema-late vocabulary | — | ontology governed upfront — the philosophical opposite of emit-free |
| F7 | Query-time alignment | — | alignment is design-time |
| F8 | Identity-as-hypothesis | — | ER baked into pipelines, merged canonical records |
| F9 | Claim standing | — | not a claims model |
| F10 | Hybrid retrieval + memory API | ◐ | AIP agents + object search; not a memory API |
| F11 | Verified LLM extraction | ◐ | AIP pipelines with evals; span verification unverified |
| F12 | Process provenance | ✓ | best-in-class lineage — exceeds donto here |
- Enterprise governance (ACLs, audit, compliance) at scale
- End-to-end pipeline + lineage tooling beyond donto’s
- Operational app building + writeback
- Forward-deployed engineering
Stardog
graph platformmedium relevanceEnterprise knowledge graph centered on data virtualization — querying external databases in place as graphs — with query-time OWL reasoning and the Voicebox LLM interface.
Why ranked here: Its query-time-reasoning philosophy rhymes with donto’s defer-to-read stance — but it is schema-forward data-fabric middleware, and it removed its versioning feature.
Feature detail + what it does better
| F1 | Bitemporal state | — | versioning feature was removed (v7 era) |
| F2 | Contradiction-preserving | ◐ | stores arbitrary triples; reasoning is inconsistency-tolerant |
| F3 | Typed argument edges | — | edge properties annotate, no argumentation |
| F4 | Evidence anchoring | — | BITES links docs to entities, not spans to claims |
| F5 | Non-destructive revision | — | standard mutable store |
| F6 | Schema-late vocabulary | ◐ | any IRI allowed; product pushes ontology-driven modeling |
| F7 | Query-time alignment | ◐ | closest in class: query-time reasoning resolves logical equivalence at read — but logical only, not similarity-based |
| F8 | Identity-as-hypothesis | — | owl:sameAs hard identity |
| F9 | Claim standing | — | nothing comparable |
| F10 | Hybrid retrieval + memory API | ◐ | FTS, GeoSPARQL, Voicebox NL Q&A; no memory API |
| F11 | Verified LLM extraction | ◐ | Voicebox grounds answers in the KG; no extraction faithfulness |
| F12 | Process provenance | ◐ | edge-property provenance metadata |
- Virtual graphs — query Snowflake/Oracle in place, zero-copy
- Query-time OWL DL reasoning with explanations
- Integrity constraint validation
- Federated query optimization
Ontotext GraphDB
graph platformmedium relevanceThe market-leading enterprise RDF triplestore: forward-chaining OWL reasoning, SPARQL 1.1, and (v11) GraphRAG/vector integrations.
Why ranked here: Competes for enterprise-KG budget and now markets GraphRAG — but every donto invariant would be a custom app built on top of it.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | data-history plugin gives transaction-time travel, off by default; no valid time |
| F2 | Contradiction-preserving | ◐ | stores contradictory triples; OWL reasoning treats inconsistency as error |
| F3 | Typed argument edges | — | RDF-star annotates, no semantics |
| F4 | Evidence anchoring | — | model-it-yourself |
| F5 | Non-destructive revision | ◐ | history plugin when enabled; DELETE is normal |
| F6 | Schema-late vocabulary | ◐ | any IRI, but the value prop is ontology-driven |
| F7 | Query-time alignment | — | equivalence materialized at load |
| F8 | Identity-as-hypothesis | — | owl:sameAs smushing |
| F9 | Claim standing | — | nothing comparable |
| F10 | Hybrid retrieval + memory API | ◐ | vector via Elasticsearch connectors + NL interface; no memory API |
| F11 | Verified LLM extraction | ◐ | text-to-graph tooling exists; no span verification |
| F12 | Process provenance | ◐ | named graphs + DIY PROV |
- Standards-grade SPARQL 1.1 + RDF4J
- Forward-chaining OWL2 reasoning with configurable rulesets
- SHACL validation
- Clustered HA + connector ecosystem
- Mature workbench + consultant ecosystem
AllegroGraph
graph platformmedium relevanceDistributed multi-modal (RDF + vector + JSON document) graph database marketing itself as a neuro-symbolic AI platform with LLM functions inside SPARQL.
Why ranked here: Its neuro-symbolic + vector marketing overlaps donto’s pitch surface most among triplestores — architecturally still a mutable, resolve-at-load graph DB.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | temporal-reasoning library models valid time in data; no transaction-time travel |
| F2 | Contradiction-preserving | ◐ | stores conflicting triples without semantics |
| F3 | Typed argument edges | — | quints can annotate; no model |
| F4 | Evidence anchoring | — | no claim→span contract |
| F5 | Non-destructive revision | — | mutable store |
| F6 | Schema-late vocabulary | ◐ | schema-free RDF; ecosystem assumes ontologies |
| F7 | Query-time alignment | — | logical reasoning, not similarity |
| F8 | Identity-as-hypothesis | — | owl:sameAs + batch ER tool |
| F9 | Claim standing | — | nothing comparable |
| F10 | Hybrid retrieval + memory API | ◐ | native vectors + FTS + LLM-in-SPARQL; agent-memory positioning emerging |
| F11 | Verified LLM extraction | ◐ | LLMagic generates triples; no verification stage |
| F12 | Process provenance | ◐ | named-graph provenance possible |
- RDF + vector + JSON docs in one engine
- LLM functions callable inside SPARQL
- Temporal/geospatial/social analytics libraries
- FedShard horizontal sharding
- Prolog rule engine
SQL:2011 temporal tables
bitemporal DBmedium relevanceNative temporal-table support in MariaDB (true bitemporal), IBM Db2 (the most complete), SQL Server (system-time only), Oracle (via Flashback) — the “just use the database” objection.
Why ranked here: Covers exactly one of twelve dimensions (time), with far better tooling. The fine irony: donto’s own host, Postgres, is the one mainstream DB without native temporal tables — donto implements its bitemporality itself.
Feature detail + what it does better
| F1 | Bitemporal state | ✓ | Db2 + MariaDB ≥10.4: full bitemporal on both axes |
| F2 | Contradiction-preserving | — | temporal PKs exist precisely to forbid conflicting simultaneous assertions |
| F3 | Typed argument edges | — | no claim model |
| F4 | Evidence anchoring | — | rows not anchored to provenance text |
| F5 | Non-destructive revision | ◐ | automatic history capture, but admins can purge; retention auto-deletes |
| F6 | Schema-late vocabulary | — | fixed relational schema |
| F7 | Query-time alignment | — | exact-match joins |
| F8 | Identity-as-hypothesis | — | identity = primary key |
| F9 | Claim standing | — | no scoring |
| F10 | Hybrid retrieval + memory API | — | no memory layer |
| F11 | Verified LLM extraction | — | none |
| F12 | Process provenance | ◐ | who/when audit logs |
- The full SQL ecosystem (BI, ORMs, drivers)
- Transparent history capture with zero app changes
- Enforced temporal integrity constraints
- Mature HA/replication/PITR ops
- Vendor compliance certifications
RDFox
graph platformlow relevanceOxford Semantic’s in-memory RDF + Datalog reasoning engine — incremental materialization of inferences as facts and rules change; acquired by Samsung (2024) for on-device AI.
Why ranked here: The classical-KG posture donto rejects: deductive closure over a curated consistent ontology. More plausible as a complement — a reasoning lens over a donto export — than a substitute.
Feature detail + what it does better
| F1 | Bitemporal state | — | current-state store only |
| F2 | Contradiction-preserving | ◐ | triples coexist; reasoning flags inconsistency as error |
| F3 | Typed argument edges | — | nothing native |
| F4 | Evidence anchoring | — | hand-modeled |
| F5 | Non-destructive revision | — | incremental retraction (deletion) is a headline feature |
| F6 | Schema-late vocabulary | ✓ | arbitrary RDF predicates at write |
| F7 | Query-time alignment | ◐ | equivalence folded at materialization (write) time |
| F8 | Identity-as-hypothesis | — | equality reasoning hard-merges resources |
| F9 | Claim standing | — | no standing |
| F10 | Hybrid retrieval + memory API | ◐ | Lucene FTS + experimental vector similarity |
| F11 | Verified LLM extraction | — | no extraction |
| F12 | Process provenance | ◐ | native explanation trees for derived facts |
- Incremental Datalog materialization (millions of inferences/sec, updated on change)
- OWL 2 RL + SWRL rules, stratified negation
- Explanation trees for inferred facts
- Edge/on-device footprint
Diffbot Knowledge Graph
data productlow relevanceA pre-crawled, ML-extracted knowledge graph of the public web — 10B+ entities, 1T+ facts, refreshed every 4–5 days — sold with extraction and query APIs.
Why ranked here: A read-mostly external data product — complementary (a source to extract FROM) more than competitive.
Feature detail + what it does better
| F1 | Bitemporal state | — | rolling refresh snapshots |
| F2 | Contradiction-preserving | — | builds canonical deduplicated entities |
| F3 | Typed argument edges | — | fixed fact ontology |
| F4 | Evidence anchoring | ◐ | facts carry origin URLs; not user-controlled spans |
| F5 | Non-destructive revision | — | records overwritten on refresh |
| F6 | Schema-late vocabulary | — | fixed Diffbot ontology |
| F7 | Query-time alignment | — | entity linking at build time |
| F8 | Identity-as-hypothesis | — | hard-merged canonical entities |
| F9 | Claim standing | ◐ | per-fact confidence scores |
| F10 | Hybrid retrieval + memory API | — | query APIs, not a writable memory |
| F11 | Verified LLM extraction | ◐ | mature ML extraction with confidences; no span verification exposed |
| F12 | Process provenance | ◐ | origin URLs + crawl metadata |
- The asset itself: a maintained 10B-entity web graph nobody has to extract
- Web-scale crawling infrastructure
- Entity enrichment from a name or URL
Quine / thatDot
streaming graphlow relevanceA streaming graph interpreter: event streams become a versioned property graph, with standing queries that fire the instant a pattern completes.
Why ranked here: A different problem (real-time stream detection), but the best prior art that an event-sourced fully-versioned graph ships in practice — and inspiration for standing contradiction queries.
Feature detail + what it does better
| F1 | Bitemporal state | ◐ | full transaction-time versioning with atTime queries; no valid time |
| F2 | Contradiction-preserving | — | property graph, no claim semantics |
| F3 | Typed argument edges | — | absent |
| F4 | Evidence anchoring | — | absent |
| F5 | Non-destructive revision | ✓ | event-sourced per-node journals; replay any historical state |
| F6 | Schema-late vocabulary | ◐ | schemaless properties; no alignment |
| F7 | Query-time alignment | — | absent |
| F8 | Identity-as-hypothesis | — | opposite: identity is a deterministic function of data |
| F9 | Claim standing | — | absent |
| F10 | Hybrid retrieval + memory API | — | out of scope |
| F11 | Verified LLM extraction | — | out of scope |
| F12 | Process provenance | — | out of scope |
- Standing queries — continuous incremental pattern matching over unbounded streams
- High-throughput streaming ingest
LangMem (LangChain)
agent memorylow relevanceLangChain’s SDK of memory primitives for LangGraph agents — extraction tools, background consolidation, prompt optimizers — storing JSON documents in BaseStore.
Why ranked here: Included for the LangChain name — a thin, lightly-maintained primitive SDK that even LangChain’s own docs now route around.
Feature detail + what it does better
| F1 | Bitemporal state | — | created/updated only |
| F2 | Contradiction-preserving | — | consolidation explicitly resolves contradictions and deletes outdated memories |
| F3 | Typed argument edges | — | flat JSON documents |
| F4 | Evidence anchoring | — | stores conclusions, not spans |
| F5 | Non-destructive revision | — | updates overwrite in place |
| F6 | Schema-late vocabulary | ◐ | free text or fixed user schemas |
| F7 | Query-time alignment | — | consolidation merges eagerly |
| F8 | Identity-as-hypothesis | — | no entity model |
| F9 | Claim standing | ◐ | importance/strength retrieval weighting only |
| F10 | Hybrid retrieval + memory API | ◐ | pgvector semantic search; no FTS fusion or official MCP |
| F11 | Verified LLM extraction | — | no verification |
| F12 | Process provenance | — | none |
- Procedural memory / prompt optimization (rewrites the agent’s own system prompt)
- Deep LangGraph ecosystem distribution
What the field does better than donto
Proof discipline is the brand: a comparison that only flatters its author is marketing. These are real gaps, named with their winners.
No hosted offering, no SOC 2 / HIPAA. Zep, Mem0, Pinecone, and Foundry all sell this on day one.
No polished multi-language SDKs, framework integrations, or talent pool. Neo4j’s ecosystem and Mem0’s 58k-star community dwarf donto’s.
No SPARQL, no OWL reasoning, no SHACL, no federation. The RDF world’s twenty years of tooling doesn’t plug in directly — donto’s answer is exports as lenses with loss reports, which is honest but young.
donto’s embedding fabric is bge-small + HNSW inside Postgres on a 4-core box. Dedicated vector DBs do billions of vectors at single-digit-millisecond latency.
donto keeps identity as hypothesis (the right model), but its matcher is embryonic. Senzing’s principle-based ER at billions of records is decades ahead on match quality.
No Datalog engine, no incremental materialization, no deductive closure. RDFox computes millions of inferences per second; donto computes none.
donto’s contradiction detection is batch; Quine fires standing queries the instant a pattern completes in a stream.
Hindsight’s reflect loop with observation freshness trends is live today; donto’s JUDGE/STEER loops are partially built (standing v1 just landed).
Gotham propagates classification as mandatory access control into every derived artifact — dossiers auto-classify to their highest-content level, chat redacts per viewer. donto’s Trust Kernel has the same design on paper but is present-and-unenforced.
Nexus Peering replicates full per-record history across instances and even across different classification schemes, disconnected-tolerant, with human conflict queues. donto’s federation is an M9 research spike.
Methodology
Researched 2026-06-11 by four parallel research agents over vendor documentation, GitHub repositories, papers, and third-party comparisons; synthesized and edited by hand. “Partial” always carries a justification (hover matrix cells or expand a card). Where a capability could not be verified it is scored down, not up. Benchmark numbers are quoted with their caveats — most agent-memory scores conflate reader and memory quality, and several are vendor-run. Vendors: if we got something wrong, tell us and we’ll fix it — this page is regenerated from a reviewed data file, not prose. Palantir Gotham was added 2026-07-02 with a dedicated deep dive.