updated yack grammar
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 10 May 2012 14:35:17 +0100
changeset 2749 49ebd0bc89a1
parent 2748 44ac7be5d9c9
child 2750 cc90ca4628bd
updated yack grammar
model/grammar/yack/prov-n.bnf
model/grammar/yack/prov_n.html
model/grammar/yack/sample2.in
--- a/model/grammar/yack/prov-n.bnf	Thu May 10 13:07:21 2012 +0100
+++ b/model/grammar/yack/prov-n.bnf	Thu May 10 14:35:17 2012 +0100
@@ -5,7 +5,7 @@
 
 [4] namespaceDeclarations ::=  (defaultNamespaceDeclaration | namespaceDeclaration) namespaceDeclaration*
 
-[5] namespaceDeclaration ::= "prefix" QNAME namespace
+[5] namespaceDeclaration ::= "prefix" QUALNAME namespace
 
 [6] namespace ::= IRI_REF
 
@@ -116,8 +116,8 @@
 
 optionalAttributeValuePairs::= ("," "[" attributeValuePairs "]")?
 
-identifier ::=QNAME
-attribute ::=QNAME
+identifier ::=QUALNAME
+attribute ::=QUALNAME
 attributeValuePairs::=      (  | attributeValuePair ( "," attributeValuePair )* )
 
 attributeValuePair::= attribute '='  literal
@@ -139,7 +139,7 @@
 
 [13] literal ::= StringLiteral | INTLITERAL | StringLiteral "%%" datatype
 
-datatype::= IRI_REF | QNAME
+datatype::= IRI_REF | QUALNAME
 
  
 [66s] StringLiteral ::= STRING_LITERAL
@@ -148,7 +148,9 @@
 
 
 @terminals
-QNAME::= (PN_PREFIX ":")? PN_LOCAL | PN_PREFIX ":"
+QUALNAME_OLD::= (PN_PREFIX ":")?  PN_LOCAL | PN_PREFIX ":"
+
+QUALNAME::= PN_PREFIX ":"   PN_LOCAL? |   PN_LOCAL
 
 PREFX::=  PN_PREFIX
 DIGIT::=[0-9]
@@ -209,9 +211,9 @@
  | [#203F-#2040] 
 [99s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | "." )* PN_CHARS )? 
  
-[100s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ( ( PN_CHARS | '.' | PLX )*  ( PN_CHARS | PLX ) ) ?
+[100s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PN_CHARS_OTHERS ) ( ( PN_CHARS | '.' | PN_CHARS_OTHERS )*  ( PN_CHARS | PN_CHARS_OTHERS ) ) ?
 
-[160s] PLX ::= PERCENT | PN_LOCAL_ESC
+[160s] PN_CHARS_OTHERS ::= PERCENT | '/' | '@' | '~' | '&' | '+' | '?' | '#' | '$'
 
 [161s] PERCENT ::= '%' HEX HEX
 
--- a/model/grammar/yack/prov_n.html	Thu May 10 13:07:21 2012 +0100
+++ b/model/grammar/yack/prov_n.html	Thu May 10 14:35:17 2012 +0100
@@ -102,7 +102,7 @@
 <td><a id="prod-prov_n-namespaceDeclaration" name="prod-prov_n-namespaceDeclaration"></a>[<span class="prodNo">11</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">namespaceDeclaration</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "prefix" <span class="prod"><a class="grammarRef" href="#prod-prov_n-QNAME">QNAME</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-namespace">namespace</a></span></code></td>
+<td><code class="content">    "prefix" <span class="prod"><a class="grammarRef" href="#prod-prov_n-QUALNAME">QUALNAME</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-namespace">namespace</a></span></code></td>
 </tr>
 </tbody>
 
@@ -491,7 +491,7 @@
 <td><a id="prod-prov_n-identifier" name="prod-prov_n-identifier"></a>[<span class="prodNo">49</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">identifier</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-QNAME">QNAME</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-QUALNAME">QUALNAME</a></span></code></td>
 </tr>
 </tbody>
 
@@ -500,7 +500,7 @@
 <td><a id="prod-prov_n-attribute" name="prod-prov_n-attribute"></a>[<span class="prodNo">50</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">attribute</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-QNAME">QNAME</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-QUALNAME">QUALNAME</a></span></code></td>
 </tr>
 </tbody>
 
@@ -577,7 +577,7 @@
 <td><code class="production prod">datatype</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-IRI_REF">IRI_REF</a></span>
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-QNAME">QNAME</a></span></code></td>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-QUALNAME">QUALNAME</a></span></code></td>
 </tr>
 </tbody>
 
@@ -592,8 +592,8 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-QNAME" name="term-prov_n-QNAME"></a>[<span class="prodNo">60</span>]&nbsp;&nbsp;&nbsp;</td>
-<td>&lt;<code class="production term">QNAME</code>&gt;</td>
+<td><a id="term-prov_n-QUALNAME_OLD" name="term-prov_n-QUALNAME_OLD"></a>[<span class="prodNo">60</span>]&nbsp;&nbsp;&nbsp;</td>
+<td>&lt;<code class="production term">QUALNAME_OLD</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">(( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_PREFIX">PN_PREFIX</a></span> ":" ))? <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_LOCAL">PN_LOCAL</a></span><br/>
 | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_PREFIX">PN_PREFIX</a></span> ":"</code></td>
@@ -602,7 +602,17 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PREFX" name="term-prov_n-PREFX"></a>[<span class="prodNo">61</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-QUALNAME" name="term-prov_n-QUALNAME"></a>[<span class="prodNo">61</span>]&nbsp;&nbsp;&nbsp;</td>
+<td>&lt;<code class="production term">QUALNAME</code>&gt;</td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_PREFIX">PN_PREFIX</a></span> ":" (<span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_LOCAL">PN_LOCAL</a></span>)?<br/>
+| <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_LOCAL">PN_LOCAL</a></span></code></td>
+</tr>
+</tbody>
+
+<tbody class="term">
+<tr valign="baseline">
+<td><a id="term-prov_n-PREFX" name="term-prov_n-PREFX"></a>[<span class="prodNo">62</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PREFX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_PREFIX">PN_PREFIX</a></span></code></td>
@@ -611,7 +621,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-DIGIT" name="term-prov_n-DIGIT"></a>[<span class="prodNo">62</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-DIGIT" name="term-prov_n-DIGIT"></a>[<span class="prodNo">63</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">DIGIT</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[0-9]</code></td>
@@ -620,7 +630,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ISODATETIME" name="term-prov_n-ISODATETIME"></a>[<span class="prodNo">63</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ISODATETIME" name="term-prov_n-ISODATETIME"></a>[<span class="prodNo">64</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ISODATETIME</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> "T" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> (( "." <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> (<span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span>)? ))? ))? (( "Z" | <span class="prod"><a class="grammarRef" href="#prod-prov_n-TIMEZONEOFFSET">TIMEZONEOFFSET</a></span> ))?</code></td>
@@ -629,7 +639,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-TIMEZONEOFFSET" name="term-prov_n-TIMEZONEOFFSET"></a>[<span class="prodNo">64</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-TIMEZONEOFFSET" name="term-prov_n-TIMEZONEOFFSET"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">TIMEZONEOFFSET</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "+" | "-" ) <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span></code></td>
@@ -638,7 +648,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PREFIX" name="term-prov_n-PREFIX"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PREFIX" name="term-prov_n-PREFIX"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PREFIX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"@prefix"</code></td>
@@ -647,7 +657,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-IRI_REF" name="term-prov_n-IRI_REF"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-IRI_REF" name="term-prov_n-IRI_REF"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">IRI_REF</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"&lt;" (( [^&lt;&gt;\"{}|^`\\] - [#0000- ] | <span class="prod"><a class="grammarRef" href="#prod-prov_n-UCHAR">UCHAR</a></span> ))* "&gt;"</code></td>
@@ -656,7 +666,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-INTLITERAL" name="term-prov_n-INTLITERAL"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-INTLITERAL" name="term-prov_n-INTLITERAL"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">INTLITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">("-")? (<span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span>)+</code></td>
@@ -665,7 +675,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-STRING_LITERAL" name="term-prov_n-STRING_LITERAL"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-STRING_LITERAL" name="term-prov_n-STRING_LITERAL"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">'"' (( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="#prod-prov_n-ECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n-UCHAR">UCHAR</a></span> ))* '"'</code></td>
@@ -674,7 +684,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-UCHAR" name="term-prov_n-UCHAR"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-UCHAR" name="term-prov_n-UCHAR"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">UCHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "\\u" <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> )<br/>
@@ -684,7 +694,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ECHAR" name="term-prov_n-ECHAR"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ECHAR" name="term-prov_n-ECHAR"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ECHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"\\" [tbnrf\\\"']</code></td>
@@ -693,7 +703,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-NIL" name="term-prov_n-NIL"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-NIL" name="term-prov_n-NIL"></a>[<span class="prodNo">72</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">NIL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"(" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-WS">WS</a></span> ))* ")"</code></td>
@@ -702,7 +712,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-WS" name="term-prov_n-WS"></a>[<span class="prodNo">72</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-WS" name="term-prov_n-WS"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">WS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">" "<br/>
@@ -714,7 +724,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ANON" name="term-prov_n-ANON"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ANON" name="term-prov_n-ANON"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ANON</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"[" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-WS">WS</a></span> ))* "]"</code></td>
@@ -723,7 +733,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_CHARS_BASE" name="term-prov_n-PN_CHARS_BASE"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_CHARS_BASE" name="term-prov_n-PN_CHARS_BASE"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_BASE</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[A-Z]<br/>
@@ -745,7 +755,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_CHARS_U" name="term-prov_n-PN_CHARS_U"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_CHARS_U" name="term-prov_n-PN_CHARS_U"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_U</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_BASE">PN_CHARS_BASE</a></span><br/>
@@ -755,7 +765,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_CHARS" name="term-prov_n-PN_CHARS"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_CHARS" name="term-prov_n-PN_CHARS"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_U">PN_CHARS_U</a></span><br/>
@@ -769,7 +779,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_PREFIX" name="term-prov_n-PN_PREFIX"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_PREFIX" name="term-prov_n-PN_PREFIX"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_PREFIX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_BASE">PN_CHARS_BASE</a></span> (( (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | "." ))* <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> ))?</code></td>
@@ -778,26 +788,33 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_LOCAL" name="term-prov_n-PN_LOCAL"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_LOCAL" name="term-prov_n-PN_LOCAL"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_LOCAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_U">PN_CHARS_U</a></span> | [0-9] | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PLX">PLX</a></span> ) (( (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | "." | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PLX">PLX</a></span> ))* ( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PLX">PLX</a></span> ) ))?</code></td>
+<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_U">PN_CHARS_U</a></span> | [0-9] | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_OTHERS">PN_CHARS_OTHERS</a></span> ) (( (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | "." | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_OTHERS">PN_CHARS_OTHERS</a></span> ))* ( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_OTHERS">PN_CHARS_OTHERS</a></span> ) ))?</code></td>
 </tr>
 </tbody>
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PLX" name="term-prov_n-PLX"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
-<td>&lt;<code class="production term">PLX</code>&gt;</td>
+<td><a id="term-prov_n-PN_CHARS_OTHERS" name="term-prov_n-PN_CHARS_OTHERS"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
+<td>&lt;<code class="production term">PN_CHARS_OTHERS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PERCENT">PERCENT</a></span><br/>
-| <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_LOCAL_ESC">PN_LOCAL_ESC</a></span></code></td>
+| "/"<br/>
+| "@"<br/>
+| "~"<br/>
+| "&amp;"<br/>
+| "+"<br/>
+| "?"<br/>
+| "#"<br/>
+| "$"</code></td>
 </tr>
 </tbody>
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PERCENT" name="term-prov_n-PERCENT"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PERCENT" name="term-prov_n-PERCENT"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PERCENT</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"%" <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span></code></td>
@@ -806,7 +823,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-HEX" name="term-prov_n-HEX"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-HEX" name="term-prov_n-HEX"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">HEX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[0-9]<br/>
@@ -817,7 +834,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_LOCAL_ESC" name="term-prov_n-PN_LOCAL_ESC"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_LOCAL_ESC" name="term-prov_n-PN_LOCAL_ESC"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_LOCAL_ESC</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"\\" ( "_" | "~" | "." | "-" | "!" | "$" | "&amp;" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | ":" | "/" | "?" | "#" | "@" | "%" )</code></td>
@@ -826,7 +843,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PASSED_TOKENS" name="term-prov_n-PASSED_TOKENS"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PASSED_TOKENS" name="term-prov_n-PASSED_TOKENS"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production directive">PASSED TOKENS</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">([ \t\r\n])+<br/>
--- a/model/grammar/yack/sample2.in	Thu May 10 13:07:21 2012 +0100
+++ b/model/grammar/yack/sample2.in	Thu May 10 14:35:17 2012 +0100
@@ -1,5 +1,5 @@
 bundle
-prefix ex <http://example>
+prefix ex <http://example/>
 
           activity(ex:a10, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
           activity(ex:a10, -, 2011-11-16T16:00:01, [prov:type="createFile"])
@@ -8,60 +8,12 @@
           activity(ex:a10, [prov:type="createFile"])
 
           wasGeneratedBy(-; ex:e1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasGeneratedBy(-; ex:e1, ex:a1, -)
-          wasGeneratedBy(-; ex:e1, [ex:param1="a", ex:param2="b"])
-
-          wasStartedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasStartedBy(s1; ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
-          wasStartedBy(s1; ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasStartedBy(s1; ex:a1, -, -, [ex:param1="a", ex:param2="b"])
-          wasStartedBy(s1; ex:a1, [ex:param1="a", ex:param2="b"])
-
-          wasStartedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52)
-          wasStartedBy(s1; ex:a1, ex:e1, -)
-          wasStartedBy(s1; ex:a1, -, 2001-10-26T21:32:52)
-          wasStartedBy(s1; ex:a1, -, -)
-          wasStartedBy(s1; ex:a1)
-
-          wasStartedBy( ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasStartedBy( ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
-          wasStartedBy( ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasStartedBy( ex:a1, -, -, [ex:param1="a", ex:param2="b"])
-          wasStartedBy( ex:a1, [ex:param1="a", ex:param2="b"])
-
-
-          wasStartedBy( ex:a1, ex:e1, 2001-10-26T21:32:52)
-          wasStartedBy( ex:a1, ex:e1, -)
-          wasStartedBy( ex:a1, -, 2001-10-26T21:32:52)
-          wasStartedBy( ex:a1, -, -)
-          wasStartedBy( ex:a1)
 
-
-          wasEndedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasEndedBy(s1; ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
-          wasEndedBy(s1; ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasEndedBy(s1; ex:a1, -, -, [ex:param1="a", ex:param2="b"])
-          wasEndedBy(s1; ex:a1, [ex:param1="a", ex:param2="b"])
-
-          wasEndedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52)
-          wasEndedBy(s1; ex:a1, ex:e1, -)
-          wasEndedBy(s1; ex:a1, -, 2001-10-26T21:32:52)
-          wasEndedBy(s1; ex:a1, -, -)
-          wasEndedBy(s1; ex:a1)
+          wasGeneratedBy(-; ex:e1/@/, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasGeneratedBy(-; ex:~, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasGeneratedBy(-; ex:~+?&#$_, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
 
-          wasEndedBy( ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasEndedBy( ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
-          wasEndedBy( ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
-          wasEndedBy( ex:a1, -, -, [ex:param1="a", ex:param2="b"])
-          wasEndedBy( ex:a1, [ex:param1="a", ex:param2="b"])
-
+          wasGeneratedBy(-; ex:, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
 
-          wasEndedBy( ex:a1, ex:e1, 2001-10-26T21:32:52)
-          wasEndedBy( ex:a1, ex:e1, -)
-          wasEndedBy( ex:a1, -, 2001-10-26T21:32:52)
-          wasEndedBy( ex:a1, -, -)
-          wasEndedBy( ex:a1)
-
-
-
+          wasGeneratedBy(-; ex, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
 endBundle
\ No newline at end of file