ProvSQL

Build Status Build Status Build Status Studio Status

DOI Archived in Software Heritage Docker Image Version

ProvSQL adds (m-)semiring provenance and uncertainty management to PostgreSQL, enabling computation of probabilities, Shapley values, and various semiring evaluations, as a PostgreSQL extension.

Website: https://provsql.org/ – Documentation: https://provsql.org/docs/

Quick Install

Prerequisites: PostgreSQL ≥ 10, a C++17 compiler, PostgreSQL development headers, uuid-ossp, and the Boost libraries (libboost-dev, libboost-serialization-dev).

make
make install   # as a user with write access to the PostgreSQL directories

Add to postgresql.conf and restart PostgreSQL:

shared_preload_libraries = 'provsql'

Then in each database:

CREATE EXTENSION provsql CASCADE;

See the full installation guide for prerequisites, optional dependencies, testing, and Docker instructions.

Studio

ProvSQL Studio is a separate Python package that adds a web UI on top of the extension: a Circuit mode that renders the provenance DAG behind any result UUID, with frontier expansion, an inspector, and on-the-fly semiring evaluation; and a Where mode that hover-highlights the source cells of each output value.

pip install provsql-studio
provsql-studio --dsn postgresql://localhost/mydb

See the Studio chapter of the documentation.

License

ProvSQL is provided as open-source software under the MIT License. See LICENSE.

Contact

https://github.com/PierreSenellart/provsql

Pierre Senellart pierre@senellart.com

Bug reports and feature requests are preferably sent through the Issues feature of GitHub.