- From: Graham Klyne <GK@ninebynine.org>
- Date: Thu, 09 Aug 2012 15:20:04 +0100
- To: public-prov-comments@w3.org
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