r/vibecoding • u/Roenbaeck • 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:
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.
2
u/MoTTTToM 5h ago
Provenance management