Tag: Prov toolbox
-
Installing ProvToolbox on macOS
ProvToolbox is a useful command line tool for validating and visualizing PROV documents, but unfortunately it can be a bit of a challenge to install on Windows and on macOS because of its dependency requirements.
This post suggests three step-by-step methods of installing ProvToolbox on your Mac – you should follow the method you feel most comfortable with, but can try the other methods in case of problems.
Table of content
Overview of requirements
As of 2020-08, ProvToolbox 0.9.5 is the latest release, which requires:
-
Installing ProvToolbox in Windows
While there are several tools available for validating and visualizing PROV, the ProvToolbox is perhaps the most useful for validating PROV-N syntax. However, the normal releases does not run in Windows due to a operating system restriction for command line and folder path length.
We have suggested a fix, but while we wait for that, here we describe a patch build that should work on Windows. We also show how to install dependencies: Java for executing ProvToolbox, and Graphviz for visualization. (See also macOS install).
-
Validating and visualising PROV
This blog post gives a gentle PROV-N introdction and then explores tools for validating and visualising PROV.
One of the advantages of W3C PROV having a common data model is that it can be serialized, or written out, in multiple file formats. The PROV family of W3C specifications describe mappings PROV-XML and PROV-O (which, being based on OWL2 itself has multiple serializations, for Linked Data including RDF formats Turtle and JSON-LD.
In addition to these standard approaches we also have PROV-JSON and PROV-JSONLD which could be well-suited for Web applications. All of these can in theory be mapped to each-other through the common PROV Data Model and the use of URIs as Linked Data global identifiers.
-
Locating provenance for a RESTful web service
This blog post shows how RESTful web services can provide, and link to, provenance data for their exposed resources by using the PROV-AQ mechanism of HTTP Link headers. This is demonstrated by showing how to update a hello world REST service implemented with Java and JAX-RS 2.0 to provide these links.
The PROV-AQ HTTP mechanism is easiest explained by an example:
GET http://example.com/resource.html HTTP/1.1 Accept: text/html HTTP/1.1 200 OK Content-type: text/html Link: <http://example.com/resource-provenance>; rel="http://www.w3.org/ns/prov#has_provenance"; anchor="http://example.com/resource" <html> <!-- ... --> </html>
This request for
http://example.com/resource.html
returns some HTML, but also provides aLink:
header that says that the provenance is located athttp://example.com/resource-provenance
.