- From: Khalid Belhajjame <Khalid.Belhajjame@cs.man.ac.uk>
- Date: Tue, 10 Apr 2012 13:27:57 +0100
- To: Luc Moreau <L.Moreau@ecs.soton.ac.uk>, Paolo Missier <pmissier@acm.org>
- CC: Provenance Working Group WG <public-prov-wg@w3.org>
- Message-ID: <4F84274D.6040509@cs.man.ac.uk>
Hi Luc and Paolo,
I read PROV-N document. It is well structured and easy to follow. Before
starting reading PROV-N, I was skeptical about its usefulness since the
PROV-N expressions are already used in PROV-DM part1 and prov-DM
constraints.
After reading it, I changed my mind. It actually gives a complete
account of the concepts and relations on the DM in a relatively small
number of pages.
Also, I believe that for people who are familiar with existing
provenance models, PROV-N may be the best entry point.
I have only few minor comments on the document:
2- Design Rationale for PROV-N
* The number of examples that are given to illustrate the notation can
be reduced. For example, 2 examples are used to illustrate PROV-N
optional arguments. I think that at this stage, the reader does not know
yet PROV-N expression, and therefore, it would be better to use one kind
of expression, e.g., derivation, and use small number of examples.
* The term expression, and expression identifier is used in this
section, but it is actually introduced in the section that follows.
* "While not all PROV-DM relations are not binary, they involve two
primary elements". I find the use of the term primary element a bit
vague, specially when presenting a notation. Instead, I would use
something in the following lines. "While most of PROV-DM relations are
binary, such relations can be characterized (or qualified) using
attributes."
4 PROV-N Productions per Component
* For several expressions, e.g. generation and start by activity, it is
specified that certain allowed expressions are not valid. Take the
example of generation, the text specify that when the expression contain
information only about the entity generated, i.e., without mentioning
the activity or the generation time, then the expression is not valid.
Instead of doing so, and given that this document is only on annotation,
I think we can reformulate the definition of expression to exclude
invalid cases. To illustrate this, consider the case of generation. The
definition of generation in the PROV-N document is as follows:
generationExpression ::= 'wasGeneratedBy' '('( ( identifier | '-' )
',')? eIdentifier ',' ( aIdentifier | '-' ) ',' ( time | '-' )
optional-attribute-values ')'
To avoid invalid cases, the above definition can be reformulated as follows:
generationExpression ::= 'wasGeneratedBy' '('
( ( ( identifier | '-' )
',')? eIdentifier ',' aIdentifier ',' ( time | '-' )
optional-attribute-values
|
( ( ( identifier | '-' )
',')? eIdentifier ',' ( aIdentifier | '-' ) ',' time
optional-attribute-values)
')'
Hope this help, khalid
Received on Tuesday, 10 April 2012 12:28:46 UTC