RE: Internal Review Prov Dictionary

Hello Sam, Tom,

Please find my review of PROV-Dictionary below.

In general it is a good document. I've not followed the development of it recently, but I can see it should be of great practical use for describing the provenance of all kinds of mutable composite data.

I apologise if I raise any points already covered in recent debates, as I haven't been following them in detail.

One matter that confused me was whether insertion and removal are operations, i.e. activities that happen to one dictionary to create another, or differences, i.e. a comparison between two dictionaries. In the end, given the constraints you define, I decided they must be differences, e.g. d2 wasDerivedByInsertionFrom d1 means that the difference between d2 and d1 is that d2 is a superset of d1 with some explicit new entries. However, the text (especially Section 3) talks as if they are operations, referring to "following insertion" or "after a removal", e.g. "An Insertion relation... states that d2 is the dictionary following insertion of pairs... into dictionary d1."

This distinction has practical consequences. If I wanted to describe, in the provenance data, the complete membership of my office on 2013-04-02, I could say:

  entity (simon-office-oncreation, [prov:type='prov:EmptyDictionary'])
  entity (simon-office-20130402, [prov:type='prov:Dictionary'])
  derivedFromInsertionFrom (simon-office-20130402, simon-office-oncreation,
      {("on-black-chair", "simon"})

>From this, I would know that Simon was the only member of simon-office-20130402.  However, the last line is only true information if insertion is merely the difference between the two dictionaries, and other insertions and removals could have occurred in between time. If insertion is an operation, then it suggests no-one has entered or left my office since its creation, which is untrue. In summary, I think it would help to clarify in the text whether insertion and removal should be read as diffs or operations. If they can be interpreted as diffs, then I think that makes the model more flexible.

Other comments:

Section 3: Just above Example 1: "to explicitly state that a dictionary is empty, it is recommended that the prov:type prov:EmptyCollection is used". Shouldn't that be prov:EmptyDictionary?

It seems a shame that "keys cannot repeated in the same dictionary", as it is somewhat of a restriction, but I understand it makes the update and removal semantics a lot cleaner and seems justified for that reason.

Example 2: "// d1 is a dictionary" -> "d1" should be "d"

Section 4.1: "PROV-Dictionary provides no dedicated syntax for Collection and EmptyCollection." - I think you mean Dictionary and EmptyDictionary?

Example 9: "d1 is the identifier" -> should be "d3"

Section 5: "(Note that this file is unfinished at the time of this working draft" -> this will no longer be a working draft on next release.

Section 5.2: "Class: prov:Dictionary back to overview" (and similarly for other definitions) - I assume that the "back to overview" should not be part of the title but a separate link? Otherwise, I don't understand the title.

Section 5.2, prov:Dictionary definition: "are said to be member" -> should be "members" 

Inference D6: "and K1 is a set of keys" - K1 does not appear in the inference rule.

Constraint D11 is called D10 (so there are two D10s).

thanks,
Simon

Dr Simon Miles
Senior Lecturer, Department of Informatics
Kings College London, WC2R 2LS, UK
+44 (0)20 7848 1166

Evolutionary Testing of Autonomous Software Agents:
http://eprints.dcs.kcl.ac.uk/1370/

________________________________________
From: Sam Coppens Ugent [sam.coppens@ugent.be]
Sent: 29 March 2013 16:21
To: Provenance Working Group
Subject: Internal Review Prov Dictionary

Hello Everybody,

The provenance dictionary is updated and ready for internal review (also
the OWL schema and the XML schema of prov:Dictionary)
Note that there are still three open issues on the tracker:
https://www.w3.org/2011/prov/track/products/19
Two of these are editorial, and will be handled next week.
- The CSS issue will be fixed once I know the proper way to include the
production rules
- The lay-out is being improved as we go through the document.

The example is not finished yet. This will be included as an extra
section at the end of the document, and will have one clear example
illustrating the use of hadDictionaryMember, insertion, removal and
insertion with update semantics. We will ask for review of this example
separately. In the meantime, the rest of the document can be reviewed.

The deadline for the review is April 4th, the final vote April 17th.
This way we can incorporate all the remarks of the reviews.

Thanks for your patience!
And have a nice weekend,

Tom & Sam



Received on Tuesday, 2 April 2013 13:30:02 UTC