Proposed description of mentionOf
An entity e1 may be described in a bundle b, and may be described differently in other bundles. Although the different bundles are describing the same entity using the same name, the descriptions may be based on observations of different specializations of the named entity. Some applications may want to assemble information about the specialization of e1 that is described in bundle b. The mentionOf construct provides a way to introduce a new entity that is the basis for observations in a specified bundle, thus:
A mention ◊ relation, written mentionOf(infra, supra, b) in PROV-N, has:
- generalEntity: an identifier (supra) for an entity that that appears in bundle (b);
- specificEntity: an identifier (infra) of an entity that is a specialization of (supra);
- bundle: an identifier (b) of a bundle that contains a description of supra.
An application may have access to additional out of band information about infra that is not available from the description of supra in bundle b; thus the mentionOf relation cannot be inferred from knowing that infra is a specialization of supra that appears in bundle b.
Note: statements about an entity in different bundles must be consistent is the provenance overall is to be consistent.
(**) This is possible because:
e1 prov:specializationOf e2 . e2 p o . |- e1 p o.
so the statements about e1 in bundle b are also necessarily true of the specialisation of e1 that was the basis for the statements made in b.
Formally, we have:
mentionOf(a1,a,b) |- specializationOf(a1, a) mentionedIn(a, b)
where "mentionedIn" is used here to indicate that entity name a is mentioned in bundle b.
But not the inverse.
mentionOf(a1,a,b) p(a), for any predicate p |- p(a1)
a1 prov:mentionOf a . a1 prov:asInBundle b . |- a1 prov:specializationOf a . a mentionedIn b .
(where "mentionedIn" means a appears in bundle b, as above.)
I think it should be possible to exemplify this in PROV-O in a single Turtle file - i.e. without recourse to TRiG.