Request to drop "mention" and related elements

The PROV-DM and related documents have progressed to last call with "mention" 
and related features marked "at risk" if they are problematic.  Based on my 
review of material in the last call drafts, I claim they are problematic in the 
sense that they are confusing and superfluous.

I don't oppose the principle of being able to describe provenance across a 
number of accounts (bundles, contexts), but I think the current specifications 
don't do this adequately and that the work to describe contextualized provenance 
should be deferred so that it can be aligned with ongoing W3C work on RDF 
datasets and their semantics.

I am concerned that attempting premature standardization of features for 
expressing contextualized provenance, which do not sit easily with the (current) 
RDF specifications, may lead to deployments with divergent semantics.  Something 
similar happened with RDF reification based on the original 1999 RDF 
recommendation, and it remains a feature of RDF that is little-used, despite its 
intended purpose being recognized as responding to significant needs.  I see a 
significant risk that "mention" will suffer the same fate.

What follows is my analysis of the current specification relating to "mention", 
and why I think it should be dropped.

...

Ref: http://www.w3.org/TR/2012/WD-prov-dm-20120724/ (PROV-DM)

Starting with http://www.w3.org/TR/2012/WD-prov-dm-20120724/#term-mention:
[[
A mention ◊ relation, written mentionOf(infra, supra, b) in PROV-N, has:
  • specificEntity: an identifier (infra) of the entity that is a mention of the 
general entity (supra);
  • generalEntity: an identifier (supra) of the entity that is being mentioned.
  • bundle: an identifier (b) of a bundle that contains a description of supra 
and further constitutes one additional aspect presented by infra.

An entity is interpreted with respect to a bundle's description in a domain 
specific manner. The mention of this entity with respect to this bundle offers 
the opportunity to specialize it according to some domain-specific interpretation.

A mention of an entity in a bundle results in a specialization of this entity 
with extra fixed aspects, including the bundle that it is described in.
]]

The description "is interpreted with respect to a bundle's description in a 
domain specific manner" is not the stuff of interoperable specifications.  To my 
mind, it invites non-interoperable use.

I can't find a clear description in the document of what is meant by "fixed 
aspects".  I understand the intent is that these "fixed aspects" are represented 
as entity attributes (the definition of Entity should clarify this if the notion 
is to be used in other definitions - but I note that mentionOf is the only place 
in PROV-DM that uses the notion).  For the purpose of what follows, I shall 
assume an attribute "mentionedIn" to represent this additional "fixed aspect".

As defined, I can't see what is claimed by:
[[
    mentionOf(infra, supra, b)
]]

that would not also be claimed by asserting:
[[
   specializationOf(infra, supra)
   entity(infra, [mentionedIn=b])
]]

or just:
[[
   specializationOf(infra, supra)
   bundle b
     entity(supra)
      ...
   endbundle
]]

Looking at Example 46, it seems to me that the "mentionOf" expressions can be 
replaced by "speclializationOf" without loss of expressed information or 
functionality, so in this use "mentionOf" is superfluous.

Example 45 is more involved, but I believe that here too the intended meaning 
can be captured without "mentionOf":
[[
bundle ex:run1
     activity(ex:a1, 2011-11-16T16:00:00, 2011-11-16T17:00:00)  //duration: 1hour
     wasAssociatedWith(ex:a1, ex:Bob, [prov:role="controller"])
endBundle

bundle ex:run2
     activity(ex:a2, 2011-11-17T10:00:00, 2011-11-17T17:00:00)  //duration: 7hours
     wasAssociatedWith(ex:a2, ex:Bob, [prov:role="controller"])
endBundle

bundle tool:analysis01
     agent(tool:Bob-2011-11-16, [perf:rating="good"])
     mentionOf(tool:Bob-2011-11-16, ex:Bob, ex:run1)

     agent(tool:Bob-2011-11-17, [perf:rating="bad"])
     mentionOf(tool:Bob-2011-11-17, ex:Bob, ex:run2)
endBundle
]]

In this case, I think the intended meaning is captured by the following:
[[
bundle ex:run1
     activity(ex:a1, 2011-11-16T16:00:00, 2011-11-16T17:00:00)  //duration: 1hour
     wasAssociatedWith(ex:a1, ex:Bob, [prov:role="controller"])
endBundle

bundle ex:run2
     activity(ex:a2, 2011-11-17T10:00:00, 2011-11-17T17:00:00)  //duration: 7hours
     wasAssociatedWith(ex:a2, ex:Bob, [prov:role="controller"])
endBundle

bundle tool:analysis01
     agent(tool:Bob-2011-11-16, [perf:rating="good"])
     specializationOf(tool:Bob-2011-11-16, ex:Bob)
     wasAssociatedWith(ex:a1, tool:Bob-2011-11-16, [prov:role="controller"])

     agent(tool:Bob-2011-11-17, [perf:rating="bad"])
     specializationOf(tool:Bob-2011-11-17, ex:Bob)
     wasAssociatedWith(ex:a2, tool:Bob-2011-11-17, [prov:role="controller"])
endBundle
]]

If any deeper meaning is intended it is not conveyed by either the definition or 
the example, so at best I think the "mentionOf" construct is superfluous, and at 
worst it is confusing and liable to lead to divergent implementations and 
interpretation.

...

Ref: http://www.w3.org/TR/2012/WD-prov-o-20120724/ (PROV-O)

I also looked at how "mention" is realized in RDF though PROV-O 
http://www.w3.org/TR/2012/WD-prov-o-20120724/#mentionOf:

The definition text is pretty much a recapitulation of words from PROV-DM ("... 
another Entity that is a specialization of the former and that presents the 
Bundle as a further additional aspect."), and the example given describes a 
structure that cannot (currently) be expressed in RDF:
[[
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix tool: <http://example.com/tool/> .
@prefix perf: <http://example.com/performance/> .
@prefix :     <http://example.com/> .

:run2 {
    :activity_2
       a prov:Activity;
       prov:startedAtTime "2011-11-17T10:00:00"^^xsd:dateTime;
       prov:endedAtTime   "2011-11-17T17:00:00"^^xsd:dateTime;
       prov:wasAssociatedWith :bob;
    .
}

tool:analysis_01 {
    tool:bob-2011-11-17
       a prov:Agent;
       prov:mentionOf  :bob;
       prov:asInBundle :run2;
       perf:rating     perf:very-slow;
    .
}

# This is inferred from prov:mentionOf
tool:bob-2011-11-17 prov:specializationOf :bob .

# This is inferred from prov:specializationOf
tool:bob-2011-11-17 prov:alternateOf      :bob .
]]

In this example, it seems to me that "prov:mentionOf" could be replaced by 
"prov:specializationOf", since that's the only thing that is inferred from 
"prov:mentionOf".  So my best guess is that "prov:mentionOf" is superfluous 
here, since it expresses nothing that is not expressed by 
"prov:specializationOf", and the "prov:asInBundle" seems to correspond most 
closely to an attribute on the entity described (cf. "mentionedIn" that I posit 
above).

...

The text in these last-call documents was the subject of much discussion by the 
working group (cf. http://www.w3.org/2011/prov/track/issues/385, where the term 
used for this feature was originally "prov:hasProvenanceIn").  I take the fact 
that the text still does not provide a clear indication of what the construct is 
intended to convey (distinct from "prov:specializationOf") is an indication that 
the concept itself is problematic.

#g
--

Received on Thursday, 9 August 2012 14:22:17 UTC