Graph versioning prior art: research brief¶
Does the graph data model (entities, partial entities, claims, links, two action pointers per row) already exist as a documented pattern or a system we can borrow theory from?
| Status | Answered by R2, 2026-09-07 |
| Created | 2026-09-07 |
| Updated | 2026-09-07 |
| Context | data-model.md parts 2 to 4; decisions 5 and 6 pending ratification there; D1, D12; issues #18, #21 |
Hypotheses to test¶
- H1. "Every row carries the transaction that asserted it and the transaction that retracted it" is a named, documented pattern with known pitfalls, not an invention of ours.
- H2. Source observations resolved into canonical entities through reversible links is the standard shape in entity resolution and master data management, and the field has settled vocabulary and rules for merge and unmerge that we are re-deriving.
- H3. Claims with provenance on a resolved entity are the knowledge-graph "statement with references" model, and existing systems have already solved conflicting values and supersession.
- H4. Versioned and git-like graph stores (Datomic, XTDB, TerminusDB, Dolt) solve time travel and undo in ways that either validate or contradict the two-pointer choice.
Disconfirming evidence carries the same weight as confirming.
Questions¶
- What is the two-pointer, append-only row model called in the literature (temporal databases, MVCC, Datomic's datoms, anchor modeling, data vault), what are its documented failure modes, and what queries does it make expensive? Unblocks: ratification of data-model decision 5 (part 4); the query shapes in part 5.
- How do entity resolution and MDM systems (Senzing, Reltio, Informatica MDM, nomenklatura
and FollowTheMoney, Splink, Zingg, Palantir Foundry) model source records against resolved
entities, and how do they make a merge reversible? Unblocks: part 2 (
entity_links), the undo legality rule in part 4, #21. - How do knowledge graphs (Wikidata and Wikibase, W3C PROV, nanopublications, RDF-star, Google Knowledge Vault, OpenSanctions statements) attach provenance to a claim, rank conflicting values, and retract? Unblocks: part 3 (claims), #18, #21.
- What do versioned and git-like stores (Datomic, XTDB, TerminusDB, Dolt, Irmin) do for time travel, undo, and branching that we should borrow or deliberately not build? Unblocks: part 4 Alternatives (action log as source of truth vs two pointers); part 5 read shapes.