Foundation

Bitemporal graph

Every fact has a valid time and a recorded time. Replay any past state. Late corrections preserve the original.

What bitemporal means

Two time axes on every fact:

Most databases conflate these. StaticOwl tracks them separately — which is what makes "the disclosure said X on March 14th" answerable even if you corrected the disclosure on March 20th.

Examples

Editing an article

You write a draft on May 1st (valid_from=2026-05-01, recorded_from=2026-05-01). Publish on May 3rd (valid_from=2026-05-03, recorded_from=2026-05-03). Edit on May 5th. Each version is a separate graph node, all preserved.

Late correction

You realize on May 10th that the article had a typo as of May 3rd. You correct it via db.correctValidFrom. The corrected version has valid_from=2026-05-03, recorded_from=2026-05-10, _supersedes_prior=true. Now:

That's bitemporal. Auditors love it.

What this enables

Read the architecture doc →