Skip to content

Four time axes ​

One timestamp cannot separate "I moved to Chicago last year" from "I move next year", and cannot express a fact that stopped being true. SodaMem keeps four axes on every fact and lets them disagree.

fieldthe question it answers
occurred_start / occurred_endwhen the event happened
valid_from / valid_untilwhen the fact was true
document_timewhen the user said it
created_atwhen we stored it

A sentence typed today can describe an event from last year that stopped being true last month. That is four different dates, and collapsing them loses the only information that makes the fact usable later.

Corrections are ADD-only ​

A correction writes a new version plus a SUPERSEDES edge. It never rewrites in place.

fact_a  "user lives on Kauai"    valid_from 2022-01-01  valid_until 2023-05-25
   ▲
   │ SUPERSEDES
fact_b  "user lives on Oahu"     valid_from 2023-05-25  valid_until —

PATCH /v1/memories/{id} closes the old version with a valid_until and leaves it readable. That is the whole difference from DELETE. The superseded fact leaves search and context — it will not pollute an answer — but "what did we believe last March" remains a question with a row behind it.

Deleting for real ​

An ordinary DELETE archives: the memory leaves search and context, the record and its provenance stay.

Physical erasure exists for right-to-erasure obligations and is off by default. SODAMEM_ALLOW_PURGE=true enables DELETE /v1/memories/{id}?purge=true, which cascades to the fact's roles, edges and vectors.

Purge is irreversible

It also breaks the evidence chain of any answer that cited the fact. Turn it on only when you actually need it.

Status you can filter on ​

Retrieved evidence carries what it is and where it stands:

  • kind — fact vs preference
  • modality — past event vs current state
  • status — active vs superseded

Which is how "list every X you currently believe about me" and "list everything you ever believed" are two different queries against the same store rather than two different stores.

Next ​

Apache-2.0 licensed.