- From: Timothy Lebo <lebot@rpi.edu>
- Date: Sat, 3 Mar 2012 19:15:09 -0500
- To: Timothy Lebo <lebot@rpi.edu>
- Cc: Luc Moreau <L.Moreau@ecs.soton.ac.uk>, public-prov-wg@w3.org
Luc,
I added this example to the collection.
bash-3.2$ cat eg-10-trust-agent-annotation/document/homepage
http://www.w3.org/2011/prov/track/issues/260
http://www.w3.org/2011/prov/wiki/eg-10-trust-agent-annotation
I think it covers your first and second examples in this thread, as well as the one I offered in between.
Can you look it over and make sure it reflects your use case?
Regards,
Tim
On Mar 3, 2012, at 6:40 PM, Timothy Lebo wrote:
> Hi, Luc,
>
> On Feb 24, 2012, at 4:32 AM, Luc Moreau wrote:
>
>> Hi Tim,
>>
>> Comments below.
>>
>> On 02/24/2012 05:33 AM, Timothy Lebo wrote:
>>> On Feb 22, 2012, at 5:32 PM, Luc Moreau wrote:
>>>
>>>
>>>> Hi Tim,
>>>>
>>>> I see some problems with this:
>>>>
>>>> - First, we (at F2F2) have moved Account (used to be called AccountRecord) out of prov-dm. So, there is no standardized way of creating and expressing them.
>>>>
>>> We still have "Bundles", which seems to have been renamed to Accounts (again).
>>>
>>
>> Bundles were only a word and section title in the prov-dm document. There has been no renaming, I think.
>>> Or, alternatively, the constituents of Accounts were removed (e.g., the asserter).
>>>
>>>
>> Yes, asserter was dropped, but, the *key* different is that it's not a construct of the data model anymore.
>> In the data model, you cannot list the assertions in an account.
>>>> - Second, your second account does not seem to have any provenance related term.
>>>>
>>> It has an entity(:simon, [reputation = "excellent") assertion.
>>> That's in PROV, right?
>>>
>> That, yes, is a provenance assertion, but
>> :simon ex:reputation "excellent"
>> does not involve anything that is prov related.
>
> It's the trust service's characterization of the existing characterization known as :simon.
>
>>
>>>
>>>> Which means that this is totally outside prov-dm. Which means, this is not an interoperable way of expressing annotation of provenance: this technique become serialization specific.
>>>>
>>> see ASN above.
>>>
>>
>> The reason why we create entities,
>> e.g. :simon a prov:Entity
>>
>> is because we want to be able to talk about their provenance.
>> I don't think that a trust service wants to talk about the provenance of simon, with an attribute reputation=excellent.
>
> We're slipping into "Thing versus Entity" again.
>
> "talk about the provenance of simon, with an attribute reputation=excellent." is _exactly_ what a trust service wants to do.
>
>
>>
>> My trust service may want to talk about the provenance of the "excellent" rating, but not of simon.
>
> We're slipping into "Thing versus Entity" again. Leave Simon out of it and focus on :simon, the characterization in bundle :prov_0 (shown just below).
>
> Why would the trust agent want to talk about its own "excellent" rating?
> The trust agent wants to talk about :simon (and thus, _does_ in bundle :prov_2 below). Specifically, that :simon has a ex3:reputation of "excellent" .
>
>
>> - Third, assuming we really want
>>>
>>>>
>>>> :prov_0 {
>>>> :simon a prov:Human;
>>>> :robbery prov:wasAssociatedWith :simon
>>>> }
>>>>
>>>>
>>>> :prov_1 {
>>>> :simon a prov:Human;
>>>> prov:hasAnnotation [
>>>> a prov:Note; ex3:reputation "excellent";
>>>> rdfs:comment "This is a kludge way to get indirection. Use prov:Provenance instead.";
>>>> ];
>>>> }
>>>>
>>>> :prov_2 {
>>>> :simon ex3:reputation "excellent" .
>>>> }
>>>>
>>>>
>>>> I think it's important for annotation to be expressed in the context of the entities where they occur.
>>>>
>>>
>
> ...
>
>>>> A trust rating algorithm
>>>> may find agent simon "excellent" in prov_1 but "not so good" in prov_0.
>>>>
>>>
>> Further comments after your example
>>> You want a trust agent to augment another's assertions, within the _original_ context of the first asserter? That leads to a provenance nightmare!
>>> You'll never be able to see who said what.
>>>
>>> prov:Provenance is an Entity, so that trust agent should leave his iPAWs out of others' assertions.
>>>
>>> :prov_1 {
>>> :simon a prov:Human. # took out the Note, since it muddles who said what.
>>> }
>>>
>>> :prov_1 prov:wasAssociatedWith :original_asserter .
>>>
>>> :prov_1b {
>>> :simon a prov:Human; # The rest of prov_1's assertions are included in prov_1b, too.
>>> prov:hasAnnotation [
>>> a prov:Note; ex3:reputation "excellent";
>>> rdfs:comment "This is a kludge way to get indirection. Use prov:Provenance instead.";
>>> ]; # This Note is now an unnecessary level of indirection, since we're in a new bundle/account/provenance. We can describe :simon directly and know that :trust_evaluator_agent said so.
>>> }
>>>
>>> :prov_2 prov:wasDerivedFrom :prov_1;
>>> prov:wasAssociatedWith :trust_evaluator_agent .
>>>
>>>
>>> Now, we still need to satisfy your "different evals in different contexts" requirement (I'll avoid Notes this time):
>>>
>>> :prov_0 {
>>> :simon a prov:Human;
>>> :robbery prov:wasAssociatedWith :simon
>>> }
>>>
>>> :prov_0 prov:wasAssociatedWith :original_asserter .
>>>
>>> :prov_0b {
>>> :simon a prov:Human; ex3:reputation "not so good" . # Added the reputation, which is different than the one in :prov_1b
>>>
>> To me, we have changed the nature of the assertion, here.
>> It is as if the reputation of simon is part of his characteristization.
>
> Exactly!
>
>>
>>> :robbery prov:wasAssociatedWith :simon
>>> }
>>>
>>> :prov_0b prov:wasDerivedFrom :prov_0;
>>> prov:wasAssociatedWith :trust_evaluator_agent .
>>>
>>>
>>>
>>
>> I think there is a granularity problem though, since you have established
>> a connection between accounts, and not between the entities across account.
>
> The connection between the entities across the account exists because it is the ___same URI____.
> I think your misunderstanding has to do with the TriG syntax. :simon is :simon is :simon is :simon.
> Same URI, regardless of where you find it mentioned.
> It's not like XML.
>
>>
>> My trust service may just annotate individuals whose past actions need to be checked (not
>> all their past actions, only some).
>
> Yes! Only the "some" actions that are characterized.
> Your "annotations" are characterizations of the same entity.
> :prov_2 {
> :simon ex3:reputation "excellent" .
> }
>
>
>> Sorry the example here is silly, but it corresponds to a real use case we have.
>>
>> :prov_0 {
>> :simon a prov:Human;
>> :robbery prov:wasAssociatedWith :simon
>>
>> :john prov:Human;
>> :charityWork prov:wasAssociatedWith :simon
>
> is this a typo? should it be :john?
>
>> }
>>
>> :prov_1 {
>>
>> :simon a prov:Human.
>> :workHard prov:wasAssociatedWith :simon
>>
>> :john a prov:Human
>> :NotWorkHard prov:wasAssociatedWith :john
>>
>> }
>>
>> So, the trust service can flag
>> simon's behaviour in prov_0 and
>> and
>> john's behaviour in prov_1.
>>
>>
>> If I have notes, I can add the following annotations
>
> It's rather sloppy to muddle inside someone else's bundle.
> I modeled the provenance of the annotated bundle deriving from the original bundle in my original example (perhaps my identifiers misaligned and it wan't clear; I'll add it to the collection).
>
>
>> to simon in prov_0
>> prov:hasAnnotation [
>> :todo1 a prov:Note; ex3:reputation "toCheck";
>> ];
>>
>> to john in prov_1
>> prov:hasAnnotation [
>> :todo2 a prov:Note; ex3:reputation "toCheck";
>> ];
>>
>> I then have the hooks to ... create e.g. a todo list :todo1, :todo2, or what ever.
>
>
> Can you add this second example to our collection?
> I'd like to study it outside of email.
> I can give you the same hooks using bundles that would better delineate the provenance among the original observations and the trust agent's assertions.
>
> -Tim
>
>
>>
>> Luc
>>
>>
>>> BTW, Stephen Cresswell is dealing with this kind of meta provenance in case we want to prov:involve a domain user.
>>>
>>>
>>>
>>> -Tim
>>>
>>>
>>>
>>>> The problem is similar with annotations for graphical rendering: the position given to an element in a given account does not
>>>> have to be the same as the position in another account.
>>>>
>>>> Luc
>>>>
>>>> On 22/02/2012 18:17, Provenance Working Group Issue Tracker wrote:
>>>>
>>>>> PROV-ISSUE-260 (TLebo): In Note section: cite prov:Provenance as better practice to annotate assertions. [prov-dm]
>>>>>
>>>>> http://www.w3.org/2011/prov/track/issues/260
>>>>>
>>>>> Raised by: Timothy Lebo
>>>>> On product: prov-dm
>>>>>
>>>>> Please add a note to section Note to encourage people to use Account / AccountEntity/ Provenance to annotate provenance assertions as a better practice. When using AccountEntity, the annotated thing can be described _directly_ as a single triple instead of using Notes. Notes are very much "scruffy provenance" and do not benefit from the directness afforded by AccountEntity / prov:Provenance.
>>>>>
>>>>> :prov_1 {
>>>>> :simon a prov:Human;
>>>>> prov:hasAnnotation [
>>>>> a prov:Note; ex3:reputation "excellent";
>>>>> rdfs:comment "This is a kludge way to get indirection. Use prov:Provenance instead.";
>>>>> ];
>>>>> }
>>>>>
>>>>> :prov_2 {
>>>>> :simon ex3:reputation "excellent" .
>>>>> }
>>>>>
>>>>> :prov_1 a prov:Provenance; prov:wasAttributedTo :first_asserter .
>>>>> :prov_2 a prov:Provenance; prov:wasAttributedTo :trust_evaluator_agent.
>>>>>
>>>>> Thanks,
>>>>> Tim
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>> --
>> Professor Luc Moreau
>> Electronics and Computer Science tel: +44 23 8059 4487
>> University of Southampton fax: +44 23 8059 2865
>> Southampton SO17 1BJ email: l.moreau@ecs.soton.ac.uk
>> United Kingdom http://www.ecs.soton.ac.uk/~lavm
>>
>>
>>
>
>
>
Received on Sunday, 4 March 2012 00:16:07 UTC