Software

PROV Python package

The PROV package is a Python library for the PROV Data Model (PROV-DM), the World Wide Web Consortium's standard for exchanging provenance data on the Web. I started it in 2012, during my participation in the W3C Provenance Working Group, to record provenance in Python applications, and it has been the reference Python implementation of PROV since. Version 3 (2026) has no unconditional runtime dependencies, reads and writes PROV-JSON, PROV-JSONLD, PROV-XML and PROV-O, and is typed throughout. It is used by workflow engines such as nipype and cwltool, and by provenance tools in neuroimaging, seismology, climate science and astronomy.

Web Applications

I have been involved in the development of various web applications built on the Django platform. Below are the ones that I led.

ProvStore (2013 to 2024)

ProvStore was the first online public provenance repository supporting W3C's PROV standards. It allowed users and applications to store and publish the provenance of their data on the Web. Provenance documents could be transformed, visualised and shared in various file formats, with all the functionality also available via a RESTful API. It ran at the University of Southampton from 2013 and at King's College London from 2018, and was retired in December 2024.

ProvStore Screenshot

PICASO

PICASO is an online platform that crowdsources the links between related scientific work and any other relevant entities and events such as the dataset(s) it used, the poster or slides presenting it, the project that funded its authors, and even the presentation activity of the work in a conference session. PICASO encourages linking to objects residing in their own silos, such as linking a presentation on SlideShare to the digital object identifier (DOI) of the original paper. By so doing, PICASO provides the tool for researchers to publicly document the origins and derivatives of their work, or its provenance.

PICASO Screenshot

CollabMap

Demonstrations

HAC-ER