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:
This request for
http://example.com/resource.html returns some HTML, but also provides a
Link: header that says that the provenance is located at
http://example.com/resource-provenance. Within this file, the resource is known as the anchor
http://example.com/resource rather than
http://example.com/resource.html. The anchor URI can be omitted if it is the same as the one requested.
Link headers are specified by RFC 5988, which also defines standard relations like
rel="previous". PROV-AQ uses
rel="http://www.w3.org/ns/prov#has_provenance" to say that the linked resource has the provenance data for the requested resource. PROV-AQ also defines other relations for provenance query services and provenance pingback, which is not covered by this blog post.