Skip to content

Provenance

Overview

EntryStore supports storing revisions of metadata graphs in a separate repository. The revision history is expressed using the PROV Ontology from W3C. Note that the revisions are based on the concept of distinct metadata graph within each entry, there is no statement level provenance at this point.

Configuration via entrystore.properties

To enable revision history entrystore must be configured with a separate provenance repository, this is done using the following parameters in the configuration file entrystore.properties.

entrystore.repository.provenance=on|off (default: off)
entrystore.repository.provenance.type=memory|native (default: memory)
entrystore.repository.provenance.path=file:///srv/../../provenance
entrystore.repository.provenance.indexes=cspo,spoc,posc

The path is required for the type native. A memory repository is not persisted, i.e. the stored revision graphs are lost when EntryStore is restarted; use native to keep them. The setting entrystore.repository.provenance.rebuild-on-startup has no effect.

Discovering the revisions

Information about the revisions are stored in the entry graph (e.g. where also the ACL information is). The latest revision is the resource that points to the local metadata URI with an owl:sameAs relation. If no such relation is found there is no revisions stored for that entrys metadata. Earlier revisions can be found by following the prov:wasRevisionOf relation. For each revision there is information about who made the change (prov:wasAttributedTo pointing to a users resourece URI) and the date (prov:generatedAtTime).

Retrieving the graph of a metadata revision

Every metadata revision is given a unique URI by appending a revision parameter (e.g. ?rev=2) to the URI of the metadata URI. Hence, each revision graph can be retrieved via a single GET. The rev parameter is not supported when writing metadata; with provenance enabled such a request fails.