- From: Graham Klyne <graham.klyne@zoo.ox.ac.uk>
- Date: Tue, 29 May 2012 10:53:53 +0100
- To: public-prov-wg@w3.org
OK, I'm looking more closely at the examples.
In example 45, you introduce prov:service-uri as an attribute. If the PROV-N is
supposed to be a domain neutral way of representing provenance information, I'm
not sure that it's appropriate to introduce structures that are specific to
access mechanisms. To me, it feels like a layer violation and scope creep in
the purpose of PROV-N, as it starts to tie it to specific technology (PROV-AQ in
this case).
Example 46: looks sensible to me. I note that this makes perfect sense without
using the type=prov:Bundle annotation. I question whether we really need this
type annotation. (I think I commented on this in my review email to you.)
Example 47: The only justification I see in in this use-case is that "Alice may
have decided to use a different identifier for ex:report1". The implication is
that there may be some name-aliasing permitted. If this is a desired feature of
PROV-N, I think it should be treated separately as a first class feature, not
snuck in an obscure feature of prov:hasProvenanceIn.
Actually, I suspect that's not really what you meant. To make further progress
on this, I have to make an assumption (based on the appeal to PROV-AQ). In
PROV-AQ, a provenance link may also indicate a different target-URI from the
original request URI. The use case for this is when the actual resource
returned is a specialization of the resource requested; e.g.
C: GET http://example.org/weather-in-london/today
S: 200 OK
S: Link: <http://example.org/LWP-20120529>;
rel=prov:Provenance;
anchor=<http://example.org/weather-in-london/20120529>
If this is indeed the kind of scenario you intend to support, then I thimnk the
proper way to address this in example 47 would be:
Original (included for reference, and in case the document changed):
bundle alice:bundle6
entity(alice:report1)
hasProvenanceIn(alice:report1, bob:bundle4, ex:report1)
entity(ex:report2, [ prov:type="report", ex:version=2 ])
wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
wasDerivedFrom(ex:report2, alice:report1)
endBundle
Proposed revision:
bundle alice:bundle6
entity(alice:report1)
hasProvenanceIn(alice:report1, bob:bundle4, -)
specializationOf(alice:report1, ex:report1)
entity(ex:report2, [ prov:type="report", ex:version=2 ])
wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
wasDerivedFrom(ex:report2, alice:report1)
endBundle
The thrust of what I'm saying here is that I think it's inappropriate for PROV-N
to just mimic PROV-AQ - they operate at different levels - but (if using PROV-AQ
as a motivating guide) to represent the scenarios that might be addressed using
PROV-AQ capabilities.
This is what I meant when I posed the original question: "I would like to
understand what real scenario justifies all the added machinery that has been
included with this relation." Note the *real scenario* here.
Example 48:
I'm not sure what useful purpose is served by:
hasProvenanceIn(tool:r2, obs:bundle7, ex:report2)
This says that provenance information about tool:r2 can be found in obs:bundle7
under the name ex:report2. But what *is* tool:r2 - all I can see is a comment
that it's a new identifier. I really can't figure what going on here. What I
really need to know is what is the relationship between tool:r2 and ex:report2.
My best guess here is that you are using the aliasing to fake a kind of bundle
import mechanism. If that's what you are doing, and need, I think that should
be addressed as a separate, comprehensible feature. This all feels a bit like
Jensen's device (http://en.wikipedia.org/wiki/Jensen%27s_Device) - very clever,
but ultimately obscure and unusable for almost all practical purposes.
#g
--
On 28/05/2012 21:26, Luc Moreau wrote:
> Hi Graham,
>
> Like PROV-AQ, we need a target.
> Example 47 illustrates the need for it:
>
> hasProvenanceIn(alice:report1, bob:bundle4, ex:report1)
>
> In the current bundle, there is a description for alice:report1.
> More provenance can be found for it in bundle bob:bundle4, under the name
> ex:report1.
>
>
> The presence of attributes and id follow the pattern of other qualified relations.
>
> Luc
>
> On 28/05/12 20:01, Provenance Working Group Issue Tracker wrote:
>> PROV-ISSUE-385 (haProvenanceIn-complexity): The hasProvenbanceIn relation is
>> over-complicated [prov-dm]
>>
>> http://www.w3.org/2011/prov/track/issues/385
>>
>> Raised by: Graham Klyne
>> On product: prov-dm
>>
>> I'm raising this issue as a placeholder and for discussion. I didn't notice
>> the arrival of prov:hasProvenanceIn, but based on its appearance in
>> http://dvcs.w3.org/hg/prov/raw-file/default/model/releases/ED-prov-dm-20120525/prov-dm.html
>> (which AFAIK is not a currently active draft, but a proposal) is rather
>> over-complicated and a bit obscure.
>>
>> My sense is that, especially as this is motivated by PROV-AQ, there are just
>> too many identifiers floating around.
>>
>> Instead of:
>>
>> hasProvenanceIn(id, subject, bundle, target, attrs)
>>
>> Why not just:
>>
>> hasProvenanceIn(subject, bundle)
>>
>> Where subject is based on the URI of an entity, and bundle is based on the URI
>> of a provenance bundle with information about that entity.
>>
>> I would like to understand what real scenario justifies all the added
>> machinery that has been included with this relation.
>>
>>
>>
>>
>
Received on Tuesday, 29 May 2012 09:57:58 UTC