Re: PROV-ISSUE-454 (key across relations/objectss): can the same identifier be used for different relations objects [prov-dm-constraints]

You are right, James. I didn't know how to express it,
I am fine with your suggestion.
It's also aligned with the entity/activtiy disjointness.

Luc

On 07/19/2012 12:22 PM, James Cheney wrote:
> Hi Luc,
>
> This (constraint key-relation2) doesn't say what I think you want it 
> to say.  Key constraints say that within a relation, an identifier 
> determines the other fields.
>
> I think you are trying to express something like:  "Each identifier 
> appears as the identifier parameter of at most one of the following 
> relations: { used, wasGeneratedBy, wasInfluencedBy,wasStartedBy, 
> wasEndedBy, wasInformedBy, wasAttributedTo, wasAssociatedWith, 
> actedOnBehalfOf}".
>
> But this is a disjointness constraint, not a key constraint; it should 
> go with other disjointness constraints somewhere, which
>
> The most clear way to say this (IMO) is with many  constraints 
> indicating pairwise disjointness:
>
> "IF r1(id;...) AND r2(id;...) THEN invalid/fail/whatever"
>
> which we may be able to write concisely using a schema like this:
>
> "For each pair of distinct relations from the following set: {...}, we 
> have the following constraint:
>
> IF r1(id;...) AND r2(id;...) THEN invalid/fail/whatever"
>
> --James
>
> On Jul 19, 2012, at 10:43 AM, Luc Moreau wrote:
>
>> Hi all,
>>
>> I tried to formulate a constraint to express this.
>>
>> http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-relation2
>>
>> Thoughts?
>>
>> Luc
>> On 07/18/2012 10:57 AM, James Cheney wrote:
>>> HI,
>>>
>>> Again, I don't see the need for an explicit issue about this.
>>>
>>> There is currently no constraint enforcing disjointness among 
>>> different kinds of things/relations.  I see no particular reason to 
>>> add one (and make implementation harder), unless there is clear 
>>> consensus that violating such constraints is always nonsensical (and 
>>> that this isn't detected by other constraints).
>>>
>>> We (I thought) want to allow for the possibility that something is 
>>> both an agent and an entity, or both an agent or an activity, or 
>>> other combinations.  One could then state that something influences, 
>>> generates, uses itself etc., but this will just violate ordering 
>>> constraints that we already have.
>>>
>>> I agree it seems nonsensical to allow overlap between different 
>>> relations, and if so then someone needs to write constraints that do 
>>> this.
>>>
>>> Constraints of the form "if hyp1 .... hypn then FALSE" (i.e., a 
>>> given conjunctive pattern is impossible" are straightforward to 
>>> handle: we just handle all the other inferences and constraints 
>>> first, then check that the normal form does not have any of the 
>>> forbidden patterns.  (The irreflexivity and asymmetry inferences for 
>>> specialization already do this implicitly.)
>>>
>>> --James
>>>
>>> On Jul 18, 2012, at 10:39 AM, Tom De Nies wrote:
>>>
>>>> The only problem I see with allowing it, is when using influencedBy.
>>>>
>>>> With influence you'd be allowed to assert this:
>>>>
>>>> agent(a1)
>>>> activity(a1)
>>>> influencedBy(a1,a1)
>>>>
>>>> - Tom
>>>>
>>>> 2012/7/18 Provenance Working Group Issue Tracker 
>>>> <sysbot+tracker@w3.org <mailto:sysbot+tracker@w3.org>>
>>>>
>>>>     PROV-ISSUE-454 (key across relations/objectss): can the  same
>>>>     identifier be used for  different relations objects
>>>>     [prov-dm-constraints]
>>>>
>>>>     http://www.w3.org/2011/prov/track/issues/454
>>>>
>>>>     Raised by: Luc Moreau
>>>>     On product: prov-dm-constraints
>>>>
>>>>
>>>>     We have the following two uniqueness constraints.
>>>>
>>>>     http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-object
>>>>     http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#key-relation
>>>>
>>>>     It is not clear to me if
>>>>
>>>>     entity(e123)
>>>>     agent(e123)
>>>>
>>>>     are acceptable. (To me, they should be, since we don't state
>>>>     the set of agents to be disjoint from any other set)
>>>>
>>>>     Likewise, can we write
>>>>
>>>>     used(event1234,a1,e1,attrs1)
>>>>     and
>>>>     wasGeneratedBy(event1234,e2,a2,attrs2)
>>>>
>>>>     Probably not.
>>>>     Note: if we allow the two above, then I am not sure that strict
>>>>     ordering is wise in ordering constraints.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> The University of Edinburgh is a charitable body, registered in
>>> Scotland, with registration number SC005336.
>>
>> -- 
>> 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 Kingdomhttp://www.ecs.soton.ac.uk/~lavm
>>
>>
>>
>
>
>
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.

-- 
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 Thursday, 19 July 2012 12:57:07 UTC