prov
A library for W3C Provenance Data Model supporting PROV-JSON, PROV-XML, PROV-O (RDF) and PROV-JSONLD
What it is and what it does
prov is a Python implementation of the W3C PROV Data Model standard, a formal specification for representing provenance information—the history and origin of data, processes, and entities. It provides in-memory classes to construct provenance assertions and serialize them into multiple standardized formats: PROV-O, PROV-XML, PROV-JSON, PROV-JSONLD, and PROV-N. The library also supports converting provenance documents to and from NetworkX MultiDiGraph structures for graph-based analysis.
The package is actively maintained, recently modernized with type hints and improved test coverage, and supports current Python versions (3.10–3.14). It has no runtime dependencies, making installation straightforward. The library is used by ProvStore, a public repository for provenance documents, and is suitable for applications that need to track, document, or audit data lineage, scientific workflows, or system operations in a standards-compliant way.
Use it for:
- Document data lineage in data pipelines by recording which processes generated which datasets and their dependencies.
- Audit scientific workflows by capturing the provenance of computational results and intermediate data.
- Export provenance information to standardized formats for integration with external tools and systems.
- Convert provenance data to NetworkX graphs for network analysis and visualization of entity-activity relationships.
- Build compliance and traceability systems that record the origin and transformation history of sensitive information.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implements the W3C PROV Data Model in Python, enabling creation, import, and export of provenance documents in multiple formats including PROV-O, PROV-XML, PROV-JSON, and PROV-JSONLD.
Yes. prov is a stable, actively maintained implementation of a W3C standard with no dependencies, permissive licensing, and broad format support. Install it if you need to work with provenance data in a standards-compliant way or integrate with systems that consume PROV documents. The recent modernization and support for current Python versions make it a reliable choice.
Install
prov on PyPI
pip
pip install provuv
uv add provpoetry
poetry add provInstalling prov
Before you install
Low friction installation with no runtime dependencies. Active maintenance with a release 7 days ago and commits as recent as 2026-08-14. Supports modern Python versions (3.10–3.14) and both CPython and PyPy.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install prov
from prov.model import ProvDocument
doc = ProvDocument()
doc.entity('ex:entity1')
doc.wasGeneratedBy('ex:entity1', 'ex:activity1')
print(doc.serialize(format='json'))
Requires Python 3.10 or later.
Verify before relying
- Whether graphical export (PDF, PNG, SVG) requires additional system dependencies beyond the Python package.
- Performance characteristics when working with large provenance graphs.
- Whether conversion to NetworkX MultiDiGraph is bidirectional or one-way.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 7 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 747,039/month — #5,168 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: prov-3.1.0-py3-none-any.whl
Keywords: provenance, graph, model, PROV, PROV-DM, PROV-JSON, W3C, PROV-XML, PROV-N, PROV-O, RDF, PROV-JSONLD, JSON-LD
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
rdflib-jsonldProvides JSON-LD parsing and serialization for…
permissive · top 15,000 on PyPI
rdflibRDFLib is a Python library for parsing,…
permissive · top 1,000 on PyPI
prontoPronto parses, browses, creates, and exports…
permissive · top 15,000 on PyPI
PyLDPyLD is a Python implementation of the JSON-LD…
permissive · top 15,000 on PyPI
owlrlImplements OWL2 RL Profile and RDFS inference…
unclear · top 5,000 on PyPI
extructExtracts structured metadata from HTML markup…
permissive · top 15,000 on PyPI
csvwReads, writes, and validates tabular data…
permissive · top 5,000 on PyPI
pyrdfa3Parses RDFa markup embedded in HTML documents…
unclear · top 15,000 on PyPI
pyoxigraphPyoxigraph is a Python library that provides…
permissive · top 15,000 on PyPI
spdx-python-modelProvides Python bindings for the SPDX 3 data…
permissive · top 15,000 on PyPI