- From: Luc Moreau <l.moreau@ecs.soton.ac.uk>
- Date: Thu, 19 Jul 2012 13:56:18 +0100
- To: James Cheney <jcheney@inf.ed.ac.uk>
- CC: Tom De Nies <tom.denies@ugent.be>, Provenance Working Group <public-prov-wg@w3.org>
- Message-ID: <EMEW3|d633170e3a94ac564df796f17fd122a8o6IDuN08l.moreau|ecs.soton.ac.uk|500803F2>
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