Warning:
This wiki has been archived and is now read-only.
ProvenanceLocator
Provenance Locator: What's the story?
The PROV data model specifies a distributed graph structure (distributed across bundles I mean here, bundles potentially distributed across the web). It is essential for the model to provide accurate linking across bundles so that the data structure can be navigated.
To address this, a new relation is introduced in the model http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/ED-prov-dm-20120525/prov-dm.html#term-hasProvenanceIn
hasProvenanceIn(id, subject, bundle, target, attrs),
It is suggested that it is too complicated.
- Too many references to PROV-AQ may led readers to believe it was aimed at operational issue.
- It was suggested, we should limit ourselves to
hasProvenanceIn(subject, bundle)
- Tim indicated there is some precedent in the literature for this.
- http://dublincore.org/documents/dcmi-terms/#terms-isReferencedBy
- (the inverse of) http://rdfs.org/sioc/spec/#term_topic
- (a less primary form of) http://xmlns.com/foaf/spec/#term_isPrimaryTopicOf
- Target allows this relation to deal with aliasing, so it was suggested we could consider the following
hasProvenanceIn(subject, bundle, alias)
- It was suggested that this could be expressed in terms of binary relations:
hasProvenanceIn(subject, bundle) alternateOf(subject, alias)
- It was suggested that does not help with the navigation, since we don't know which alias to consider in the bundle.
- It would be useful to subtype this relation, so:
hasProvenanceIn(subject, bundle, alias, [prov:type="..."])
- The document also introduces other attributes:
- It was suggested they shouldn't be in the data model. But they are essential for navigating distributed graphs, so where should they go?
- It was observed that if the third argument of
hasProvenanceIn(e1, b1, e)
is an alias, then when we write "e", we really mean the identifier "e" and not the entity denoted by "e". As opposed to "e1" which denotes an entity with a name. So, an alternative is to write it as follows:
hasProvenanceIn(e1, b1, [ prov:alias='e'])
We are stating that entity e1 has Provenance in b1/is a topic in b1, but we need to look for it under the name 'e'. The value associated with prov:alias must a URI or a qualified name.