--- a/model/grammar/ll.html Tue Jul 03 16:56:46 2012 +0100
+++ b/model/grammar/ll.html Tue Jul 03 17:18:55 2012 +0100
@@ -496,14 +496,14 @@
<td><a id="prod-prov_n_LL-extensibilityArgument" name="prod-prov_n_LL-extensibilityArgument"></a>[<span class="prodNo">55</span>] </td>
<td><code class="production prod">extensibilityArgument</code></td>
<td> ::= </td>
-<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-identifierOrMarker">identifierOrMarker</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-literal">literal</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-timeZZ">timeZZ</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityExpression">extensibilityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityRecord">extensibilityRecord</a></span> )</code></td>
+<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-identifierOrMarker">identifierOrMarker</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-literal">literal</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-timeZZ">timeZZ</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityExpression">extensibilityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityTuple">extensibilityTuple</a></span> )</code></td>
</tr>
</tbody>
<tbody class="prod">
<tr valign="baseline">
-<td><a id="prod-prov_n_LL-extensibilityRecord" name="prod-prov_n_LL-extensibilityRecord"></a>[<span class="prodNo">56</span>] </td>
-<td><code class="production prod">extensibilityRecord</code></td>
+<td><a id="prod-prov_n_LL-extensibilityTuple" name="prod-prov_n_LL-extensibilityTuple"></a>[<span class="prodNo">56</span>] </td>
+<td><code class="production prod">extensibilityTuple</code></td>
<td> ::= </td>
<td><code class="content">"{" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> ))* "}"<br/>
| "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> ))* ")"</code></td>
--- a/model/grammar/ll.js Tue Jul 03 16:56:46 2012 +0100
+++ b/model/grammar/ll.js Tue Jul 03 17:18:55 2012 +0100
@@ -497,14 +497,14 @@
'<td><a id="prod-extensibilityArgument" name="prod-extensibilityArgument"></a>[<span class="prodNo">55</span>] </td> ' +
'<td><code class="production prod">extensibilityArgument</code></td> ' +
'<td> ::= </td> ' +
-'<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> | <span class="prod"><a class="grammarRef" href="#prod-literal">literal</a></span> | <span class="prod"><a class="grammarRef" href="#prod-time">time</a></span> | <span class="prod"><a class="grammarRef" href="#prod-extensibilityExpression">extensibilityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-extensibilityRecord">extensibilityRecord</a></span> )</code></td> ' +
+'<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> | <span class="prod"><a class="grammarRef" href="#prod-literal">literal</a></span> | <span class="prod"><a class="grammarRef" href="#prod-time">time</a></span> | <span class="prod"><a class="grammarRef" href="#prod-extensibilityExpression">extensibilityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-extensibilityTuple">extensibilityTuple</a></span> )</code></td> ' +
'</tr> ' +
'</tbody> ' +
' ' +
'<tbody class="prod"> ' +
'<tr valign="baseline"> ' +
-'<td><a id="prod-extensibilityRecord" name="prod-extensibilityRecord"></a>[<span class="prodNo">56</span>] </td> ' +
-'<td><code class="production prod">extensibilityRecord</code></td> ' +
+'<td><a id="prod-extensibilityTuple" name="prod-extensibilityTuple"></a>[<span class="prodNo">56</span>] </td> ' +
+'<td><code class="production prod">extensibilityTuple</code></td> ' +
'<td> ::= </td> ' +
'<td><code class="content">"{" <span class="prod"><a class="grammarRef" href="#prod-extensibilityArgument">extensibilityArgument</a></span> ( "," <span class="prod"><a class="grammarRef" href="#prod-extensibilityArgument">extensibilityArgument</a></span> )* "}"<br/> ' +
'| "(" <span class="prod"><a class="grammarRef" href="#prod-extensibilityArgument">extensibilityArgument</a></span> ( "," <span class="prod"><a class="grammarRef" href="#prod-extensibilityArgument">extensibilityArgument</a></span> )* ")"</code></td> ' +
--- a/model/grammar/yack/prov-n-LL.bnf Tue Jul 03 16:56:46 2012 +0100
+++ b/model/grammar/yack/prov-n-LL.bnf Tue Jul 03 17:18:55 2012 +0100
@@ -167,10 +167,10 @@
extensibilityExpression ::= QUALIFIED_NAME "(" extensibilityArgument ( ("," | ";") extensibilityArgument)* optionalAttributeValuePairs ")"
extensibilityArgument ::=
- ( identifierOrMarker | literal | timeZZ | extensibilityExpression | extensibilityRecord )
+ ( identifierOrMarker | literal | timeZZ | extensibilityExpression | extensibilityTuple )
-extensibilityRecord ::=
+extensibilityTuple ::=
"{" extensibilityArgument ("," extensibilityArgument)* "}" | "(" extensibilityArgument ("," extensibilityArgument)* ")"
;
--- a/model/grammar/yack/prov-n-LL.bnf.html Tue Jul 03 16:56:46 2012 +0100
+++ b/model/grammar/yack/prov-n-LL.bnf.html Tue Jul 03 17:18:55 2012 +0100
@@ -495,14 +495,14 @@
<td><a id="prod-prov_n_LL-extensibilityArgument" name="prod-prov_n_LL-extensibilityArgument"></a>[<span class="prodNo">55</span>] </td>
<td><code class="production prod">extensibilityArgument</code></td>
<td> ::= </td>
-<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-identifierOrMarker">identifierOrMarker</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-literal">literal</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-timeZZ">timeZZ</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityExpression">extensibilityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityRecord">extensibilityRecord</a></span> )</code></td>
+<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-identifierOrMarker">identifierOrMarker</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-literal">literal</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-timeZZ">timeZZ</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityExpression">extensibilityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityTuple">extensibilityTuple</a></span> )</code></td>
</tr>
</tbody>
<tbody class="prod">
<tr valign="baseline">
-<td><a id="prod-prov_n_LL-extensibilityRecord" name="prod-prov_n_LL-extensibilityRecord"></a>[<span class="prodNo">56</span>] </td>
-<td><code class="production prod">extensibilityRecord</code></td>
+<td><a id="prod-prov_n_LL-extensibilityTuple" name="prod-prov_n_LL-extensibilityTuple"></a>[<span class="prodNo">56</span>] </td>
+<td><code class="production prod">extensibilityTuple</code></td>
<td> ::= </td>
<td><code class="content">"{" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> ))* "}"<br/>
| "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-extensibilityArgument">extensibilityArgument</a></span> ))* ")"</code></td>
--- a/model/prov-n.html Tue Jul 03 16:56:46 2012 +0100
+++ b/model/prov-n.html Tue Jul 03 17:18:55 2012 +0100
@@ -2363,8 +2363,8 @@
<tbody class="grammar-ref" data-ref="prod-namespaceDeclarations"></tbody>
<tbody class="grammar-ref" data-ref="prod-namespaceDeclaration"></tbody>
+<tbody class="grammar-ref" data-ref="prod-defaultNamespaceDeclaration"></tbody>
<tbody class="grammar-ref" data-ref="prod-namespace"></tbody>
-<tbody class="grammar-ref" data-ref="prod-defaultNamespaceDeclaration"></tbody>
</table>
@@ -2429,7 +2429,7 @@
</ul>
<p>A toplevel bundle's text matches the <code class="content"><a class="grammarRef"
- href="#prod-bundle">bundle</a> production.</code></p>
+ href="#prod-bundle">bundle</a></code> production.</p>
<table class="grammar">
<tbody class="grammar-ref" data-ref="prod-bundle"></tbody>
@@ -2467,6 +2467,16 @@
<section id="extensibility">
<h4>Extensibility</h4>
+<p>The PROV data model is extensible by means of attributes <span class="name">prov:type</span> and <span class="name">prov:role</span>, allowing subtyping of expressions. For some applications, novel syntax may be convenient. Hence, the normative requirements are as follow.
+<ul>
+<li> PROV-N compliant parsers MUST be able to parse expressions matching the <code class="content"><a class="grammarRef"
+ href="#prod-extensibilityExpression">extensibilityExpression</a></code> production.
+<li> As PROV provides no interpretation for these expressions, PROV compliant implementations
+ MAY ignore these expressions.</li>
+<li> Extensions to PROV and PROV-N MAY specify more specific productions and interpretations for these expressions. </li>
+</ul>
+</p>
+
<table class="grammar">
<tbody class="grammar-ref" data-ref="prod-extensibilityExpression"></tbody>
@@ -2475,6 +2485,12 @@
</table>
+<p>Expressions compatible with the
+<code class="content"><a class="grammarRef"
+ href="#prod-extensibilityExpression">extensibilityExpression</a></code> production
+
+
+
</section>