PROV-ISSUE-660 (TomDN): Constraints of PROV-Dictionary [PROV-DICTIONARY]

PROV-ISSUE-660 (TomDN): Constraints of PROV-Dictionary [PROV-DICTIONARY]

http://www.w3.org/2011/prov/track/issues/660

Raised by: Tom De Nies
On product: PROV-DICTIONARY

Luc raised some interesting ideas for the constraints.

Note that we now have this inference:
https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/Overview.html#membership-insertion-membership-inference
Inference D4 (membership-insertion-membership) Here, KV1 is a set of key-entity pairs and K1 is the key-set of KV1.
1. IF prov:hadDictionaryMember(d1, e, k) and prov:derivedByInsertionFrom(d2, d1, KV1) and k ∉ K1 THEN prov:hadDictionaryMember(d2, e, k)
2. IF prov:hadDictionaryMember(d2, e, k) and prov:derivedByInsertionFrom(d2, d1, KV1) and k ∉ K1 THEN prov:hadDictionaryMember(d1, e, k)

(2nd part suggested by Luc)
I do have one immediate question: do we introduce an infinite loop by doing this? (consequent of 1. appears in antecedent of 2., and vice versa)
Or is this covered by http://www.w3.org/TR/prov-constraints/#overview ?

This got me thinking. If we have this, do we really need Inference D8? https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/Overview.html#insertion-removal-membership-inference

Couldn't we just specify the same constraint as D4, but for removal?
Suggestion:
Inference D... (membership-removal-membership) Here, K1 is a set of keys.
1. IF prov:hadDictionaryMember(d1, e, k) and prov:derivedByRemovalFrom(d2, d1, K1) and k ∉ K1 THEN prov:hadDictionaryMember(d2, e, k)
2. IF prov:hadDictionaryMember(d2, e, k) and prov:derivedByRemovalFrom(d2, d1, K1) THEN prov:hadDictionaryMember(d1, e, k)
Note that in the second case, k ∉ K1 is always true, otherwise constraint D9 is violated.

Do we then have enough to guarantee that insertions and removals do not introduce any new key-entity pairs, other than those specified? (which is why we had Inference D8)
I think so, so I'd like to propose this solution. Could we have your support or objections via mail or on today's call? 

Regards,
Tom

Received on Thursday, 11 April 2013 07:57:02 UTC