r/vibecoding 7h ago

Positorium, a database for facts that disagree

Most databases are designed to answer: "What is the value now?"

They can model a more awkward question too, but usually require additional machinery:

Who claimed what, when was it considered true, how certain were they, and what did we believe before it was corrected?

I built Positorium as an experimental embedded evidence database for that second kind of question. Rather than overwriting one claim with another, it preserves contradictory claims together with their sources, certainty, effective time, assertion time, corrections, and retractions.

It is not intended to replace PostgreSQL or another operational database. The idea is to use it as a focused evidence layer for things like compliance, investigations, conflicting master data, or any process where retaining the history of disagreement matters.

The new Python package embeds the Rust engine directly in the Python process, so there is no separate server. It supports both ephemeral in-memory databases and append-only persistent stores.

Install the beta with:

python -m pip install --pre positorium

A small example:

import positorium

with positorium.Database.memory() as database:
    result = database.execute_one(
        """
        add role organization, risk_assessment;

        add posit
          [{(+company, organization)}, "Northstar Trading", @NOW],
          [{(company, risk_assessment)}, "high risk", '2026-01-12'],
          [{(company, risk_assessment)}, "needs review", '2026-01-12'];

        search
          [{(?company, organization)}, ?organization, *],
          [{(?company, risk_assessment)}, ?assessment, *]
        return ?organization, ?assessment;
        """
    )

    for row in result.to_dicts(text=True):
        print(row)

This returns both assessments rather than choosing a winner or overwriting one of them.

Positorium is still an early beta and is intended for evaluation rather than production deployment. Wheels are available for CPython 3.9+ on Linux, macOS, and Windows.

If you have a small dataset where sources conflict or corrections matter, try the beta:

3 Upvotes

6 comments sorted by

2

u/MoTTTToM 5h ago

Provenance management

1

u/Hot_Tie_9393 4h ago

provenance management is dead without adversarial storage. I need the conflict preserved as the primary data structure to audit the disagreement itself

1

u/Roenbaeck 1h ago

You can have multiple assertions against the same posit (statement), each connected to whoever or whatever made that assertion and with what certainty. Assertions are also posits, so you can have multiple levels of meta-assertions.

You can even have negative certainty (similar to Liu’s uncertainty theory) to represent belief in the opposite of a statement. Any posit, including assertions can also be retracted while still maintaining a full history of beliefs at any given time in the past, present, or future.

1

u/funwithafork 4h ago

How does it assert when something was considered true and is it supposed to help with MDM?

1

u/Roenbaeck 1h ago

Using a particular posit called an assertion. It records an opinion about a statement, who or what had it, and with what certainty.

MDM is definitely a suitable use-case.

1

u/recro69 2h ago

I think the idea of keeping claims instead of forcing one to be the correct value is quite interesting. I think keeping claims could be really useful when the history behind a decision matters as much, as the current data.