Tiramemsu

When Is a Temporal Statement Store a Statement Graph?

Papers · paper 3 of 3 · Export Boundaries for Occurrence Records with Two Clocks · Volodymyr Pavlyshyn · Revision 4, 12 October 2026 · Draft preprint, CC BY 4.0

A tiramemsu record looks like a statement vertex with its three role edges, so it is tempting to say the store already is a Statement Graph, the model behind Amazon Neptune's OneGraph. In general it is not. This paper says exactly which part of the store is one, what an export has to drop or report, and how both clocks can travel into RDF-star without loss.

Download the PDF (revision 4, 16 pages) Read the companion article Zenodo · DOI 10.5281/zenodo.23335652 Source, validator and Lean

Abstract

A temporal statement store keeps every statement occurrence as a record with an identifier, a triple, a transaction-time lifetime and a valid-time interval, and lets other records refer to it. We ask which part of such a store can be exported as a Statement Graph, the DAG model that underlies OneGraph interoperability between RDF-star and property graphs, without inventing or renaming any occurrence. The answer has three parts. What can be exported: a selected record set admits an identity-preserving export exactly when it is closed under references and acyclic. Every set contains a greatest such subset, the least fixpoint of a one-line operator, computed by a linear-time topological peel that also yields an export order. When content is immutable, records are never deleted and inserts reference only existing records, the whole history is closed. Exporting the history rather than a snapshot then loses only cycles created by atomic correction, and a per-record bit maintained at insert time turns export into a filter scan. A batch-local check at correction time removes even those cycles. What is dropped: snapshot export additionally drops supersession lineage, whose targets are retracted; a dual reference closure keeps it by adding the retracted targets. What is reported: every omitted record with a reason. An explicit encoding into the RDF-star branch of the OneGraph image, with transaction and valid time as reserved statements, makes the roundtrip of the exportable history lossless, and conjunctive queries over the asserted part are answered identically up to a quoting bijection. Two contrasts locate the boundary. RDF 1.2 reifiers name occurrences instead of nesting them and need neither closure nor acyclicity, but assert per triple, not per occurrence. The property-graph branch admits only edges and unreferenced properties, so it carries both clocks for edges alone.

The main results

Criterion

Closed and acyclic

A record set exports with every occurrence kept and no reference rewritten exactly when every record it points at is in the set and there are no reference cycles.

Kernel

The most you can export

Every set has one greatest exportable part. A topological peel finds it in linear time and gives the order a streaming writer needs. One stored bit per record keeps it current.

History

Export the past, not the present

The full history is closed, so it loses only cycles that a correction can create. A check on the replay batch rejects those, and then the whole history exports.

Time

Both clocks, losslessly

Clocks become reserved statements in RDF-star, and the roundtrip returns every field of every record. Queries agree with the store when contents are distinct.

Who it is for

Anyone moving data between a temporal statement store and RDF-star, RDF 1.2 or a property graph who needs to know what survives: the occurrence ids, the annotations on them, the corrections and both clocks. If you want the ideas without the proofs, start with the companion article. For the informal comparison it builds on, see statement graphs and tiramemsu.

Status and evidence

A draft preprint, archived on Zenodo together with a validation archive. It has not been peer reviewed. The evidence has three parts:

Paper and engine. Tiramemsu does not expose the export kernel as an API, and its correction does not apply the acyclic-replay rule. A correction whose patch names a member of its own cascade can still create a cycle. The paper describes what an exporter and a writer should do; the engine's own invariants (live endpoints, cascade, immutability) hold either way.

Cite

@misc{pavlyshyn2026export,
  author = {Pavlyshyn, Volodymyr},
  title  = {When Is a Temporal Statement Store a Statement Graph?
            Export Boundaries for Occurrence Records with Two Clocks},
  year   = {2026},
  note   = {Draft preprint, revision 4. CC BY 4.0},
  doi    = {10.5281/zenodo.23335652},
  url    = {https://doi.org/10.5281/zenodo.23335652}
}

← Paper 2: Metagraph Encodings over Identified Triples · All papers