ebnf 1.2.0 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +223 -199
  3. data/UNLICENSE +1 -1
  4. data/VERSION +1 -1
  5. data/bin/ebnf +38 -19
  6. data/etc/abnf-core.ebnf +52 -0
  7. data/etc/abnf.abnf +121 -0
  8. data/etc/abnf.ebnf +124 -0
  9. data/etc/abnf.sxp +45 -0
  10. data/etc/doap.ttl +23 -18
  11. data/etc/ebnf.ebnf +21 -33
  12. data/etc/ebnf.html +76 -160
  13. data/etc/{ebnf.rb → ebnf.ll1.rb} +30 -107
  14. data/etc/ebnf.ll1.sxp +182 -183
  15. data/etc/ebnf.peg.rb +90 -0
  16. data/etc/ebnf.peg.sxp +84 -0
  17. data/etc/ebnf.sxp +40 -41
  18. data/etc/iso-ebnf.ebnf +140 -0
  19. data/etc/iso-ebnf.isoebnf +138 -0
  20. data/etc/iso-ebnf.sxp +65 -0
  21. data/etc/sparql.ebnf +4 -4
  22. data/etc/sparql.html +1603 -1751
  23. data/etc/sparql.ll1.sxp +7372 -7372
  24. data/etc/sparql.peg.rb +532 -0
  25. data/etc/sparql.peg.sxp +597 -0
  26. data/etc/sparql.sxp +363 -362
  27. data/etc/turtle.ebnf +3 -3
  28. data/etc/turtle.html +465 -517
  29. data/etc/{turtle.rb → turtle.ll1.rb} +3 -4
  30. data/etc/turtle.ll1.sxp +425 -425
  31. data/etc/turtle.peg.rb +182 -0
  32. data/etc/turtle.peg.sxp +199 -0
  33. data/etc/turtle.sxp +103 -101
  34. data/lib/ebnf.rb +6 -1
  35. data/lib/ebnf/abnf.rb +301 -0
  36. data/lib/ebnf/abnf/core.rb +23 -0
  37. data/lib/ebnf/abnf/meta.rb +111 -0
  38. data/lib/ebnf/base.rb +114 -69
  39. data/lib/ebnf/bnf.rb +1 -26
  40. data/lib/ebnf/ebnf/meta.rb +90 -0
  41. data/lib/ebnf/isoebnf.rb +229 -0
  42. data/lib/ebnf/isoebnf/meta.rb +75 -0
  43. data/lib/ebnf/ll1.rb +131 -3
  44. data/lib/ebnf/ll1/lexer.rb +20 -22
  45. data/lib/ebnf/ll1/parser.rb +97 -64
  46. data/lib/ebnf/ll1/scanner.rb +82 -50
  47. data/lib/ebnf/native.rb +320 -0
  48. data/lib/ebnf/parser.rb +285 -302
  49. data/lib/ebnf/peg.rb +39 -0
  50. data/lib/ebnf/peg/parser.rb +561 -0
  51. data/lib/ebnf/peg/rule.rb +250 -0
  52. data/lib/ebnf/rule.rb +442 -148
  53. data/lib/ebnf/terminals.rb +21 -0
  54. data/lib/ebnf/writer.rb +587 -82
  55. metadata +125 -18
  56. data/etc/sparql.rb +0 -45773
data/etc/iso-ebnf.sxp ADDED
@@ -0,0 +1,65 @@
1
+ (
2
+ (rule syntax (star syntax_rule))
3
+ (rule syntax_rule
4
+ (seq meta_identifier defining_symbol definitions_list terminator_symbol))
5
+ (rule definitions_list
6
+ (seq single_definition (star (seq definition_separator_symbol definitions_list))))
7
+ (rule single_definition (seq term (star (seq "," term))))
8
+ (rule term (seq factor (opt (seq "-" exception))))
9
+ (rule exception (seq factor))
10
+ (rule factor (seq (opt (seq integer "*")) primary))
11
+ (rule primary
12
+ (alt optional_sequence repeated_sequence special_sequence grouped_sequence
13
+ meta_identifier terminal_string empty ))
14
+ (rule optional_sequence
15
+ (seq start_option_symbol definitions_list end_option_symbol))
16
+ (rule repeated_sequence
17
+ (seq start_repeat_symbol definitions_list end_repeat_symbol))
18
+ (rule grouped_sequence (seq "(" definitions_list ")"))
19
+ (terminals _terminals (seq))
20
+ (terminal terminal_string
21
+ (alt
22
+ (seq "'" (plus first_terminal_character) "'")
23
+ (seq "\"" (plus second_terminal_character) "\"")) )
24
+ (terminal meta_identifier (seq letter (star meta_identifier_character)))
25
+ (terminal integer (plus decimal_digit))
26
+ (terminal special_sequence (seq "?" (star special_sequence_character) "?"))
27
+ (terminal comment (seq start_comment_symbol (star comment_symbol) end_comment_symbol))
28
+ (terminal comment_symbol (alt comment commentless_symbol other_character))
29
+ (terminal commentless_symbol
30
+ (alt terminal_character meta_identifier integer terminal_string special_sequence))
31
+ (terminal letter (range "a-zA-Z"))
32
+ (terminal decimal_digit (range "0-9"))
33
+ (terminal meta_identifier_character (alt letter decimal_digit "_"))
34
+ (terminal first_terminal_character (diff terminal_character "'"))
35
+ (terminal second_terminal_character (diff terminal_character "\""))
36
+ (terminal special_sequence_character (diff terminal_character "?"))
37
+ (terminal terminal_character
38
+ (alt letter decimal_digit concatenate_symbol defining_symbol
39
+ definition_separator_symbol end_comment_symbol end_group_symbol
40
+ end_option_symbol end_repeat_symbol except_symbol first_quote_symbol
41
+ repetition_symbol second_quote_symbol special_sequence_symbol
42
+ start_comment_symbol start_group_symbol start_option_symbol
43
+ start_repeat_symbol terminator_symbol other_character ))
44
+ (terminal other_character (alt (range ":+_%@&$<>^` ̃#x20#x23") "\\"))
45
+ (terminal gap_separator (range "#x9#xa#xb#xc#xd#x20"))
46
+ (pass _pass (alt (plus gap_separator) comment))
47
+ (terminal empty (seq ""))
48
+ (terminal concatenate_symbol (seq ","))
49
+ (terminal repetition_symbol (seq "*"))
50
+ (terminal except_symbol (seq "-"))
51
+ (terminal first_quote_symbol (seq "'"))
52
+ (terminal second_quote_symbol (seq "\""))
53
+ (terminal start_comment_symbol (seq "(*"))
54
+ (terminal end_comment_symbol (seq "*)"))
55
+ (terminal start_group_symbol (seq "("))
56
+ (terminal end_group_symbol (seq ")"))
57
+ (terminal special_sequence_symbol (seq "?"))
58
+ (terminal defining_symbol (alt "=" ":"))
59
+ (terminal definition_separator_symbol (alt "|" "/" "!"))
60
+ (terminal terminator_symbol (alt ";" "."))
61
+ (terminal start_option_symbol (seq "["))
62
+ (terminal end_option_symbol (seq "]"))
63
+ (terminal start_repeat_symbol (alt "{" "(:"))
64
+ (terminal end_repeat_symbol (alt "}" ":)"))
65
+ (terminal gap_free_symbol (alt (diff terminal_character (range "'\"")) terminal_string)))
data/etc/sparql.ebnf CHANGED
@@ -243,13 +243,13 @@
243
243
 
244
244
  @terminals
245
245
 
246
- [139] IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
246
+ [139] IRIREF ::= '<' ([^<>"{}|^`\]-[#x00-#x20])* '>'
247
247
  [140] PNAME_NS ::= PN_PREFIX? ':'
248
248
  [141] PNAME_LN ::= PNAME_NS PN_LOCAL
249
249
  [142] BLANK_NODE_LABEL ::= '_:' ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?
250
250
  [143] VAR1 ::= '?' VARNAME
251
251
  [144] VAR2 ::= '$' VARNAME
252
- [145] LANGTAG ::= '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)*
252
+ [145] LANGTAG ::= '@' ([a-zA-Z])+ ('-' ([a-zA-Z0-9])+)*
253
253
  [146] INTEGER ::= [0-9]+
254
254
  [147] DECIMAL ::= [0-9]* '.' [0-9]+
255
255
  [148] DOUBLE ::= [0-9]+ '.' [0-9]* EXPONENT
@@ -269,7 +269,7 @@
269
269
  [161] NIL ::= '(' WS* ')'
270
270
  [162] WS ::= #x20 | #x9 | #xD | #xA
271
271
  [163] ANON ::= '[' WS* ']'
272
- [164] PN_CHARS_BASE ::= [A-Z] | [a-z] | [#x00C0-#x00D6]
272
+ [164] PN_CHARS_BASE ::= [A-Za-z] | [#x00C0-#x00D6]
273
273
  | [#x00D8-#x00F6] | [#x00F8-#x02FF] | [#x0370-#x037D]
274
274
  | [#x037F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F]
275
275
  | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF]
@@ -283,6 +283,6 @@
283
283
  [169] PN_LOCAL ::= ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?
284
284
  [170] PLX ::= PERCENT | PN_LOCAL_ESC
285
285
  [171] PERCENT ::= '%' HEX HEX
286
- [172] HEX ::= [0-9] | [A-F] | [a-f]
286
+ [172] HEX ::= [0-9A-Fa-f]
287
287
  [173] PN_LOCAL_ESC ::= '\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '='
288
288
  | '/' | '?' | '#' | '@' | '%' )
data/etc/sparql.html CHANGED
@@ -1,1753 +1,1605 @@
1
1
  <table class='grammar'>
2
- <tbody id='grammar-productions'>
3
- <tr id='grammar-production-QueryUnit'>
4
- <td>[1]</td>
5
- <td><code>QueryUnit</code></td>
6
- <td>::=</td>
7
- <td>
8
- <a href="#grammar-production-Query">Query</a><code>?</code>
9
- </td>
10
- </tr>
11
- <tr id='grammar-production-Query'>
12
- <td>[2]</td>
13
- <td><code>Query</code></td>
14
- <td>::=</td>
15
- <td>
16
- <a href="#grammar-production-Prologue">Prologue</a>
17
- <code>(</code> <a href="#grammar-production-SelectQuery">SelectQuery</a> <code>|</code> <a href="#grammar-production-ConstructQuery">ConstructQuery</a> <code>|</code> <a href="#grammar-production-DescribeQuery">DescribeQuery</a> <code>|</code> <a href="#grammar-production-AskQuery">AskQuery</a><code>)</code>
18
- </td>
19
- </tr>
20
- <tr id='grammar-production-UpdateUnit'>
21
- <td>[3]</td>
22
- <td><code>UpdateUnit</code></td>
23
- <td>::=</td>
24
- <td>
25
- <a href="#grammar-production-Update">Update</a>
26
- </td>
27
- </tr>
28
- <tr id='grammar-production-Prologue'>
29
- <td>[4]</td>
30
- <td><code>Prologue</code></td>
31
- <td>::=</td>
32
- <td>
33
- (<a href="#grammar-production-BaseDecl">BaseDecl</a> <code>|</code> <a href="#grammar-production-PrefixDecl">PrefixDecl</a>)<code>*</code>
34
- </td>
35
- </tr>
36
- <tr id='grammar-production-BaseDecl'>
37
- <td>[5]</td>
38
- <td><code>BaseDecl</code></td>
39
- <td>::=</td>
40
- <td>
41
- "<code class="grammar-literal">BASE</code>"
42
- <a href="#grammar-production-IRIREF">IRIREF</a>
43
- </td>
44
- </tr>
45
- <tr id='grammar-production-PrefixDecl'>
46
- <td>[6]</td>
47
- <td><code>PrefixDecl</code></td>
48
- <td>::=</td>
49
- <td>
50
- "<code class="grammar-literal">PREFIX</code>"
51
- <a href="#grammar-production-PNAME_NS">PNAME_NS</a>
52
- <a href="#grammar-production-IRIREF">IRIREF</a>
53
- </td>
54
- </tr>
55
- <tr id='grammar-production-SelectQuery'>
56
- <td>[7]</td>
57
- <td><code>SelectQuery</code></td>
58
- <td>::=</td>
59
- <td>
60
- <a href="#grammar-production-SelectClause">SelectClause</a>
61
- <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code>
62
- <a href="#grammar-production-WhereClause">WhereClause</a>
63
- <a href="#grammar-production-SolutionModifier">SolutionModifier</a>
64
- <a href="#grammar-production-ValuesClause">ValuesClause</a>
65
- </td>
66
- </tr>
67
- <tr id='grammar-production-SubSelect'>
68
- <td>[8]</td>
69
- <td><code>SubSelect</code></td>
70
- <td>::=</td>
71
- <td>
72
- <a href="#grammar-production-SelectClause">SelectClause</a>
73
- <a href="#grammar-production-WhereClause">WhereClause</a>
74
- <a href="#grammar-production-SolutionModifier">SolutionModifier</a>
75
- <a href="#grammar-production-ValuesClause">ValuesClause</a>
76
- </td>
77
- </tr>
78
- <tr id='grammar-production-SelectClause'>
79
- <td>[9]</td>
80
- <td><code>SelectClause</code></td>
81
- <td>::=</td>
82
- <td>
83
- "<code class="grammar-literal">SELECT</code>"
84
- ("<code class="grammar-literal">DISTINCT</code>" <code>|</code> "<code class="grammar-literal">REDUCED</code>")<code>?</code>
85
- <code>(</code> (<a href="#grammar-production-Var">Var</a> <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">AS</code>" <a href="#grammar-production-Var">Var</a> "<code class="grammar-literal">)</code>")<code>+</code> <code>|</code> "<code class="grammar-literal">*</code>"<code>)</code>
86
- </td>
87
- </tr>
88
- <tr id='grammar-production-ConstructQuery'>
89
- <td>[10]</td>
90
- <td><code>ConstructQuery</code></td>
91
- <td>::=</td>
92
- <td>
93
- "<code class="grammar-literal">CONSTRUCT</code>"
94
- <code>(</code> <a href="#grammar-production-ConstructTemplate">ConstructTemplate</a> <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code> <a href="#grammar-production-WhereClause">WhereClause</a> <a href="#grammar-production-SolutionModifier">SolutionModifier</a> <code>|</code> <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code> "<code class="grammar-literal">WHERE</code>" "<code class="grammar-literal">{</code>" <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code> "<code class="grammar-literal">}</code>" <a href="#grammar-production-SolutionModifier">SolutionModifier</a><code>)</code>
95
- <a href="#grammar-production-ValuesClause">ValuesClause</a>
96
- </td>
97
- </tr>
98
- <tr id='grammar-production-DescribeQuery'>
99
- <td>[11]</td>
100
- <td><code>DescribeQuery</code></td>
101
- <td>::=</td>
102
- <td>
103
- "<code class="grammar-literal">DESCRIBE</code>"
104
- <code>(</code> <a href="#grammar-production-VarOrIri">VarOrIri</a><code>+</code> <code>|</code> "<code class="grammar-literal">*</code>"<code>)</code>
105
- <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code>
106
- <a href="#grammar-production-WhereClause">WhereClause</a><code>?</code>
107
- <a href="#grammar-production-SolutionModifier">SolutionModifier</a>
108
- <a href="#grammar-production-ValuesClause">ValuesClause</a>
109
- </td>
110
- </tr>
111
- <tr id='grammar-production-AskQuery'>
112
- <td>[12]</td>
113
- <td><code>AskQuery</code></td>
114
- <td>::=</td>
115
- <td>
116
- "<code class="grammar-literal">ASK</code>"
117
- <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code>
118
- <a href="#grammar-production-WhereClause">WhereClause</a>
119
- <a href="#grammar-production-ValuesClause">ValuesClause</a>
120
- </td>
121
- </tr>
122
- <tr id='grammar-production-DatasetClause'>
123
- <td>[13]</td>
124
- <td><code>DatasetClause</code></td>
125
- <td>::=</td>
126
- <td>
127
- "<code class="grammar-literal">FROM</code>"
128
- <code>(</code> <a href="#grammar-production-DefaultGraphClause">DefaultGraphClause</a> <code>|</code> <a href="#grammar-production-NamedGraphClause">NamedGraphClause</a><code>)</code>
129
- </td>
130
- </tr>
131
- <tr id='grammar-production-DefaultGraphClause'>
132
- <td>[14]</td>
133
- <td><code>DefaultGraphClause</code></td>
134
- <td>::=</td>
135
- <td>
136
- <a href="#grammar-production-SourceSelector">SourceSelector</a>
137
- </td>
138
- </tr>
139
- <tr id='grammar-production-NamedGraphClause'>
140
- <td>[15]</td>
141
- <td><code>NamedGraphClause</code></td>
142
- <td>::=</td>
143
- <td>
144
- "<code class="grammar-literal">NAMED</code>"
145
- <a href="#grammar-production-SourceSelector">SourceSelector</a>
146
- </td>
147
- </tr>
148
- <tr id='grammar-production-SourceSelector'>
149
- <td>[16]</td>
150
- <td><code>SourceSelector</code></td>
151
- <td>::=</td>
152
- <td>
153
- <a href="#grammar-production-iri">iri</a>
154
- </td>
155
- </tr>
156
- <tr id='grammar-production-WhereClause'>
157
- <td>[17]</td>
158
- <td><code>WhereClause</code></td>
159
- <td>::=</td>
160
- <td>
161
- "<code class="grammar-literal">WHERE</code>"<code>?</code>
162
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
163
- </td>
164
- </tr>
165
- <tr id='grammar-production-SolutionModifier'>
166
- <td>[18]</td>
167
- <td><code>SolutionModifier</code></td>
168
- <td>::=</td>
169
- <td>
170
- <a href="#grammar-production-GroupClause">GroupClause</a><code>?</code>
171
- <a href="#grammar-production-HavingClause">HavingClause</a><code>?</code>
172
- <a href="#grammar-production-OrderClause">OrderClause</a><code>?</code>
173
- <a href="#grammar-production-LimitOffsetClauses">LimitOffsetClauses</a><code>?</code>
174
- </td>
175
- </tr>
176
- <tr id='grammar-production-GroupClause'>
177
- <td>[19]</td>
178
- <td><code>GroupClause</code></td>
179
- <td>::=</td>
180
- <td>
181
- "<code class="grammar-literal">GROUP</code>"
182
- "<code class="grammar-literal">BY</code>"
183
- <a href="#grammar-production-GroupCondition">GroupCondition</a><code>+</code>
184
- </td>
185
- </tr>
186
- <tr id='grammar-production-GroupCondition'>
187
- <td>[20]</td>
188
- <td><code>GroupCondition</code></td>
189
- <td>::=</td>
190
- <td>
191
- <a href="#grammar-production-BuiltInCall">BuiltInCall</a>
192
- <code>|</code> <a href="#grammar-production-FunctionCall">FunctionCall</a>
193
- <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">AS</code>" <a href="#grammar-production-Var">Var</a>)<code>?</code> "<code class="grammar-literal">)</code>"
194
- <code>|</code> <a href="#grammar-production-Var">Var</a>
195
- </td>
196
- </tr>
197
- <tr id='grammar-production-HavingClause'>
198
- <td>[21]</td>
199
- <td><code>HavingClause</code></td>
200
- <td>::=</td>
201
- <td>
202
- "<code class="grammar-literal">HAVING</code>"
203
- <a href="#grammar-production-HavingCondition">HavingCondition</a><code>+</code>
204
- </td>
205
- </tr>
206
- <tr id='grammar-production-HavingCondition'>
207
- <td>[22]</td>
208
- <td><code>HavingCondition</code></td>
209
- <td>::=</td>
210
- <td>
211
- <a href="#grammar-production-Constraint">Constraint</a>
212
- </td>
213
- </tr>
214
- <tr id='grammar-production-OrderClause'>
215
- <td>[23]</td>
216
- <td><code>OrderClause</code></td>
217
- <td>::=</td>
218
- <td>
219
- "<code class="grammar-literal">ORDER</code>"
220
- "<code class="grammar-literal">BY</code>"
221
- <a href="#grammar-production-OrderCondition">OrderCondition</a><code>+</code>
222
- </td>
223
- </tr>
224
- <tr id='grammar-production-OrderCondition'>
225
- <td>[24]</td>
226
- <td><code>OrderCondition</code></td>
227
- <td>::=</td>
228
- <td>
229
- <code>(</code> "<code class="grammar-literal">ASC</code>" <code>|</code> "<code class="grammar-literal">DESC</code>"<code>)</code> <a href="#grammar-production-BrackettedExpression">BrackettedExpression</a>
230
- <code>|</code> <a href="#grammar-production-Constraint">Constraint</a> <code>|</code> <a href="#grammar-production-Var">Var</a>
231
- </td>
232
- </tr>
233
- <tr id='grammar-production-LimitOffsetClauses'>
234
- <td>[25]</td>
235
- <td><code>LimitOffsetClauses</code></td>
236
- <td>::=</td>
237
- <td>
238
- <a href="#grammar-production-LimitClause">LimitClause</a> <a href="#grammar-production-OffsetClause">OffsetClause</a><code>?</code>
239
- <code>|</code> <a href="#grammar-production-OffsetClause">OffsetClause</a> <a href="#grammar-production-LimitClause">LimitClause</a><code>?</code>
240
- </td>
241
- </tr>
242
- <tr id='grammar-production-LimitClause'>
243
- <td>[26]</td>
244
- <td><code>LimitClause</code></td>
245
- <td>::=</td>
246
- <td>
247
- "<code class="grammar-literal">LIMIT</code>"
248
- <a href="#grammar-production-INTEGER">INTEGER</a>
249
- </td>
250
- </tr>
251
- <tr id='grammar-production-OffsetClause'>
252
- <td>[27]</td>
253
- <td><code>OffsetClause</code></td>
254
- <td>::=</td>
255
- <td>
256
- "<code class="grammar-literal">OFFSET</code>"
257
- <a href="#grammar-production-INTEGER">INTEGER</a>
258
- </td>
259
- </tr>
260
- <tr id='grammar-production-ValuesClause'>
261
- <td>[28]</td>
262
- <td><code>ValuesClause</code></td>
263
- <td>::=</td>
264
- <td>
265
- ("<code class="grammar-literal">VALUES</code>" <a href="#grammar-production-DataBlock">DataBlock</a>)<code>?</code>
266
- </td>
267
- </tr>
268
- <tr id='grammar-production-Update'>
269
- <td>[29]</td>
270
- <td><code>Update</code></td>
271
- <td>::=</td>
272
- <td>
273
- <a href="#grammar-production-Prologue">Prologue</a>
274
- (<a href="#grammar-production-Update1">Update1</a> ("<code class="grammar-literal">;</code>" <a href="#grammar-production-Update">Update</a>)<code>?</code> )<code>?</code>
275
- </td>
276
- </tr>
277
- <tr id='grammar-production-Update1'>
278
- <td>[30]</td>
279
- <td><code>Update1</code></td>
280
- <td>::=</td>
281
- <td>
282
- <a href="#grammar-production-Load">Load</a>
283
- <code>|</code> <a href="#grammar-production-Clear">Clear</a>
284
- <code>|</code> <a href="#grammar-production-Drop">Drop</a>
285
- <code>|</code> <a href="#grammar-production-Add">Add</a>
286
- <code>|</code> <a href="#grammar-production-Move">Move</a>
287
- <code>|</code> <a href="#grammar-production-Copy">Copy</a>
288
- <code>|</code> <a href="#grammar-production-Create">Create</a>
289
- <code>|</code> <a href="#grammar-production-InsertData">InsertData</a>
290
- <code>|</code> <a href="#grammar-production-DeleteData">DeleteData</a>
291
- <code>|</code> <a href="#grammar-production-DeleteWhere">DeleteWhere</a>
292
- <code>|</code> <a href="#grammar-production-Modify">Modify</a>
293
- </td>
294
- </tr>
295
- <tr id='grammar-production-Load'>
296
- <td>[31]</td>
297
- <td><code>Load</code></td>
298
- <td>::=</td>
299
- <td>
300
- "<code class="grammar-literal">LOAD</code>"
301
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
302
- <a href="#grammar-production-iri">iri</a>
303
- ("<code class="grammar-literal">INTO</code>" <a href="#grammar-production-GraphRef">GraphRef</a>)<code>?</code>
304
- </td>
305
- </tr>
306
- <tr id='grammar-production-Clear'>
307
- <td>[32]</td>
308
- <td><code>Clear</code></td>
309
- <td>::=</td>
310
- <td>
311
- "<code class="grammar-literal">CLEAR</code>"
312
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
313
- <a href="#grammar-production-GraphRefAll">GraphRefAll</a>
314
- </td>
315
- </tr>
316
- <tr id='grammar-production-Drop'>
317
- <td>[33]</td>
318
- <td><code>Drop</code></td>
319
- <td>::=</td>
320
- <td>
321
- "<code class="grammar-literal">DROP</code>"
322
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
323
- <a href="#grammar-production-GraphRefAll">GraphRefAll</a>
324
- </td>
325
- </tr>
326
- <tr id='grammar-production-Create'>
327
- <td>[34]</td>
328
- <td><code>Create</code></td>
329
- <td>::=</td>
330
- <td>
331
- "<code class="grammar-literal">CREATE</code>"
332
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
333
- <a href="#grammar-production-GraphRef">GraphRef</a>
334
- </td>
335
- </tr>
336
- <tr id='grammar-production-Add'>
337
- <td>[35]</td>
338
- <td><code>Add</code></td>
339
- <td>::=</td>
340
- <td>
341
- "<code class="grammar-literal">ADD</code>"
342
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
343
- <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
344
- "<code class="grammar-literal">TO</code>"
345
- <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
346
- </td>
347
- </tr>
348
- <tr id='grammar-production-Move'>
349
- <td>[36]</td>
350
- <td><code>Move</code></td>
351
- <td>::=</td>
352
- <td>
353
- "<code class="grammar-literal">MOVE</code>"
354
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
355
- <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
356
- "<code class="grammar-literal">TO</code>"
357
- <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
358
- </td>
359
- </tr>
360
- <tr id='grammar-production-Copy'>
361
- <td>[37]</td>
362
- <td><code>Copy</code></td>
363
- <td>::=</td>
364
- <td>
365
- "<code class="grammar-literal">COPY</code>"
366
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
367
- <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
368
- "<code class="grammar-literal">TO</code>"
369
- <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
370
- </td>
371
- </tr>
372
- <tr id='grammar-production-InsertData'>
373
- <td>[38]</td>
374
- <td><code>InsertData</code></td>
375
- <td>::=</td>
376
- <td>
377
- "<code class="grammar-literal">INSERT DATA</code>"
378
- <a href="#grammar-production-QuadData">QuadData</a>
379
- </td>
380
- </tr>
381
- <tr id='grammar-production-DeleteData'>
382
- <td>[39]</td>
383
- <td><code>DeleteData</code></td>
384
- <td>::=</td>
385
- <td>
386
- "<code class="grammar-literal">DELETE DATA</code>"
387
- <a href="#grammar-production-QuadData">QuadData</a>
388
- </td>
389
- </tr>
390
- <tr id='grammar-production-DeleteWhere'>
391
- <td>[40]</td>
392
- <td><code>DeleteWhere</code></td>
393
- <td>::=</td>
394
- <td>
395
- "<code class="grammar-literal">DELETE WHERE</code>"
396
- <a href="#grammar-production-QuadPattern">QuadPattern</a>
397
- </td>
398
- </tr>
399
- <tr id='grammar-production-Modify'>
400
- <td>[41]</td>
401
- <td><code>Modify</code></td>
402
- <td>::=</td>
403
- <td>
404
- ("<code class="grammar-literal">WITH</code>" <a href="#grammar-production-iri">iri</a>)<code>?</code>
405
- <code>(</code> <a href="#grammar-production-DeleteClause">DeleteClause</a> <a href="#grammar-production-InsertClause">InsertClause</a><code>?</code> <code>|</code> <a href="#grammar-production-InsertClause">InsertClause</a><code>)</code>
406
- <a href="#grammar-production-UsingClause">UsingClause</a><code>*</code>
407
- "<code class="grammar-literal">WHERE</code>"
408
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
409
- </td>
410
- </tr>
411
- <tr id='grammar-production-DeleteClause'>
412
- <td>[42]</td>
413
- <td><code>DeleteClause</code></td>
414
- <td>::=</td>
415
- <td>
416
- "<code class="grammar-literal">DELETE</code>"
417
- <a href="#grammar-production-QuadPattern">QuadPattern</a>
418
- </td>
419
- </tr>
420
- <tr id='grammar-production-InsertClause'>
421
- <td>[43]</td>
422
- <td><code>InsertClause</code></td>
423
- <td>::=</td>
424
- <td>
425
- "<code class="grammar-literal">INSERT</code>"
426
- <a href="#grammar-production-QuadPattern">QuadPattern</a>
427
- </td>
428
- </tr>
429
- <tr id='grammar-production-UsingClause'>
430
- <td>[44]</td>
431
- <td><code>UsingClause</code></td>
432
- <td>::=</td>
433
- <td>
434
- "<code class="grammar-literal">USING</code>"
435
- <code>(</code> <a href="#grammar-production-iri">iri</a> <code>|</code> "<code class="grammar-literal">NAMED</code>" <a href="#grammar-production-iri">iri</a><code>)</code>
436
- </td>
437
- </tr>
438
- <tr id='grammar-production-GraphOrDefault'>
439
- <td>[45]</td>
440
- <td><code>GraphOrDefault</code></td>
441
- <td>::=</td>
442
- <td>
443
- "<code class="grammar-literal">DEFAULT</code>"
444
- <code>|</code> "<code class="grammar-literal">GRAPH</code>"<code>?</code> <a href="#grammar-production-iri">iri</a>
445
- </td>
446
- </tr>
447
- <tr id='grammar-production-GraphRef'>
448
- <td>[46]</td>
449
- <td><code>GraphRef</code></td>
450
- <td>::=</td>
451
- <td>
452
- "<code class="grammar-literal">GRAPH</code>"
453
- <a href="#grammar-production-iri">iri</a>
454
- </td>
455
- </tr>
456
- <tr id='grammar-production-GraphRefAll'>
457
- <td>[47]</td>
458
- <td><code>GraphRefAll</code></td>
459
- <td>::=</td>
460
- <td>
461
- <a href="#grammar-production-GraphRef">GraphRef</a>
462
- <code>|</code> "<code class="grammar-literal">DEFAULT</code>"
463
- <code>|</code> "<code class="grammar-literal">NAMED</code>"
464
- <code>|</code> "<code class="grammar-literal">ALL</code>"
465
- </td>
466
- </tr>
467
- <tr id='grammar-production-QuadPattern'>
468
- <td>[48]</td>
469
- <td><code>QuadPattern</code></td>
470
- <td>::=</td>
471
- <td>
472
- "<code class="grammar-literal">{</code>"
473
- <a href="#grammar-production-Quads">Quads</a>
474
- "<code class="grammar-literal">}</code>"
475
- </td>
476
- </tr>
477
- <tr id='grammar-production-QuadData'>
478
- <td>[49]</td>
479
- <td><code>QuadData</code></td>
480
- <td>::=</td>
481
- <td>
482
- "<code class="grammar-literal">{</code>"
483
- <a href="#grammar-production-Quads">Quads</a>
484
- "<code class="grammar-literal">}</code>"
485
- </td>
486
- </tr>
487
- <tr id='grammar-production-Quads'>
488
- <td>[50]</td>
489
- <td><code>Quads</code></td>
490
- <td>::=</td>
491
- <td>
492
- <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code>
493
- (<a href="#grammar-production-QuadsNotTriples">QuadsNotTriples</a> "<code class="grammar-literal">.</code>"<code>?</code> <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code> )<code>*</code>
494
- </td>
495
- </tr>
496
- <tr id='grammar-production-QuadsNotTriples'>
497
- <td>[51]</td>
498
- <td><code>QuadsNotTriples</code></td>
499
- <td>::=</td>
500
- <td>
501
- "<code class="grammar-literal">GRAPH</code>"
502
- <a href="#grammar-production-VarOrIri">VarOrIri</a>
503
- "<code class="grammar-literal">{</code>"
504
- <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code>
505
- "<code class="grammar-literal">}</code>"
506
- </td>
507
- </tr>
508
- <tr id='grammar-production-TriplesTemplate'>
509
- <td>[52]</td>
510
- <td><code>TriplesTemplate</code></td>
511
- <td>::=</td>
512
- <td>
513
- <a href="#grammar-production-TriplesSameSubject">TriplesSameSubject</a>
514
- ("<code class="grammar-literal">.</code>" <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code> )<code>?</code>
515
- </td>
516
- </tr>
517
- <tr id='grammar-production-GroupGraphPattern'>
518
- <td>[53]</td>
519
- <td><code>GroupGraphPattern</code></td>
520
- <td>::=</td>
521
- <td>
522
- "<code class="grammar-literal">{</code>"
523
- <code>(</code> <a href="#grammar-production-SubSelect">SubSelect</a> <code>|</code> <a href="#grammar-production-GroupGraphPatternSub">GroupGraphPatternSub</a><code>)</code>
524
- "<code class="grammar-literal">}</code>"
525
- </td>
526
- </tr>
527
- <tr id='grammar-production-GroupGraphPatternSub'>
528
- <td>[54]</td>
529
- <td><code>GroupGraphPatternSub</code></td>
530
- <td>::=</td>
531
- <td>
532
- <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code>?</code>
533
- (<a href="#grammar-production-GraphPatternNotTriples">GraphPatternNotTriples</a> "<code class="grammar-literal">.</code>"<code>?</code> <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code>?</code> )<code>*</code>
534
- </td>
535
- </tr>
536
- <tr id='grammar-production-TriplesBlock'>
537
- <td>[55]</td>
538
- <td><code>TriplesBlock</code></td>
539
- <td>::=</td>
540
- <td>
541
- <a href="#grammar-production-TriplesSameSubjectPath">TriplesSameSubjectPath</a>
542
- ("<code class="grammar-literal">.</code>" <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code>?</code> )<code>?</code>
543
- </td>
544
- </tr>
545
- <tr id='grammar-production-GraphPatternNotTriples'>
546
- <td>[56]</td>
547
- <td><code>GraphPatternNotTriples</code></td>
548
- <td>::=</td>
549
- <td>
550
- <a href="#grammar-production-GroupOrUnionGraphPattern">GroupOrUnionGraphPattern</a>
551
- <code>|</code> <a href="#grammar-production-OptionalGraphPattern">OptionalGraphPattern</a>
552
- <code>|</code> <a href="#grammar-production-MinusGraphPattern">MinusGraphPattern</a>
553
- <code>|</code> <a href="#grammar-production-GraphGraphPattern">GraphGraphPattern</a>
554
- <code>|</code> <a href="#grammar-production-ServiceGraphPattern">ServiceGraphPattern</a>
555
- <code>|</code> <a href="#grammar-production-Filter">Filter</a>
556
- <code>|</code> <a href="#grammar-production-Bind">Bind</a>
557
- <code>|</code> <a href="#grammar-production-InlineData">InlineData</a>
558
- </td>
559
- </tr>
560
- <tr id='grammar-production-OptionalGraphPattern'>
561
- <td>[57]</td>
562
- <td><code>OptionalGraphPattern</code></td>
563
- <td>::=</td>
564
- <td>
565
- "<code class="grammar-literal">OPTIONAL</code>"
566
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
567
- </td>
568
- </tr>
569
- <tr id='grammar-production-GraphGraphPattern'>
570
- <td>[58]</td>
571
- <td><code>GraphGraphPattern</code></td>
572
- <td>::=</td>
573
- <td>
574
- "<code class="grammar-literal">GRAPH</code>"
575
- <a href="#grammar-production-VarOrIri">VarOrIri</a>
576
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
577
- </td>
578
- </tr>
579
- <tr id='grammar-production-ServiceGraphPattern'>
580
- <td>[59]</td>
581
- <td><code>ServiceGraphPattern</code></td>
582
- <td>::=</td>
583
- <td>
584
- "<code class="grammar-literal">SERVICE</code>"
585
- "<code class="grammar-literal">SILENT</code>"<code>?</code>
586
- <a href="#grammar-production-VarOrIri">VarOrIri</a>
587
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
588
- </td>
589
- </tr>
590
- <tr id='grammar-production-Bind'>
591
- <td>[60]</td>
592
- <td><code>Bind</code></td>
593
- <td>::=</td>
594
- <td>
595
- "<code class="grammar-literal">BIND</code>"
596
- "<code class="grammar-literal">(</code>"
597
- <a href="#grammar-production-Expression">Expression</a>
598
- "<code class="grammar-literal">AS</code>"
599
- <a href="#grammar-production-Var">Var</a>
600
- "<code class="grammar-literal">)</code>"
601
- </td>
602
- </tr>
603
- <tr id='grammar-production-InlineData'>
604
- <td>[61]</td>
605
- <td><code>InlineData</code></td>
606
- <td>::=</td>
607
- <td>
608
- "<code class="grammar-literal">VALUES</code>"
609
- <a href="#grammar-production-DataBlock">DataBlock</a>
610
- </td>
611
- </tr>
612
- <tr id='grammar-production-DataBlock'>
613
- <td>[62]</td>
614
- <td><code>DataBlock</code></td>
615
- <td>::=</td>
616
- <td>
617
- <a href="#grammar-production-InlineDataOneVar">InlineDataOneVar</a>
618
- <code>|</code> <a href="#grammar-production-InlineDataFull">InlineDataFull</a>
619
- </td>
620
- </tr>
621
- <tr id='grammar-production-InlineDataOneVar'>
622
- <td>[63]</td>
623
- <td><code>InlineDataOneVar</code></td>
624
- <td>::=</td>
625
- <td>
626
- <a href="#grammar-production-Var">Var</a>
627
- "<code class="grammar-literal">{</code>"
628
- <a href="#grammar-production-DataBlockValue">DataBlockValue</a><code>*</code>
629
- "<code class="grammar-literal">}</code>"
630
- </td>
631
- </tr>
632
- <tr id='grammar-production-InlineDataFull'>
633
- <td>[64]</td>
634
- <td><code>InlineDataFull</code></td>
635
- <td>::=</td>
636
- <td>
637
- <code>(</code> <a href="#grammar-production-NIL">NIL</a> <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Var">Var</a><code>*</code> "<code class="grammar-literal">)</code>"<code>)</code>
638
- "<code class="grammar-literal">{</code>"
639
- ("<code class="grammar-literal">(</code>" <a href="#grammar-production-DataBlockValue">DataBlockValue</a><code>*</code> "<code class="grammar-literal">)</code>" <code>|</code> <a href="#grammar-production-NIL">NIL</a>)<code>*</code>
640
- "<code class="grammar-literal">}</code>"
641
- </td>
642
- </tr>
643
- <tr id='grammar-production-DataBlockValue'>
644
- <td>[65]</td>
645
- <td><code>DataBlockValue</code></td>
646
- <td>::=</td>
647
- <td>
648
- <a href="#grammar-production-iri">iri</a>
649
- <code>|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a>
650
- <code>|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a>
651
- <code>|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a>
652
- <code>|</code> "<code class="grammar-literal">UNDEF</code>"
653
- </td>
654
- </tr>
655
- <tr id='grammar-production-MinusGraphPattern'>
656
- <td>[66]</td>
657
- <td><code>MinusGraphPattern</code></td>
658
- <td>::=</td>
659
- <td>
660
- "<code class="grammar-literal">MINUS</code>"
661
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
662
- </td>
663
- </tr>
664
- <tr id='grammar-production-GroupOrUnionGraphPattern'>
665
- <td>[67]</td>
666
- <td><code>GroupOrUnionGraphPattern</code></td>
667
- <td>::=</td>
668
- <td>
669
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
670
- ("<code class="grammar-literal">UNION</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>)<code>*</code>
671
- </td>
672
- </tr>
673
- <tr id='grammar-production-Filter'>
674
- <td>[68]</td>
675
- <td><code>Filter</code></td>
676
- <td>::=</td>
677
- <td>
678
- "<code class="grammar-literal">FILTER</code>"
679
- <a href="#grammar-production-Constraint">Constraint</a>
680
- </td>
681
- </tr>
682
- <tr id='grammar-production-Constraint'>
683
- <td>[69]</td>
684
- <td><code>Constraint</code></td>
685
- <td>::=</td>
686
- <td>
687
- <a href="#grammar-production-BrackettedExpression">BrackettedExpression</a>
688
- <code>|</code> <a href="#grammar-production-BuiltInCall">BuiltInCall</a>
689
- <code>|</code> <a href="#grammar-production-FunctionCall">FunctionCall</a>
690
- </td>
691
- </tr>
692
- <tr id='grammar-production-FunctionCall'>
693
- <td>[70]</td>
694
- <td><code>FunctionCall</code></td>
695
- <td>::=</td>
696
- <td>
697
- <a href="#grammar-production-iri">iri</a>
698
- <a href="#grammar-production-ArgList">ArgList</a>
699
- </td>
700
- </tr>
701
- <tr id='grammar-production-ArgList'>
702
- <td>[71]</td>
703
- <td><code>ArgList</code></td>
704
- <td>::=</td>
705
- <td>
706
- <a href="#grammar-production-NIL">NIL</a>
707
- <code>|</code> "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>*</code> "<code class="grammar-literal">)</code>"
708
- </td>
709
- </tr>
710
- <tr id='grammar-production-ExpressionList'>
711
- <td>[72]</td>
712
- <td><code>ExpressionList</code></td>
713
- <td>::=</td>
714
- <td>
715
- <a href="#grammar-production-NIL">NIL</a>
716
- <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>*</code> "<code class="grammar-literal">)</code>"
717
- </td>
718
- </tr>
719
- <tr id='grammar-production-ConstructTemplate'>
720
- <td>[73]</td>
721
- <td><code>ConstructTemplate</code></td>
722
- <td>::=</td>
723
- <td>
724
- "<code class="grammar-literal">{</code>"
725
- <a href="#grammar-production-ConstructTriples">ConstructTriples</a><code>?</code>
726
- "<code class="grammar-literal">}</code>"
727
- </td>
728
- </tr>
729
- <tr id='grammar-production-ConstructTriples'>
730
- <td>[74]</td>
731
- <td><code>ConstructTriples</code></td>
732
- <td>::=</td>
733
- <td>
734
- <a href="#grammar-production-TriplesSameSubject">TriplesSameSubject</a>
735
- ("<code class="grammar-literal">.</code>" <a href="#grammar-production-ConstructTriples">ConstructTriples</a><code>?</code> )<code>?</code>
736
- </td>
737
- </tr>
738
- <tr id='grammar-production-TriplesSameSubject'>
739
- <td>[75]</td>
740
- <td><code>TriplesSameSubject</code></td>
741
- <td>::=</td>
742
- <td>
743
- <a href="#grammar-production-VarOrTerm">VarOrTerm</a> <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a>
744
- <code>|</code> <a href="#grammar-production-TriplesNode">TriplesNode</a> <a href="#grammar-production-PropertyList">PropertyList</a>
745
- </td>
746
- </tr>
747
- <tr id='grammar-production-PropertyList'>
748
- <td>[76]</td>
749
- <td><code>PropertyList</code></td>
750
- <td>::=</td>
751
- <td>
752
- <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a><code>?</code>
753
- </td>
754
- </tr>
755
- <tr id='grammar-production-PropertyListNotEmpty'>
756
- <td>[77]</td>
757
- <td><code>PropertyListNotEmpty</code></td>
758
- <td>::=</td>
759
- <td>
760
- <a href="#grammar-production-Verb">Verb</a>
761
- <a href="#grammar-production-ObjectList">ObjectList</a>
762
- ("<code class="grammar-literal">;</code>" (<a href="#grammar-production-Verb">Verb</a> <a href="#grammar-production-ObjectList">ObjectList</a>)<code>?</code> )<code>*</code>
763
- </td>
764
- </tr>
765
- <tr id='grammar-production-Verb'>
766
- <td>[78]</td>
767
- <td><code>Verb</code></td>
768
- <td>::=</td>
769
- <td>
770
- <a href="#grammar-production-VarOrIri">VarOrIri</a>
771
- <code>|</code> "<code class="grammar-literal">a</code>"
772
- </td>
773
- </tr>
774
- <tr id='grammar-production-ObjectList'>
775
- <td>[79]</td>
776
- <td><code>ObjectList</code></td>
777
- <td>::=</td>
778
- <td>
779
- <a href="#grammar-production-Object">Object</a>
780
- ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Object">Object</a>)<code>*</code>
781
- </td>
782
- </tr>
783
- <tr id='grammar-production-Object'>
784
- <td>[80]</td>
785
- <td><code>Object</code></td>
786
- <td>::=</td>
787
- <td>
788
- <a href="#grammar-production-GraphNode">GraphNode</a>
789
- </td>
790
- </tr>
791
- <tr id='grammar-production-TriplesSameSubjectPath'>
792
- <td>[81]</td>
793
- <td><code>TriplesSameSubjectPath</code></td>
794
- <td>::=</td>
795
- <td>
796
- <a href="#grammar-production-VarOrTerm">VarOrTerm</a> <a href="#grammar-production-PropertyListNotEmptyPath">PropertyListNotEmptyPath</a>
797
- <code>|</code> <a href="#grammar-production-TriplesNode">TriplesNode</a> <a href="#grammar-production-PropertyListPath">PropertyListPath</a>
798
- </td>
799
- </tr>
800
- <tr id='grammar-production-PropertyListPath'>
801
- <td>[82]</td>
802
- <td><code>PropertyListPath</code></td>
803
- <td>::=</td>
804
- <td>
805
- <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a><code>?</code>
806
- </td>
807
- </tr>
808
- <tr id='grammar-production-PropertyListNotEmptyPath'>
809
- <td>[83]</td>
810
- <td><code>PropertyListNotEmptyPath</code></td>
811
- <td>::=</td>
812
- <td>
813
- <code>(</code> <a href="#grammar-production-VerbPath">VerbPath</a> <code>|</code> <a href="#grammar-production-VerbSimple">VerbSimple</a><code>)</code>
814
- <a href="#grammar-production-ObjectList">ObjectList</a>
815
- ("<code class="grammar-literal">;</code>" (<code>(</code> <a href="#grammar-production-VerbPath">VerbPath</a> <code>|</code> <a href="#grammar-production-VerbSimple">VerbSimple</a><code>)</code> <a href="#grammar-production-ObjectList">ObjectList</a>)<code>?</code> )<code>*</code>
816
- </td>
817
- </tr>
818
- <tr id='grammar-production-VerbPath'>
819
- <td>[84]</td>
820
- <td><code>VerbPath</code></td>
821
- <td>::=</td>
822
- <td>
823
- <a href="#grammar-production-Path">Path</a>
824
- </td>
825
- </tr>
826
- <tr id='grammar-production-VerbSimple'>
827
- <td>[85]</td>
828
- <td><code>VerbSimple</code></td>
829
- <td>::=</td>
830
- <td>
831
- <a href="#grammar-production-Var">Var</a>
832
- </td>
833
- </tr>
834
- <tr id='grammar-production-ObjectListPath'>
835
- <td>[86]</td>
836
- <td><code>ObjectListPath</code></td>
837
- <td>::=</td>
838
- <td>
839
- <a href="#grammar-production-ObjectPath">ObjectPath</a>
840
- ("<code class="grammar-literal">,</code>" <a href="#grammar-production-ObjectPath">ObjectPath</a>)<code>*</code>
841
- </td>
842
- </tr>
843
- <tr id='grammar-production-ObjectPath'>
844
- <td>[87]</td>
845
- <td><code>ObjectPath</code></td>
846
- <td>::=</td>
847
- <td>
848
- <a href="#grammar-production-GraphNodePath">GraphNodePath</a>
849
- </td>
850
- </tr>
851
- <tr id='grammar-production-Path'>
852
- <td>[88]</td>
853
- <td><code>Path</code></td>
854
- <td>::=</td>
855
- <td>
856
- <a href="#grammar-production-PathAlternative">PathAlternative</a>
857
- </td>
858
- </tr>
859
- <tr id='grammar-production-PathAlternative'>
860
- <td>[89]</td>
861
- <td><code>PathAlternative</code></td>
862
- <td>::=</td>
863
- <td>
864
- <a href="#grammar-production-PathSequence">PathSequence</a>
865
- ("<code class="grammar-literal">|</code>" <a href="#grammar-production-PathSequence">PathSequence</a>)<code>*</code>
866
- </td>
867
- </tr>
868
- <tr id='grammar-production-PathSequence'>
869
- <td>[90]</td>
870
- <td><code>PathSequence</code></td>
871
- <td>::=</td>
872
- <td>
873
- <a href="#grammar-production-PathEltOrInverse">PathEltOrInverse</a>
874
- ("<code class="grammar-literal">/</code>" <a href="#grammar-production-PathEltOrInverse">PathEltOrInverse</a>)<code>*</code>
875
- </td>
876
- </tr>
877
- <tr id='grammar-production-PathElt'>
878
- <td>[91]</td>
879
- <td><code>PathElt</code></td>
880
- <td>::=</td>
881
- <td>
882
- <a href="#grammar-production-PathPrimary">PathPrimary</a>
883
- <a href="#grammar-production-PathMod">PathMod</a><code>?</code>
884
- </td>
885
- </tr>
886
- <tr id='grammar-production-PathEltOrInverse'>
887
- <td>[92]</td>
888
- <td><code>PathEltOrInverse</code></td>
889
- <td>::=</td>
890
- <td>
891
- <a href="#grammar-production-PathElt">PathElt</a>
892
- <code>|</code> "<code class="grammar-literal">^</code>" <a href="#grammar-production-PathElt">PathElt</a>
893
- </td>
894
- </tr>
895
- <tr id='grammar-production-PathMod'>
896
- <td>[93]</td>
897
- <td><code>PathMod</code></td>
898
- <td>::=</td>
899
- <td>
900
- "<code class="grammar-literal">*</code>"
901
- <code>|</code> "<code class="grammar-literal">?</code>"
902
- <code>|</code> "<code class="grammar-literal">+</code>"
903
- <code>|</code> "<code class="grammar-literal">{</code>" <code>(</code> <a href="#grammar-production-Integer">Integer</a> <code>(</code> "<code class="grammar-literal">,</code>" <code>(</code> "<code class="grammar-literal">}</code>" <code>|</code> <a href="#grammar-production-Integer">Integer</a> "<code class="grammar-literal">}</code>"<code>)</code> <code>|</code> "<code class="grammar-literal">}</code>"<code>)</code> <code>|</code> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Integer">Integer</a> "<code class="grammar-literal">}</code>"<code>)</code>
904
- </td>
905
- </tr>
906
- <tr id='grammar-production-PathPrimary'>
907
- <td>[94]</td>
908
- <td><code>PathPrimary</code></td>
909
- <td>::=</td>
910
- <td>
911
- <a href="#grammar-production-iri">iri</a>
912
- <code>|</code> "<code class="grammar-literal">a</code>"
913
- <code>|</code> <code class="grammar-char-escape">#x21</code> <a href="#grammar-production-PathNegatedPropertySet">PathNegatedPropertySet</a>
914
- <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Path">Path</a> "<code class="grammar-literal">)</code>"
915
- </td>
916
- </tr>
917
- <tr id='grammar-production-PathNegatedPropertySet'>
918
- <td>[95]</td>
919
- <td><code>PathNegatedPropertySet</code></td>
920
- <td>::=</td>
921
- <td>
922
- <a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a>
923
- <code>|</code> "<code class="grammar-literal">(</code>" (<a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a> ("<code class="grammar-literal">|</code>" <a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a>)<code>*</code> )<code>?</code> "<code class="grammar-literal">)</code>"
924
- </td>
925
- </tr>
926
- <tr id='grammar-production-PathOneInPropertySet'>
927
- <td>[96]</td>
928
- <td><code>PathOneInPropertySet</code></td>
929
- <td>::=</td>
930
- <td>
931
- <a href="#grammar-production-iri">iri</a>
932
- <code>|</code> "<code class="grammar-literal">a</code>"
933
- <code>|</code> "<code class="grammar-literal">^</code>" <code>(</code> <a href="#grammar-production-iri">iri</a> <code>|</code> "<code class="grammar-literal">a</code>"<code>)</code>
934
- </td>
935
- </tr>
936
- <tr id='grammar-production-Integer'>
937
- <td>[97]</td>
938
- <td><code>Integer</code></td>
939
- <td>::=</td>
940
- <td>
941
- <a href="#grammar-production-INTEGER">INTEGER</a>
942
- </td>
943
- </tr>
944
- <tr id='grammar-production-TriplesNode'>
945
- <td>[98]</td>
946
- <td><code>TriplesNode</code></td>
947
- <td>::=</td>
948
- <td>
949
- <a href="#grammar-production-Collection">Collection</a>
950
- <code>|</code> <a href="#grammar-production-BlankNodePropertyList">BlankNodePropertyList</a>
951
- </td>
952
- </tr>
953
- <tr id='grammar-production-BlankNodePropertyList'>
954
- <td>[99]</td>
955
- <td><code>BlankNodePropertyList</code></td>
956
- <td>::=</td>
957
- <td>
958
- "<code class="grammar-literal">[</code>"
959
- <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a>
960
- "<code class="grammar-literal">]</code>"
961
- </td>
962
- </tr>
963
- <tr id='grammar-production-TriplesNodePath'>
964
- <td>[100]</td>
965
- <td><code>TriplesNodePath</code></td>
966
- <td>::=</td>
967
- <td>
968
- <a href="#grammar-production-CollectionPath">CollectionPath</a>
969
- <code>|</code> <a href="#grammar-production-BlankNodePropertyListPath">BlankNodePropertyListPath</a>
970
- </td>
971
- </tr>
972
- <tr id='grammar-production-BlankNodePropertyListPath'>
973
- <td>[101]</td>
974
- <td><code>BlankNodePropertyListPath</code></td>
975
- <td>::=</td>
976
- <td>
977
- "<code class="grammar-literal">[</code>"
978
- <a href="#grammar-production-PropertyListPathNotEmpty">PropertyListPathNotEmpty</a>
979
- "<code class="grammar-literal">]</code>"
980
- </td>
981
- </tr>
982
- <tr id='grammar-production-Collection'>
983
- <td>[102]</td>
984
- <td><code>Collection</code></td>
985
- <td>::=</td>
986
- <td>
987
- "<code class="grammar-literal">(</code>"
988
- <a href="#grammar-production-GraphNode">GraphNode</a><code>+</code>
989
- "<code class="grammar-literal">)</code>"
990
- </td>
991
- </tr>
992
- <tr id='grammar-production-CollectionPath'>
993
- <td>[103]</td>
994
- <td><code>CollectionPath</code></td>
995
- <td>::=</td>
996
- <td>
997
- "<code class="grammar-literal">(</code>"
998
- <a href="#grammar-production-GraphNodePath">GraphNodePath</a><code>+</code>
999
- "<code class="grammar-literal">)</code>"
1000
- </td>
1001
- </tr>
1002
- <tr id='grammar-production-GraphNode'>
1003
- <td>[104]</td>
1004
- <td><code>GraphNode</code></td>
1005
- <td>::=</td>
1006
- <td>
1007
- <a href="#grammar-production-VarOrTerm">VarOrTerm</a>
1008
- <code>|</code> <a href="#grammar-production-TriplesNode">TriplesNode</a>
1009
- </td>
1010
- </tr>
1011
- <tr id='grammar-production-GraphNodePath'>
1012
- <td>[105]</td>
1013
- <td><code>GraphNodePath</code></td>
1014
- <td>::=</td>
1015
- <td>
1016
- <a href="#grammar-production-VarOrTerm">VarOrTerm</a>
1017
- <code>|</code> <a href="#grammar-production-TriplesNodePath">TriplesNodePath</a>
1018
- </td>
1019
- </tr>
1020
- <tr id='grammar-production-VarOrTerm'>
1021
- <td>[106]</td>
1022
- <td><code>VarOrTerm</code></td>
1023
- <td>::=</td>
1024
- <td>
1025
- <a href="#grammar-production-Var">Var</a>
1026
- <code>|</code> <a href="#grammar-production-GraphTerm">GraphTerm</a>
1027
- </td>
1028
- </tr>
1029
- <tr id='grammar-production-VarOrIri'>
1030
- <td>[107]</td>
1031
- <td><code>VarOrIri</code></td>
1032
- <td>::=</td>
1033
- <td>
1034
- <a href="#grammar-production-Var">Var</a>
1035
- <code>|</code> <a href="#grammar-production-iri">iri</a>
1036
- </td>
1037
- </tr>
1038
- <tr id='grammar-production-Var'>
1039
- <td>[108]</td>
1040
- <td><code>Var</code></td>
1041
- <td>::=</td>
1042
- <td>
1043
- <a href="#grammar-production-VAR1">VAR1</a>
1044
- <code>|</code> <a href="#grammar-production-VAR2">VAR2</a>
1045
- </td>
1046
- </tr>
1047
- <tr id='grammar-production-GraphTerm'>
1048
- <td>[109]</td>
1049
- <td><code>GraphTerm</code></td>
1050
- <td>::=</td>
1051
- <td>
1052
- <a href="#grammar-production-iri">iri</a>
1053
- <code>|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a>
1054
- <code>|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a>
1055
- <code>|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a>
1056
- <code>|</code> <a href="#grammar-production-BlankNode">BlankNode</a>
1057
- <code>|</code> <a href="#grammar-production-NIL">NIL</a>
1058
- </td>
1059
- </tr>
1060
- <tr id='grammar-production-Expression'>
1061
- <td>[110]</td>
1062
- <td><code>Expression</code></td>
1063
- <td>::=</td>
1064
- <td>
1065
- <a href="#grammar-production-ConditionalOrExpression">ConditionalOrExpression</a>
1066
- </td>
1067
- </tr>
1068
- <tr id='grammar-production-ConditionalOrExpression'>
1069
- <td>[111]</td>
1070
- <td><code>ConditionalOrExpression</code></td>
1071
- <td>::=</td>
1072
- <td>
1073
- <a href="#grammar-production-ConditionalAndExpression">ConditionalAndExpression</a>
1074
- ("<code class="grammar-literal">||</code>" <a href="#grammar-production-ConditionalAndExpression">ConditionalAndExpression</a>)<code>*</code>
1075
- </td>
1076
- </tr>
1077
- <tr id='grammar-production-ConditionalAndExpression'>
1078
- <td>[112]</td>
1079
- <td><code>ConditionalAndExpression</code></td>
1080
- <td>::=</td>
1081
- <td>
1082
- <a href="#grammar-production-ValueLogical">ValueLogical</a>
1083
- ("<code class="grammar-literal">&&</code>" <a href="#grammar-production-ValueLogical">ValueLogical</a>)<code>*</code>
1084
- </td>
1085
- </tr>
1086
- <tr id='grammar-production-ValueLogical'>
1087
- <td>[113]</td>
1088
- <td><code>ValueLogical</code></td>
1089
- <td>::=</td>
1090
- <td>
1091
- <a href="#grammar-production-RelationalExpression">RelationalExpression</a>
1092
- </td>
1093
- </tr>
1094
- <tr id='grammar-production-RelationalExpression'>
1095
- <td>[114]</td>
1096
- <td><code>RelationalExpression</code></td>
1097
- <td>::=</td>
1098
- <td>
1099
- <a href="#grammar-production-NumericExpression">NumericExpression</a>
1100
- ("<code class="grammar-literal">=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">!=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal"><</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">></code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal"><=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">>=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">IN</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a> <code>|</code> "<code class="grammar-literal">NOT</code>" "<code class="grammar-literal">IN</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a>)<code>?</code>
1101
- </td>
1102
- </tr>
1103
- <tr id='grammar-production-NumericExpression'>
1104
- <td>[115]</td>
1105
- <td><code>NumericExpression</code></td>
1106
- <td>::=</td>
1107
- <td>
1108
- <a href="#grammar-production-AdditiveExpression">AdditiveExpression</a>
1109
- </td>
1110
- </tr>
1111
- <tr id='grammar-production-AdditiveExpression'>
1112
- <td>[116]</td>
1113
- <td><code>AdditiveExpression</code></td>
1114
- <td>::=</td>
1115
- <td>
1116
- <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a>
1117
- ("<code class="grammar-literal">+</code>" <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a> <code>|</code> "<code class="grammar-literal">-</code>" <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a> <code>|</code> <code>(</code> <a href="#grammar-production-NumericLiteralPositive">NumericLiteralPositive</a> <code>|</code> <a href="#grammar-production-NumericLiteralNegative">NumericLiteralNegative</a><code>)</code> ("<code class="grammar-literal">*</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a> <code>|</code> "<code class="grammar-literal">/</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a>)<code>?</code> )<code>*</code>
1118
- </td>
1119
- </tr>
1120
- <tr id='grammar-production-MultiplicativeExpression'>
1121
- <td>[117]</td>
1122
- <td><code>MultiplicativeExpression</code></td>
1123
- <td>::=</td>
1124
- <td>
1125
- <a href="#grammar-production-UnaryExpression">UnaryExpression</a>
1126
- ("<code class="grammar-literal">*</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a> <code>|</code> "<code class="grammar-literal">/</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a>)<code>*</code>
1127
- </td>
1128
- </tr>
1129
- <tr id='grammar-production-UnaryExpression'>
1130
- <td>[118]</td>
1131
- <td><code>UnaryExpression</code></td>
1132
- <td>::=</td>
1133
- <td>
1134
- <code class="grammar-char-escape">#x21</code> <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1135
- <code>|</code> "<code class="grammar-literal">+</code>" <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1136
- <code>|</code> "<code class="grammar-literal">-</code>" <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1137
- <code>|</code> <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1138
- </td>
1139
- </tr>
1140
- <tr id='grammar-production-PrimaryExpression'>
1141
- <td>[119]</td>
1142
- <td><code>PrimaryExpression</code></td>
1143
- <td>::=</td>
1144
- <td>
1145
- <a href="#grammar-production-BrackettedExpression">BrackettedExpression</a>
1146
- <code>|</code> <a href="#grammar-production-BuiltInCall">BuiltInCall</a>
1147
- <code>|</code> <a href="#grammar-production-iriOrFunction">iriOrFunction</a>
1148
- <code>|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a>
1149
- <code>|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a>
1150
- <code>|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a>
1151
- <code>|</code> <a href="#grammar-production-Var">Var</a>
1152
- </td>
1153
- </tr>
1154
- <tr id='grammar-production-BrackettedExpression'>
1155
- <td>[120]</td>
1156
- <td><code>BrackettedExpression</code></td>
1157
- <td>::=</td>
1158
- <td>
1159
- "<code class="grammar-literal">(</code>"
1160
- <a href="#grammar-production-Expression">Expression</a>
1161
- "<code class="grammar-literal">)</code>"
1162
- </td>
1163
- </tr>
1164
- <tr id='grammar-production-BuiltInCall'>
1165
- <td>[121]</td>
1166
- <td><code>BuiltInCall</code></td>
1167
- <td>::=</td>
1168
- <td>
1169
- <a href="#grammar-production-Aggregate">Aggregate</a>
1170
- <code>|</code> "<code class="grammar-literal">STR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1171
- <code>|</code> "<code class="grammar-literal">LANG</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1172
- <code>|</code> "<code class="grammar-literal">LANGMATCHES</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1173
- <code>|</code> "<code class="grammar-literal">DATATYPE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1174
- <code>|</code> "<code class="grammar-literal">BOUND</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Var">Var</a> "<code class="grammar-literal">)</code>"
1175
- <code>|</code> "<code class="grammar-literal">IRI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1176
- <code>|</code> "<code class="grammar-literal">URI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1177
- <code>|</code> "<code class="grammar-literal">BNODE</code>" <code>(</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>" <code>|</code> <a href="#grammar-production-NIL">NIL</a><code>)</code>
1178
- <code>|</code> "<code class="grammar-literal">RAND</code>" <a href="#grammar-production-NIL">NIL</a>
1179
- <code>|</code> "<code class="grammar-literal">ABS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1180
- <code>|</code> "<code class="grammar-literal">CEIL</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1181
- <code>|</code> "<code class="grammar-literal">FLOOR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1182
- <code>|</code> "<code class="grammar-literal">ROUND</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1183
- <code>|</code> "<code class="grammar-literal">CONCAT</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a>
1184
- <code>|</code> <a href="#grammar-production-SubstringExpression">SubstringExpression</a>
1185
- <code>|</code> "<code class="grammar-literal">STRLEN</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1186
- <code>|</code> <a href="#grammar-production-StrReplaceExpression">StrReplaceExpression</a>
1187
- <code>|</code> "<code class="grammar-literal">UCASE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1188
- <code>|</code> "<code class="grammar-literal">LCASE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1189
- <code>|</code> "<code class="grammar-literal">ENCODE_FOR_URI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1190
- <code>|</code> "<code class="grammar-literal">CONTAINS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1191
- <code>|</code> "<code class="grammar-literal">STRSTARTS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1192
- <code>|</code> "<code class="grammar-literal">STRENDS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1193
- <code>|</code> "<code class="grammar-literal">STRBEFORE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1194
- <code>|</code> "<code class="grammar-literal">STRAFTER</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1195
- <code>|</code> "<code class="grammar-literal">YEAR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1196
- <code>|</code> "<code class="grammar-literal">MONTH</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1197
- <code>|</code> "<code class="grammar-literal">DAY</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1198
- <code>|</code> "<code class="grammar-literal">HOURS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1199
- <code>|</code> "<code class="grammar-literal">MINUTES</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1200
- <code>|</code> "<code class="grammar-literal">SECONDS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1201
- <code>|</code> "<code class="grammar-literal">TIMEZONE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1202
- <code>|</code> "<code class="grammar-literal">TZ</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1203
- <code>|</code> "<code class="grammar-literal">NOW</code>" <a href="#grammar-production-NIL">NIL</a>
1204
- <code>|</code> "<code class="grammar-literal">UUID</code>" <a href="#grammar-production-NIL">NIL</a>
1205
- <code>|</code> "<code class="grammar-literal">STRUUID</code>" <a href="#grammar-production-NIL">NIL</a>
1206
- <code>|</code> "<code class="grammar-literal">MD5</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1207
- <code>|</code> "<code class="grammar-literal">SHA1</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1208
- <code>|</code> "<code class="grammar-literal">SHA224</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1209
- <code>|</code> "<code class="grammar-literal">SHA256</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1210
- <code>|</code> "<code class="grammar-literal">SHA384</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1211
- <code>|</code> "<code class="grammar-literal">SHA512</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1212
- <code>|</code> "<code class="grammar-literal">COALESCE</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a>
1213
- <code>|</code> "<code class="grammar-literal">IF</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1214
- <code>|</code> "<code class="grammar-literal">STRLANG</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1215
- <code>|</code> "<code class="grammar-literal">STRDT</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1216
- <code>|</code> "<code class="grammar-literal">sameTerm</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1217
- <code>|</code> "<code class="grammar-literal">isIRI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1218
- <code>|</code> "<code class="grammar-literal">isURI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1219
- <code>|</code> "<code class="grammar-literal">isBLANK</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1220
- <code>|</code> "<code class="grammar-literal">isLITERAL</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1221
- <code>|</code> "<code class="grammar-literal">isNUMERIC</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1222
- <code>|</code> <a href="#grammar-production-RegexExpression">RegexExpression</a>
1223
- <code>|</code> <a href="#grammar-production-ExistsFunc">ExistsFunc</a>
1224
- <code>|</code> <a href="#grammar-production-NotExistsFunc">NotExistsFunc</a>
1225
- </td>
1226
- </tr>
1227
- <tr id='grammar-production-RegexExpression'>
1228
- <td>[122]</td>
1229
- <td><code>RegexExpression</code></td>
1230
- <td>::=</td>
1231
- <td>
1232
- "<code class="grammar-literal">REGEX</code>"
1233
- "<code class="grammar-literal">(</code>"
1234
- <a href="#grammar-production-Expression">Expression</a>
1235
- "<code class="grammar-literal">,</code>"
1236
- <a href="#grammar-production-Expression">Expression</a>
1237
- ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>?</code>
1238
- "<code class="grammar-literal">)</code>"
1239
- </td>
1240
- </tr>
1241
- <tr id='grammar-production-SubstringExpression'>
1242
- <td>[123]</td>
1243
- <td><code>SubstringExpression</code></td>
1244
- <td>::=</td>
1245
- <td>
1246
- "<code class="grammar-literal">SUBSTR</code>"
1247
- "<code class="grammar-literal">(</code>"
1248
- <a href="#grammar-production-Expression">Expression</a>
1249
- "<code class="grammar-literal">,</code>"
1250
- <a href="#grammar-production-Expression">Expression</a>
1251
- ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>?</code>
1252
- "<code class="grammar-literal">)</code>"
1253
- </td>
1254
- </tr>
1255
- <tr id='grammar-production-StrReplaceExpression'>
1256
- <td>[124]</td>
1257
- <td><code>StrReplaceExpression</code></td>
1258
- <td>::=</td>
1259
- <td>
1260
- "<code class="grammar-literal">REPLACE</code>"
1261
- "<code class="grammar-literal">(</code>"
1262
- <a href="#grammar-production-Expression">Expression</a>
1263
- "<code class="grammar-literal">,</code>"
1264
- <a href="#grammar-production-Expression">Expression</a>
1265
- "<code class="grammar-literal">,</code>"
1266
- <a href="#grammar-production-Expression">Expression</a>
1267
- ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>?</code>
1268
- "<code class="grammar-literal">)</code>"
1269
- </td>
1270
- </tr>
1271
- <tr id='grammar-production-ExistsFunc'>
1272
- <td>[125]</td>
1273
- <td><code>ExistsFunc</code></td>
1274
- <td>::=</td>
1275
- <td>
1276
- "<code class="grammar-literal">EXISTS</code>"
1277
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
1278
- </td>
1279
- </tr>
1280
- <tr id='grammar-production-NotExistsFunc'>
1281
- <td>[126]</td>
1282
- <td><code>NotExistsFunc</code></td>
1283
- <td>::=</td>
1284
- <td>
1285
- "<code class="grammar-literal">NOT</code>"
1286
- "<code class="grammar-literal">EXISTS</code>"
1287
- <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
1288
- </td>
1289
- </tr>
1290
- <tr id='grammar-production-Aggregate'>
1291
- <td>[127]</td>
1292
- <td><code>Aggregate</code></td>
1293
- <td>::=</td>
1294
- <td>
1295
- "<code class="grammar-literal">COUNT</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <code>(</code> "<code class="grammar-literal">*</code>" <code>|</code> <a href="#grammar-production-Expression">Expression</a><code>)</code> "<code class="grammar-literal">)</code>"
1296
- <code>|</code> "<code class="grammar-literal">SUM</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1297
- <code>|</code> "<code class="grammar-literal">MIN</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1298
- <code>|</code> "<code class="grammar-literal">MAX</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1299
- <code>|</code> "<code class="grammar-literal">AVG</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1300
- <code>|</code> "<code class="grammar-literal">SAMPLE</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1301
- <code>|</code> "<code class="grammar-literal">GROUP_CONCAT</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">;</code>" "<code class="grammar-literal">SEPARATOR</code>" "<code class="grammar-literal">=</code>" <a href="#grammar-production-String">String</a>)<code>?</code> "<code class="grammar-literal">)</code>"
1302
- </td>
1303
- </tr>
1304
- <tr id='grammar-production-iriOrFunction'>
1305
- <td>[128]</td>
1306
- <td><code>iriOrFunction</code></td>
1307
- <td>::=</td>
1308
- <td>
1309
- <a href="#grammar-production-iri">iri</a>
1310
- <a href="#grammar-production-ArgList">ArgList</a><code>?</code>
1311
- </td>
1312
- </tr>
1313
- <tr id='grammar-production-RDFLiteral'>
1314
- <td>[129]</td>
1315
- <td><code>RDFLiteral</code></td>
1316
- <td>::=</td>
1317
- <td>
1318
- <a href="#grammar-production-String">String</a>
1319
- (<a href="#grammar-production-LANGTAG">LANGTAG</a> <code>|</code> "<code class="grammar-literal">^^</code>" <a href="#grammar-production-iri">iri</a>)<code>?</code>
1320
- </td>
1321
- </tr>
1322
- <tr id='grammar-production-NumericLiteral'>
1323
- <td>[130]</td>
1324
- <td><code>NumericLiteral</code></td>
1325
- <td>::=</td>
1326
- <td>
1327
- <a href="#grammar-production-NumericLiteralUnsigned">NumericLiteralUnsigned</a>
1328
- <code>|</code> <a href="#grammar-production-NumericLiteralPositive">NumericLiteralPositive</a>
1329
- <code>|</code> <a href="#grammar-production-NumericLiteralNegative">NumericLiteralNegative</a>
1330
- </td>
1331
- </tr>
1332
- <tr id='grammar-production-NumericLiteralUnsigned'>
1333
- <td>[131]</td>
1334
- <td><code>NumericLiteralUnsigned</code></td>
1335
- <td>::=</td>
1336
- <td>
1337
- <a href="#grammar-production-INTEGER">INTEGER</a>
1338
- <code>|</code> <a href="#grammar-production-DECIMAL">DECIMAL</a>
1339
- <code>|</code> <a href="#grammar-production-DOUBLE">DOUBLE</a>
1340
- </td>
1341
- </tr>
1342
- <tr id='grammar-production-NumericLiteralPositive'>
1343
- <td>[132]</td>
1344
- <td><code>NumericLiteralPositive</code></td>
1345
- <td>::=</td>
1346
- <td>
1347
- <a href="#grammar-production-INTEGER_POSITIVE">INTEGER_POSITIVE</a>
1348
- <code>|</code> <a href="#grammar-production-DECIMAL_POSITIVE">DECIMAL_POSITIVE</a>
1349
- <code>|</code> <a href="#grammar-production-DOUBLE_POSITIVE">DOUBLE_POSITIVE</a>
1350
- </td>
1351
- </tr>
1352
- <tr id='grammar-production-NumericLiteralNegative'>
1353
- <td>[133]</td>
1354
- <td><code>NumericLiteralNegative</code></td>
1355
- <td>::=</td>
1356
- <td>
1357
- <a href="#grammar-production-INTEGER_NEGATIVE">INTEGER_NEGATIVE</a>
1358
- <code>|</code> <a href="#grammar-production-DECIMAL_NEGATIVE">DECIMAL_NEGATIVE</a>
1359
- <code>|</code> <a href="#grammar-production-DOUBLE_NEGATIVE">DOUBLE_NEGATIVE</a>
1360
- </td>
1361
- </tr>
1362
- <tr id='grammar-production-BooleanLiteral'>
1363
- <td>[134]</td>
1364
- <td><code>BooleanLiteral</code></td>
1365
- <td>::=</td>
1366
- <td>
1367
- "<code class="grammar-literal">true</code>"
1368
- <code>|</code> "<code class="grammar-literal">false</code>"
1369
- </td>
1370
- </tr>
1371
- <tr id='grammar-production-String'>
1372
- <td>[135]</td>
1373
- <td><code>String</code></td>
1374
- <td>::=</td>
1375
- <td>
1376
- <a href="#grammar-production-STRING_LITERAL1">STRING_LITERAL1</a>
1377
- <code>|</code> <a href="#grammar-production-STRING_LITERAL2">STRING_LITERAL2</a>
1378
- <code>|</code> <a href="#grammar-production-STRING_LITERAL_LONG1">STRING_LITERAL_LONG1</a>
1379
- <code>|</code> <a href="#grammar-production-STRING_LITERAL_LONG2">STRING_LITERAL_LONG2</a>
1380
- </td>
1381
- </tr>
1382
- <tr id='grammar-production-iri'>
1383
- <td>[136]</td>
1384
- <td><code>iri</code></td>
1385
- <td>::=</td>
1386
- <td>
1387
- <a href="#grammar-production-IRIREF">IRIREF</a>
1388
- <code>|</code> <a href="#grammar-production-PrefixedName">PrefixedName</a>
1389
- </td>
1390
- </tr>
1391
- <tr id='grammar-production-PrefixedName'>
1392
- <td>[137]</td>
1393
- <td><code>PrefixedName</code></td>
1394
- <td>::=</td>
1395
- <td>
1396
- <a href="#grammar-production-PNAME_LN">PNAME_LN</a>
1397
- <code>|</code> <a href="#grammar-production-PNAME_NS">PNAME_NS</a>
1398
- </td>
1399
- </tr>
1400
- <tr id='grammar-production-BlankNode'>
1401
- <td>[138]</td>
1402
- <td><code>BlankNode</code></td>
1403
- <td>::=</td>
1404
- <td>
1405
- <a href="#grammar-production-BLANK_NODE_LABEL">BLANK_NODE_LABEL</a>
1406
- <code>|</code> <a href="#grammar-production-ANON">ANON</a>
1407
- </td>
1408
- </tr>
1409
- <tr id='grammar-production-IRIREF'>
1410
- <td>[139]</td>
1411
- <td><code>IRIREF</code></td>
1412
- <td>::=</td>
1413
- <td>
1414
- "<code class="grammar-literal"><</code>"
1415
- <code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x00</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal"><>"{}|^`]</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">UCHAR)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">'>'</code><code>]</code>
1416
- </td>
1417
- </tr>
1418
- <tr id='grammar-production-PNAME_NS'>
1419
- <td>[140]</td>
1420
- <td><code>PNAME_NS</code></td>
1421
- <td>::=</td>
1422
- <td>
1423
- <a href="#grammar-production-PN_PREFIX">PN_PREFIX</a><code>?</code>
1424
- "<code class="grammar-literal">:</code>"
1425
- </td>
1426
- </tr>
1427
- <tr id='grammar-production-PNAME_LN'>
1428
- <td>[141]</td>
1429
- <td><code>PNAME_LN</code></td>
1430
- <td>::=</td>
1431
- <td>
1432
- <a href="#grammar-production-PNAME_NS">PNAME_NS</a>
1433
- <a href="#grammar-production-PN_LOCAL">PN_LOCAL</a>
1434
- </td>
1435
- </tr>
1436
- <tr id='grammar-production-BLANK_NODE_LABEL'>
1437
- <td>[142]</td>
1438
- <td><code>BLANK_NODE_LABEL</code></td>
1439
- <td>::=</td>
1440
- <td>
1441
- "<code class="grammar-literal">_:</code>"
1442
- <code>(</code> <a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code> <code>)</code>
1443
- (<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
1444
- </td>
1445
- </tr>
1446
- <tr id='grammar-production-VAR1'>
1447
- <td>[143]</td>
1448
- <td><code>VAR1</code></td>
1449
- <td>::=</td>
1450
- <td>
1451
- "<code class="grammar-literal">?</code>"
1452
- <a href="#grammar-production-VARNAME">VARNAME</a>
1453
- </td>
1454
- </tr>
1455
- <tr id='grammar-production-VAR2'>
1456
- <td>[144]</td>
1457
- <td><code>VAR2</code></td>
1458
- <td>::=</td>
1459
- <td>
1460
- "<code class="grammar-literal">$</code>"
1461
- <a href="#grammar-production-VARNAME">VARNAME</a>
1462
- </td>
1463
- </tr>
1464
- <tr id='grammar-production-LANGTAG'>
1465
- <td>[145]</td>
1466
- <td><code>LANGTAG</code></td>
1467
- <td>::=</td>
1468
- <td>
1469
- "<code class="grammar-literal">@</code>"
1470
- (<code>[</code> <code class="grammar-literal">a-zA-Z</code><code>]</code> )<code>+</code>
1471
- ("<code class="grammar-literal">-</code>" (<code>[</code> <code class="grammar-literal">a-zA-Z0-9</code><code>]</code> )<code>+</code> )<code>*</code>
1472
- </td>
1473
- </tr>
1474
- <tr id='grammar-production-INTEGER'>
1475
- <td>[146]</td>
1476
- <td><code>INTEGER</code></td>
1477
- <td>::=</td>
1478
- <td>
1479
- (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
1480
- </td>
1481
- </tr>
1482
- <tr id='grammar-production-DECIMAL'>
1483
- <td>[147]</td>
1484
- <td><code>DECIMAL</code></td>
1485
- <td>::=</td>
1486
- <td>
1487
- (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>*</code>
1488
- "<code class="grammar-literal">.</code>"
1489
- (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
1490
- </td>
1491
- </tr>
1492
- <tr id='grammar-production-DOUBLE'>
1493
- <td>[148]</td>
1494
- <td><code>DOUBLE</code></td>
1495
- <td>::=</td>
1496
- <td>
1497
- (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> "<code class="grammar-literal">.</code>" (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>*</code> <a href="#grammar-production-EXPONENT">EXPONENT</a>
1498
- <code>|</code> "<code class="grammar-literal">.</code>" (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a>
1499
- <code>|</code> (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a>
1500
- </td>
1501
- </tr>
1502
- <tr id='grammar-production-INTEGER_POSITIVE'>
1503
- <td>[149]</td>
1504
- <td><code>INTEGER_POSITIVE</code></td>
1505
- <td>::=</td>
1506
- <td>
1507
- "<code class="grammar-literal">+</code>"
1508
- <a href="#grammar-production-INTEGER">INTEGER</a>
1509
- </td>
1510
- </tr>
1511
- <tr id='grammar-production-DECIMAL_POSITIVE'>
1512
- <td>[150]</td>
1513
- <td><code>DECIMAL_POSITIVE</code></td>
1514
- <td>::=</td>
1515
- <td>
1516
- "<code class="grammar-literal">+</code>"
1517
- <a href="#grammar-production-DECIMAL">DECIMAL</a>
1518
- </td>
1519
- </tr>
1520
- <tr id='grammar-production-DOUBLE_POSITIVE'>
1521
- <td>[151]</td>
1522
- <td><code>DOUBLE_POSITIVE</code></td>
1523
- <td>::=</td>
1524
- <td>
1525
- "<code class="grammar-literal">+</code>"
1526
- <a href="#grammar-production-DOUBLE">DOUBLE</a>
1527
- </td>
1528
- </tr>
1529
- <tr id='grammar-production-INTEGER_NEGATIVE'>
1530
- <td>[152]</td>
1531
- <td><code>INTEGER_NEGATIVE</code></td>
1532
- <td>::=</td>
1533
- <td>
1534
- "<code class="grammar-literal">-</code>"
1535
- <a href="#grammar-production-INTEGER">INTEGER</a>
1536
- </td>
1537
- </tr>
1538
- <tr id='grammar-production-DECIMAL_NEGATIVE'>
1539
- <td>[153]</td>
1540
- <td><code>DECIMAL_NEGATIVE</code></td>
1541
- <td>::=</td>
1542
- <td>
1543
- "<code class="grammar-literal">-</code>"
1544
- <a href="#grammar-production-DECIMAL">DECIMAL</a>
1545
- </td>
1546
- </tr>
1547
- <tr id='grammar-production-DOUBLE_NEGATIVE'>
1548
- <td>[154]</td>
1549
- <td><code>DOUBLE_NEGATIVE</code></td>
1550
- <td>::=</td>
1551
- <td>
1552
- "<code class="grammar-literal">-</code>"
1553
- <a href="#grammar-production-DOUBLE">DOUBLE</a>
1554
- </td>
1555
- </tr>
1556
- <tr id='grammar-production-EXPONENT'>
1557
- <td>[155]</td>
1558
- <td><code>EXPONENT</code></td>
1559
- <td>::=</td>
1560
- <td>
1561
- <code>[</code> <code class="grammar-literal">eE</code><code>]</code>
1562
- (<code>[</code> <code class="grammar-literal">+-</code><code>]</code> )<code>?</code>
1563
- (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
1564
- </td>
1565
- </tr>
1566
- <tr id='grammar-production-STRING_LITERAL1'>
1567
- <td>[156]</td>
1568
- <td><code>STRING_LITERAL1</code></td>
1569
- <td>::=</td>
1570
- <td>
1571
- "<code class="grammar-literal">'</code>"
1572
- (<code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x27</code><code class="grammar-char-escape">#x5C</code><code class="grammar-char-escape">#xA</code><code class="grammar-char-escape">#xD</code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a>)<code>*</code>
1573
- "<code class="grammar-literal">'</code>"
1574
- </td>
1575
- </tr>
1576
- <tr id='grammar-production-STRING_LITERAL2'>
1577
- <td>[157]</td>
1578
- <td><code>STRING_LITERAL2</code></td>
1579
- <td>::=</td>
1580
- <td>
1581
- '<code class="grammar-literal">"</code>'
1582
- (<code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x22</code><code class="grammar-char-escape">#x5C</code><code class="grammar-char-escape">#xA</code><code class="grammar-char-escape">#xD</code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a>)<code>*</code>
1583
- '<code class="grammar-literal">"</code>'
1584
- </td>
1585
- </tr>
1586
- <tr id='grammar-production-STRING_LITERAL_LONG1'>
1587
- <td>[158]</td>
1588
- <td><code>STRING_LITERAL_LONG1</code></td>
1589
- <td>::=</td>
1590
- <td>
1591
- "<code class="grammar-literal">'''</code>"
1592
- <code>(</code> ("<code class="grammar-literal">'</code>" <code>|</code> "<code class="grammar-literal">''</code>")<code>?</code> <code>[</code> <code class="grammar-literal">^']</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">"'''"</code><code>]</code> <code>)</code>
1593
- </td>
1594
- </tr>
1595
- <tr id='grammar-production-STRING_LITERAL_LONG2'>
1596
- <td>[159]</td>
1597
- <td><code>STRING_LITERAL_LONG2</code></td>
1598
- <td>::=</td>
1599
- <td>
1600
- '<code class="grammar-literal">"""</code>'
1601
- <code>(</code> ('<code class="grammar-literal">"</code>' <code>|</code> '<code class="grammar-literal">""</code>')<code>?</code> <code>[</code> <code class="grammar-literal">^"]</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">'"""'</code><code>]</code> <code>)</code>
1602
- </td>
1603
- </tr>
1604
- <tr id='grammar-production-ECHAR'>
1605
- <td>[160]</td>
1606
- <td><code>ECHAR</code></td>
1607
- <td>::=</td>
1608
- <td>
1609
- "<code class="grammar-literal">\</code>"
1610
- <code>[</code> <code class="grammar-literal">tbnrf"'</code><code>]</code>
1611
- </td>
1612
- </tr>
1613
- <tr id='grammar-production-NIL'>
1614
- <td>[161]</td>
1615
- <td><code>NIL</code></td>
1616
- <td>::=</td>
1617
- <td>
1618
- "<code class="grammar-literal">(</code>"
1619
- <a href="#grammar-production-WS">WS</a><code>*</code>
1620
- "<code class="grammar-literal">)</code>"
1621
- </td>
1622
- </tr>
1623
- <tr id='grammar-production-WS'>
1624
- <td>[162]</td>
1625
- <td><code>WS</code></td>
1626
- <td>::=</td>
1627
- <td>
1628
- <code class="grammar-char-escape">#x20</code>
1629
- <code>|</code> <code class="grammar-char-escape">#x9</code>
1630
- <code>|</code> <code class="grammar-char-escape">#xD</code>
1631
- <code>|</code> <code class="grammar-char-escape">#xA</code>
1632
- </td>
1633
- </tr>
1634
- <tr id='grammar-production-ANON'>
1635
- <td>[163]</td>
1636
- <td><code>ANON</code></td>
1637
- <td>::=</td>
1638
- <td>
1639
- "<code class="grammar-literal">[</code>"
1640
- <a href="#grammar-production-WS">WS</a><code>*</code>
1641
- "<code class="grammar-literal">]</code>"
1642
- </td>
1643
- </tr>
1644
- <tr id='grammar-production-PN_CHARS_BASE'>
1645
- <td>[164]</td>
1646
- <td><code>PN_CHARS_BASE</code></td>
1647
- <td>::=</td>
1648
- <td>
1649
- <code>[</code> <code class="grammar-literal">A-Z</code><code>]</code>
1650
- <code>|</code> <code>[</code> <code class="grammar-literal">a-z</code><code>]</code>
1651
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x00C0</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x00D6</code><code>]</code>
1652
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x00D8</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x00F6</code><code>]</code>
1653
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x00F8</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x02FF</code><code>]</code>
1654
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x0370</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x037D</code><code>]</code>
1655
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x037F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x1FFF</code><code>]</code>
1656
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x200C</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x200D</code><code>]</code>
1657
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x2070</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x218F</code><code>]</code>
1658
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x2C00</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2FEF</code><code>]</code>
1659
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x3001</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xD7FF</code><code>]</code>
1660
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#xF900</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xFDCF</code><code>]</code>
1661
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#xFDF0</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xFFFD</code><code>]</code>
1662
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x10000</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xEFFFF</code><code>]</code>
1663
- </td>
1664
- </tr>
1665
- <tr id='grammar-production-PN_CHARS_U'>
1666
- <td>[165]</td>
1667
- <td><code>PN_CHARS_U</code></td>
1668
- <td>::=</td>
1669
- <td>
1670
- <a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a>
1671
- <code>|</code> "<code class="grammar-literal">_</code>"
1672
- </td>
1673
- </tr>
1674
- <tr id='grammar-production-VARNAME'>
1675
- <td>[166]</td>
1676
- <td><code>VARNAME</code></td>
1677
- <td>::=</td>
1678
- <td>
1679
- <code>(</code> <a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code> <code>)</code>
1680
- (<a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code> <code>|</code> <code class="grammar-char-escape">#x00B7</code> <code>|</code> <code>[</code> <code class="grammar-char-escape">#x0300</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x036F</code><code>]</code> <code>|</code> <code>[</code> <code class="grammar-char-escape">#x203F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2040</code><code>]</code> )<code>*</code>
1681
- </td>
1682
- </tr>
1683
- <tr id='grammar-production-PN_CHARS'>
1684
- <td>[167]</td>
1685
- <td><code>PN_CHARS</code></td>
1686
- <td>::=</td>
1687
- <td>
1688
- <a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a>
1689
- <code>|</code> "<code class="grammar-literal">-</code>"
1690
- <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code>
1691
- <code>|</code> <code class="grammar-char-escape">#x00B7</code>
1692
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x0300</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x036F</code><code>]</code>
1693
- <code>|</code> <code>[</code> <code class="grammar-char-escape">#x203F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2040</code><code>]</code>
1694
- </td>
1695
- </tr>
1696
- <tr id='grammar-production-PN_PREFIX'>
1697
- <td>[168]</td>
1698
- <td><code>PN_PREFIX</code></td>
1699
- <td>::=</td>
1700
- <td>
1701
- <a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a>
1702
- (<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
1703
- </td>
1704
- </tr>
1705
- <tr id='grammar-production-PN_LOCAL'>
1706
- <td>[169]</td>
1707
- <td><code>PN_LOCAL</code></td>
1708
- <td>::=</td>
1709
- <td>
1710
- <code>(</code> <a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code> <code>)</code>
1711
- (<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
1712
- </td>
1713
- </tr>
1714
- <tr id='grammar-production-PLX'>
1715
- <td>[170]</td>
1716
- <td><code>PLX</code></td>
1717
- <td>::=</td>
1718
- <td>
1719
- <a href="#grammar-production-PERCENT">PERCENT</a>
1720
- <code>|</code> <a href="#grammar-production-PN_LOCAL_ESC">PN_LOCAL_ESC</a>
1721
- </td>
1722
- </tr>
1723
- <tr id='grammar-production-PERCENT'>
1724
- <td>[171]</td>
1725
- <td><code>PERCENT</code></td>
1726
- <td>::=</td>
1727
- <td>
1728
- "<code class="grammar-literal">%</code>"
1729
- <a href="#grammar-production-HEX">HEX</a>
1730
- <a href="#grammar-production-HEX">HEX</a>
1731
- </td>
1732
- </tr>
1733
- <tr id='grammar-production-HEX'>
1734
- <td>[172]</td>
1735
- <td><code>HEX</code></td>
1736
- <td>::=</td>
1737
- <td>
1738
- <code>[</code> <code class="grammar-literal">0-9</code><code>]</code>
1739
- <code>|</code> <code>[</code> <code class="grammar-literal">A-F</code><code>]</code>
1740
- <code>|</code> <code>[</code> <code class="grammar-literal">a-f</code><code>]</code>
1741
- </td>
1742
- </tr>
1743
- <tr id='grammar-production-PN_LOCAL_ESC'>
1744
- <td>[173]</td>
1745
- <td><code>PN_LOCAL_ESC</code></td>
1746
- <td>::=</td>
1747
- <td>
1748
- "<code class="grammar-literal">\</code>"
1749
- <code>(</code> "<code class="grammar-literal">_</code>" <code>|</code> "<code class="grammar-literal">~</code>" <code>|</code> "<code class="grammar-literal">.</code>" <code>|</code> "<code class="grammar-literal">-</code>" <code>|</code> <code class="grammar-char-escape">#x21</code> <code>|</code> "<code class="grammar-literal">$</code>" <code>|</code> "<code class="grammar-literal">&</code>" <code>|</code> "<code class="grammar-literal">'</code>" <code>|</code> "<code class="grammar-literal">(</code>" <code>|</code> "<code class="grammar-literal">)</code>" <code>|</code> "<code class="grammar-literal">*</code>" <code>|</code> "<code class="grammar-literal">+</code>" <code>|</code> "<code class="grammar-literal">,</code>" <code>|</code> "<code class="grammar-literal">;</code>" <code>|</code> "<code class="grammar-literal">=</code>" <code>|</code> "<code class="grammar-literal">/</code>" <code>|</code> "<code class="grammar-literal">?</code>" <code>|</code> "<code class="grammar-literal">#</code>" <code>|</code> "<code class="grammar-literal">@</code>" <code>|</code> "<code class="grammar-literal">%</code>"<code>)</code>
1750
- </td>
1751
- </tr>
1752
- </tbody>
2
+ <tbody id='grammar-productions'>
3
+ <tr id='grammar-production-QueryUnit'>
4
+ <td>[1]</td>
5
+ <td><code>QueryUnit</code></td>
6
+ <td>::=</td>
7
+ <td>
8
+ Query?
9
+ </td>
10
+ </tr>
11
+ <tr id='grammar-production-Query'>
12
+ <td>[2]</td>
13
+ <td><code>Query</code></td>
14
+ <td>::=</td>
15
+ <td>
16
+ Prologue
17
+ (SelectQuery | ConstructQuery | DescribeQuery | AskQuery)
18
+ </td>
19
+ </tr>
20
+ <tr id='grammar-production-UpdateUnit'>
21
+ <td>[3]</td>
22
+ <td><code>UpdateUnit</code></td>
23
+ <td>::=</td>
24
+ <td>
25
+ Update
26
+ </td>
27
+ </tr>
28
+ <tr id='grammar-production-Prologue'>
29
+ <td>[4]</td>
30
+ <td><code>Prologue</code></td>
31
+ <td>::=</td>
32
+ <td>
33
+ (BaseDecl | PrefixDecl)*
34
+ </td>
35
+ </tr>
36
+ <tr id='grammar-production-BaseDecl'>
37
+ <td>[5]</td>
38
+ <td><code>BaseDecl</code></td>
39
+ <td>::=</td>
40
+ <td>
41
+ "BASE" IRIREF
42
+ </td>
43
+ </tr>
44
+ <tr id='grammar-production-PrefixDecl'>
45
+ <td>[6]</td>
46
+ <td><code>PrefixDecl</code></td>
47
+ <td>::=</td>
48
+ <td>
49
+ "PREFIX" PNAME_NS IRIREF
50
+ </td>
51
+ </tr>
52
+ <tr id='grammar-production-SelectQuery'>
53
+ <td>[7]</td>
54
+ <td><code>SelectQuery</code></td>
55
+ <td>::=</td>
56
+ <td>
57
+ SelectClause
58
+ DatasetClause*
59
+ WhereClause
60
+ SolutionModifier
61
+ ValuesClause
62
+ </td>
63
+ </tr>
64
+ <tr id='grammar-production-SubSelect'>
65
+ <td>[8]</td>
66
+ <td><code>SubSelect</code></td>
67
+ <td>::=</td>
68
+ <td>
69
+ SelectClause
70
+ WhereClause
71
+ SolutionModifier
72
+ ValuesClause
73
+ </td>
74
+ </tr>
75
+ <tr id='grammar-production-SelectClause'>
76
+ <td>[9]</td>
77
+ <td><code>SelectClause</code></td>
78
+ <td>::=</td>
79
+ <td>
80
+ "SELECT"
81
+ ("DISTINCT" | "REDUCED")?
82
+ ((Var | "(" Expression "AS" Var ")")+ | "*")
83
+ </td>
84
+ </tr>
85
+ <tr id='grammar-production-ConstructQuery'>
86
+ <td>[10]</td>
87
+ <td><code>ConstructQuery</code></td>
88
+ <td>::=</td>
89
+ <td>
90
+ "CONSTRUCT"
91
+ (ConstructTemplate DatasetClause* WhereClause SolutionModifier | DatasetClause* "WHERE" "{" TriplesTemplate? "}" SolutionModifier)
92
+ ValuesClause
93
+ </td>
94
+ </tr>
95
+ <tr id='grammar-production-DescribeQuery'>
96
+ <td>[11]</td>
97
+ <td><code>DescribeQuery</code></td>
98
+ <td>::=</td>
99
+ <td>
100
+ "DESCRIBE"
101
+ (VarOrIri+ | "*")
102
+ DatasetClause*
103
+ WhereClause?
104
+ SolutionModifier
105
+ ValuesClause
106
+ </td>
107
+ </tr>
108
+ <tr id='grammar-production-AskQuery'>
109
+ <td>[12]</td>
110
+ <td><code>AskQuery</code></td>
111
+ <td>::=</td>
112
+ <td>
113
+ "ASK" DatasetClause* WhereClause ValuesClause
114
+ </td>
115
+ </tr>
116
+ <tr id='grammar-production-DatasetClause'>
117
+ <td>[13]</td>
118
+ <td><code>DatasetClause</code></td>
119
+ <td>::=</td>
120
+ <td>
121
+ "FROM" (DefaultGraphClause | NamedGraphClause)
122
+ </td>
123
+ </tr>
124
+ <tr id='grammar-production-DefaultGraphClause'>
125
+ <td>[14]</td>
126
+ <td><code>DefaultGraphClause</code></td>
127
+ <td>::=</td>
128
+ <td>
129
+ SourceSelector
130
+ </td>
131
+ </tr>
132
+ <tr id='grammar-production-NamedGraphClause'>
133
+ <td>[15]</td>
134
+ <td><code>NamedGraphClause</code></td>
135
+ <td>::=</td>
136
+ <td>
137
+ "NAMED" SourceSelector
138
+ </td>
139
+ </tr>
140
+ <tr id='grammar-production-SourceSelector'>
141
+ <td>[16]</td>
142
+ <td><code>SourceSelector</code></td>
143
+ <td>::=</td>
144
+ <td>
145
+ iri
146
+ </td>
147
+ </tr>
148
+ <tr id='grammar-production-WhereClause'>
149
+ <td>[17]</td>
150
+ <td><code>WhereClause</code></td>
151
+ <td>::=</td>
152
+ <td>
153
+ "WHERE"? GroupGraphPattern
154
+ </td>
155
+ </tr>
156
+ <tr id='grammar-production-SolutionModifier'>
157
+ <td>[18]</td>
158
+ <td><code>SolutionModifier</code></td>
159
+ <td>::=</td>
160
+ <td>
161
+ GroupClause?
162
+ HavingClause?
163
+ OrderClause?
164
+ LimitOffsetClauses?
165
+ </td>
166
+ </tr>
167
+ <tr id='grammar-production-GroupClause'>
168
+ <td>[19]</td>
169
+ <td><code>GroupClause</code></td>
170
+ <td>::=</td>
171
+ <td>
172
+ "GROUP" "BY" GroupCondition+
173
+ </td>
174
+ </tr>
175
+ <tr id='grammar-production-GroupCondition'>
176
+ <td>[20]</td>
177
+ <td><code>GroupCondition</code></td>
178
+ <td>::=</td>
179
+ <td>
180
+ BuiltInCall
181
+ | FunctionCall
182
+ | "(" Expression ("AS" Var)? ")"
183
+ | Var
184
+ </td>
185
+ </tr>
186
+ <tr id='grammar-production-HavingClause'>
187
+ <td>[21]</td>
188
+ <td><code>HavingClause</code></td>
189
+ <td>::=</td>
190
+ <td>
191
+ "HAVING" HavingCondition+
192
+ </td>
193
+ </tr>
194
+ <tr id='grammar-production-HavingCondition'>
195
+ <td>[22]</td>
196
+ <td><code>HavingCondition</code></td>
197
+ <td>::=</td>
198
+ <td>
199
+ Constraint
200
+ </td>
201
+ </tr>
202
+ <tr id='grammar-production-OrderClause'>
203
+ <td>[23]</td>
204
+ <td><code>OrderClause</code></td>
205
+ <td>::=</td>
206
+ <td>
207
+ "ORDER" "BY" OrderCondition+
208
+ </td>
209
+ </tr>
210
+ <tr id='grammar-production-OrderCondition'>
211
+ <td>[24]</td>
212
+ <td><code>OrderCondition</code></td>
213
+ <td>::=</td>
214
+ <td>
215
+ ("ASC" | "DESC") BrackettedExpression
216
+ | Constraint | Var
217
+ </td>
218
+ </tr>
219
+ <tr id='grammar-production-LimitOffsetClauses'>
220
+ <td>[25]</td>
221
+ <td><code>LimitOffsetClauses</code></td>
222
+ <td>::=</td>
223
+ <td>
224
+ LimitClause OffsetClause?
225
+ | OffsetClause LimitClause?
226
+ </td>
227
+ </tr>
228
+ <tr id='grammar-production-LimitClause'>
229
+ <td>[26]</td>
230
+ <td><code>LimitClause</code></td>
231
+ <td>::=</td>
232
+ <td>
233
+ "LIMIT" INTEGER
234
+ </td>
235
+ </tr>
236
+ <tr id='grammar-production-OffsetClause'>
237
+ <td>[27]</td>
238
+ <td><code>OffsetClause</code></td>
239
+ <td>::=</td>
240
+ <td>
241
+ "OFFSET" INTEGER
242
+ </td>
243
+ </tr>
244
+ <tr id='grammar-production-ValuesClause'>
245
+ <td>[28]</td>
246
+ <td><code>ValuesClause</code></td>
247
+ <td>::=</td>
248
+ <td>
249
+ ("VALUES" DataBlock)?
250
+ </td>
251
+ </tr>
252
+ <tr id='grammar-production-Update'>
253
+ <td>[29]</td>
254
+ <td><code>Update</code></td>
255
+ <td>::=</td>
256
+ <td>
257
+ Prologue (Update1 (";" Update)?)?
258
+ </td>
259
+ </tr>
260
+ <tr id='grammar-production-Update1'>
261
+ <td>[30]</td>
262
+ <td><code>Update1</code></td>
263
+ <td>::=</td>
264
+ <td>
265
+ Load
266
+ | Clear
267
+ | Drop
268
+ | Add
269
+ | Move
270
+ | Copy
271
+ | Create
272
+ | InsertData
273
+ | DeleteData
274
+ | DeleteWhere
275
+ | Modify
276
+ </td>
277
+ </tr>
278
+ <tr id='grammar-production-Load'>
279
+ <td>[31]</td>
280
+ <td><code>Load</code></td>
281
+ <td>::=</td>
282
+ <td>
283
+ "LOAD" "SILENT"? iri ("INTO" GraphRef)?
284
+ </td>
285
+ </tr>
286
+ <tr id='grammar-production-Clear'>
287
+ <td>[32]</td>
288
+ <td><code>Clear</code></td>
289
+ <td>::=</td>
290
+ <td>
291
+ "CLEAR" "SILENT"? GraphRefAll
292
+ </td>
293
+ </tr>
294
+ <tr id='grammar-production-Drop'>
295
+ <td>[33]</td>
296
+ <td><code>Drop</code></td>
297
+ <td>::=</td>
298
+ <td>
299
+ "DROP" "SILENT"? GraphRefAll
300
+ </td>
301
+ </tr>
302
+ <tr id='grammar-production-Create'>
303
+ <td>[34]</td>
304
+ <td><code>Create</code></td>
305
+ <td>::=</td>
306
+ <td>
307
+ "CREATE" "SILENT"? GraphRef
308
+ </td>
309
+ </tr>
310
+ <tr id='grammar-production-Add'>
311
+ <td>[35]</td>
312
+ <td><code>Add</code></td>
313
+ <td>::=</td>
314
+ <td>
315
+ "ADD"
316
+ "SILENT"?
317
+ GraphOrDefault
318
+ "TO"
319
+ GraphOrDefault
320
+ </td>
321
+ </tr>
322
+ <tr id='grammar-production-Move'>
323
+ <td>[36]</td>
324
+ <td><code>Move</code></td>
325
+ <td>::=</td>
326
+ <td>
327
+ "MOVE"
328
+ "SILENT"?
329
+ GraphOrDefault
330
+ "TO"
331
+ GraphOrDefault
332
+ </td>
333
+ </tr>
334
+ <tr id='grammar-production-Copy'>
335
+ <td>[37]</td>
336
+ <td><code>Copy</code></td>
337
+ <td>::=</td>
338
+ <td>
339
+ "COPY"
340
+ "SILENT"?
341
+ GraphOrDefault
342
+ "TO"
343
+ GraphOrDefault
344
+ </td>
345
+ </tr>
346
+ <tr id='grammar-production-InsertData'>
347
+ <td>[38]</td>
348
+ <td><code>InsertData</code></td>
349
+ <td>::=</td>
350
+ <td>
351
+ "INSERT DATA" QuadData
352
+ </td>
353
+ </tr>
354
+ <tr id='grammar-production-DeleteData'>
355
+ <td>[39]</td>
356
+ <td><code>DeleteData</code></td>
357
+ <td>::=</td>
358
+ <td>
359
+ "DELETE DATA" QuadData
360
+ </td>
361
+ </tr>
362
+ <tr id='grammar-production-DeleteWhere'>
363
+ <td>[40]</td>
364
+ <td><code>DeleteWhere</code></td>
365
+ <td>::=</td>
366
+ <td>
367
+ "DELETE WHERE" QuadPattern
368
+ </td>
369
+ </tr>
370
+ <tr id='grammar-production-Modify'>
371
+ <td>[41]</td>
372
+ <td><code>Modify</code></td>
373
+ <td>::=</td>
374
+ <td>
375
+ ("WITH" iri)?
376
+ (DeleteClause InsertClause? | InsertClause)
377
+ UsingClause*
378
+ "WHERE"
379
+ GroupGraphPattern
380
+ </td>
381
+ </tr>
382
+ <tr id='grammar-production-DeleteClause'>
383
+ <td>[42]</td>
384
+ <td><code>DeleteClause</code></td>
385
+ <td>::=</td>
386
+ <td>
387
+ "DELETE" QuadPattern
388
+ </td>
389
+ </tr>
390
+ <tr id='grammar-production-InsertClause'>
391
+ <td>[43]</td>
392
+ <td><code>InsertClause</code></td>
393
+ <td>::=</td>
394
+ <td>
395
+ "INSERT" QuadPattern
396
+ </td>
397
+ </tr>
398
+ <tr id='grammar-production-UsingClause'>
399
+ <td>[44]</td>
400
+ <td><code>UsingClause</code></td>
401
+ <td>::=</td>
402
+ <td>
403
+ "USING" (iri | "NAMED" iri)
404
+ </td>
405
+ </tr>
406
+ <tr id='grammar-production-GraphOrDefault'>
407
+ <td>[45]</td>
408
+ <td><code>GraphOrDefault</code></td>
409
+ <td>::=</td>
410
+ <td>
411
+ "DEFAULT" | "GRAPH"? iri
412
+ </td>
413
+ </tr>
414
+ <tr id='grammar-production-GraphRef'>
415
+ <td>[46]</td>
416
+ <td><code>GraphRef</code></td>
417
+ <td>::=</td>
418
+ <td>
419
+ "GRAPH" iri
420
+ </td>
421
+ </tr>
422
+ <tr id='grammar-production-GraphRefAll'>
423
+ <td>[47]</td>
424
+ <td><code>GraphRefAll</code></td>
425
+ <td>::=</td>
426
+ <td>
427
+ GraphRef | "DEFAULT" | "NAMED" | "ALL"
428
+ </td>
429
+ </tr>
430
+ <tr id='grammar-production-QuadPattern'>
431
+ <td>[48]</td>
432
+ <td><code>QuadPattern</code></td>
433
+ <td>::=</td>
434
+ <td>
435
+ "{" Quads "}"
436
+ </td>
437
+ </tr>
438
+ <tr id='grammar-production-QuadData'>
439
+ <td>[49]</td>
440
+ <td><code>QuadData</code></td>
441
+ <td>::=</td>
442
+ <td>
443
+ "{" Quads "}"
444
+ </td>
445
+ </tr>
446
+ <tr id='grammar-production-Quads'>
447
+ <td>[50]</td>
448
+ <td><code>Quads</code></td>
449
+ <td>::=</td>
450
+ <td>
451
+ TriplesTemplate?
452
+ (QuadsNotTriples "."? TriplesTemplate?)*
453
+ </td>
454
+ </tr>
455
+ <tr id='grammar-production-QuadsNotTriples'>
456
+ <td>[51]</td>
457
+ <td><code>QuadsNotTriples</code></td>
458
+ <td>::=</td>
459
+ <td>
460
+ "GRAPH" VarOrIri "{" TriplesTemplate? "}"
461
+ </td>
462
+ </tr>
463
+ <tr id='grammar-production-TriplesTemplate'>
464
+ <td>[52]</td>
465
+ <td><code>TriplesTemplate</code></td>
466
+ <td>::=</td>
467
+ <td>
468
+ TriplesSameSubject ("." TriplesTemplate?)?
469
+ </td>
470
+ </tr>
471
+ <tr id='grammar-production-GroupGraphPattern'>
472
+ <td>[53]</td>
473
+ <td><code>GroupGraphPattern</code></td>
474
+ <td>::=</td>
475
+ <td>
476
+ "{" (SubSelect | GroupGraphPatternSub) "}"
477
+ </td>
478
+ </tr>
479
+ <tr id='grammar-production-GroupGraphPatternSub'>
480
+ <td>[54]</td>
481
+ <td><code>GroupGraphPatternSub</code></td>
482
+ <td>::=</td>
483
+ <td>
484
+ TriplesBlock?
485
+ (GraphPatternNotTriples "."? TriplesBlock?)*
486
+ </td>
487
+ </tr>
488
+ <tr id='grammar-production-TriplesBlock'>
489
+ <td>[55]</td>
490
+ <td><code>TriplesBlock</code></td>
491
+ <td>::=</td>
492
+ <td>
493
+ TriplesSameSubjectPath ("." TriplesBlock?)?
494
+ </td>
495
+ </tr>
496
+ <tr id='grammar-production-GraphPatternNotTriples'>
497
+ <td>[56]</td>
498
+ <td><code>GraphPatternNotTriples</code></td>
499
+ <td>::=</td>
500
+ <td>
501
+ GroupOrUnionGraphPattern
502
+ | OptionalGraphPattern
503
+ | MinusGraphPattern
504
+ | GraphGraphPattern
505
+ | ServiceGraphPattern
506
+ | Filter
507
+ | Bind
508
+ | InlineData
509
+ </td>
510
+ </tr>
511
+ <tr id='grammar-production-OptionalGraphPattern'>
512
+ <td>[57]</td>
513
+ <td><code>OptionalGraphPattern</code></td>
514
+ <td>::=</td>
515
+ <td>
516
+ "OPTIONAL" GroupGraphPattern
517
+ </td>
518
+ </tr>
519
+ <tr id='grammar-production-GraphGraphPattern'>
520
+ <td>[58]</td>
521
+ <td><code>GraphGraphPattern</code></td>
522
+ <td>::=</td>
523
+ <td>
524
+ "GRAPH" VarOrIri GroupGraphPattern
525
+ </td>
526
+ </tr>
527
+ <tr id='grammar-production-ServiceGraphPattern'>
528
+ <td>[59]</td>
529
+ <td><code>ServiceGraphPattern</code></td>
530
+ <td>::=</td>
531
+ <td>
532
+ "SERVICE" "SILENT"? VarOrIri GroupGraphPattern
533
+ </td>
534
+ </tr>
535
+ <tr id='grammar-production-Bind'>
536
+ <td>[60]</td>
537
+ <td><code>Bind</code></td>
538
+ <td>::=</td>
539
+ <td>
540
+ "BIND" "(" Expression "AS" Var ")"
541
+ </td>
542
+ </tr>
543
+ <tr id='grammar-production-InlineData'>
544
+ <td>[61]</td>
545
+ <td><code>InlineData</code></td>
546
+ <td>::=</td>
547
+ <td>
548
+ "VALUES" DataBlock
549
+ </td>
550
+ </tr>
551
+ <tr id='grammar-production-DataBlock'>
552
+ <td>[62]</td>
553
+ <td><code>DataBlock</code></td>
554
+ <td>::=</td>
555
+ <td>
556
+ InlineDataOneVar | InlineDataFull
557
+ </td>
558
+ </tr>
559
+ <tr id='grammar-production-InlineDataOneVar'>
560
+ <td>[63]</td>
561
+ <td><code>InlineDataOneVar</code></td>
562
+ <td>::=</td>
563
+ <td>
564
+ Var "{" DataBlockValue* "}"
565
+ </td>
566
+ </tr>
567
+ <tr id='grammar-production-InlineDataFull'>
568
+ <td>[64]</td>
569
+ <td><code>InlineDataFull</code></td>
570
+ <td>::=</td>
571
+ <td>
572
+ (NIL | "(" Var* ")")
573
+ "{"
574
+ ("(" DataBlockValue* ")" | NIL)*
575
+ "}"
576
+ </td>
577
+ </tr>
578
+ <tr id='grammar-production-DataBlockValue'>
579
+ <td>[65]</td>
580
+ <td><code>DataBlockValue</code></td>
581
+ <td>::=</td>
582
+ <td>
583
+ iri
584
+ | RDFLiteral
585
+ | NumericLiteral
586
+ | BooleanLiteral
587
+ | "UNDEF"
588
+ </td>
589
+ </tr>
590
+ <tr id='grammar-production-MinusGraphPattern'>
591
+ <td>[66]</td>
592
+ <td><code>MinusGraphPattern</code></td>
593
+ <td>::=</td>
594
+ <td>
595
+ "MINUS" GroupGraphPattern
596
+ </td>
597
+ </tr>
598
+ <tr id='grammar-production-GroupOrUnionGraphPattern'>
599
+ <td>[67]</td>
600
+ <td><code>GroupOrUnionGraphPattern</code></td>
601
+ <td>::=</td>
602
+ <td>
603
+ GroupGraphPattern ("UNION" GroupGraphPattern)*
604
+ </td>
605
+ </tr>
606
+ <tr id='grammar-production-Filter'>
607
+ <td>[68]</td>
608
+ <td><code>Filter</code></td>
609
+ <td>::=</td>
610
+ <td>
611
+ "FILTER" Constraint
612
+ </td>
613
+ </tr>
614
+ <tr id='grammar-production-Constraint'>
615
+ <td>[69]</td>
616
+ <td><code>Constraint</code></td>
617
+ <td>::=</td>
618
+ <td>
619
+ BrackettedExpression
620
+ | BuiltInCall
621
+ | FunctionCall
622
+ </td>
623
+ </tr>
624
+ <tr id='grammar-production-FunctionCall'>
625
+ <td>[70]</td>
626
+ <td><code>FunctionCall</code></td>
627
+ <td>::=</td>
628
+ <td>
629
+ iri ArgList
630
+ </td>
631
+ </tr>
632
+ <tr id='grammar-production-ArgList'>
633
+ <td>[71]</td>
634
+ <td><code>ArgList</code></td>
635
+ <td>::=</td>
636
+ <td>
637
+ NIL
638
+ | "(" "DISTINCT"? Expression ("," Expression)* ")"
639
+ </td>
640
+ </tr>
641
+ <tr id='grammar-production-ExpressionList'>
642
+ <td>[72]</td>
643
+ <td><code>ExpressionList</code></td>
644
+ <td>::=</td>
645
+ <td>
646
+ NIL | "(" Expression ("," Expression)* ")"
647
+ </td>
648
+ </tr>
649
+ <tr id='grammar-production-ConstructTemplate'>
650
+ <td>[73]</td>
651
+ <td><code>ConstructTemplate</code></td>
652
+ <td>::=</td>
653
+ <td>
654
+ "{" ConstructTriples? "}"
655
+ </td>
656
+ </tr>
657
+ <tr id='grammar-production-ConstructTriples'>
658
+ <td>[74]</td>
659
+ <td><code>ConstructTriples</code></td>
660
+ <td>::=</td>
661
+ <td>
662
+ TriplesSameSubject ("." ConstructTriples?)?
663
+ </td>
664
+ </tr>
665
+ <tr id='grammar-production-TriplesSameSubject'>
666
+ <td>[75]</td>
667
+ <td><code>TriplesSameSubject</code></td>
668
+ <td>::=</td>
669
+ <td>
670
+ VarOrTerm PropertyListNotEmpty
671
+ | TriplesNode PropertyList
672
+ </td>
673
+ </tr>
674
+ <tr id='grammar-production-PropertyList'>
675
+ <td>[76]</td>
676
+ <td><code>PropertyList</code></td>
677
+ <td>::=</td>
678
+ <td>
679
+ PropertyListNotEmpty?
680
+ </td>
681
+ </tr>
682
+ <tr id='grammar-production-PropertyListNotEmpty'>
683
+ <td>[77]</td>
684
+ <td><code>PropertyListNotEmpty</code></td>
685
+ <td>::=</td>
686
+ <td>
687
+ Verb ObjectList (";" (Verb ObjectList)?)*
688
+ </td>
689
+ </tr>
690
+ <tr id='grammar-production-Verb'>
691
+ <td>[78]</td>
692
+ <td><code>Verb</code></td>
693
+ <td>::=</td>
694
+ <td>
695
+ VarOrIri | "a"
696
+ </td>
697
+ </tr>
698
+ <tr id='grammar-production-ObjectList'>
699
+ <td>[79]</td>
700
+ <td><code>ObjectList</code></td>
701
+ <td>::=</td>
702
+ <td>
703
+ Object ("," Object)*
704
+ </td>
705
+ </tr>
706
+ <tr id='grammar-production-Object'>
707
+ <td>[80]</td>
708
+ <td><code>Object</code></td>
709
+ <td>::=</td>
710
+ <td>
711
+ GraphNode
712
+ </td>
713
+ </tr>
714
+ <tr id='grammar-production-TriplesSameSubjectPath'>
715
+ <td>[81]</td>
716
+ <td><code>TriplesSameSubjectPath</code></td>
717
+ <td>::=</td>
718
+ <td>
719
+ VarOrTerm PropertyListNotEmptyPath
720
+ | TriplesNode PropertyListPath
721
+ </td>
722
+ </tr>
723
+ <tr id='grammar-production-PropertyListPath'>
724
+ <td>[82]</td>
725
+ <td><code>PropertyListPath</code></td>
726
+ <td>::=</td>
727
+ <td>
728
+ PropertyListNotEmpty?
729
+ </td>
730
+ </tr>
731
+ <tr id='grammar-production-PropertyListNotEmptyPath'>
732
+ <td>[83]</td>
733
+ <td><code>PropertyListNotEmptyPath</code></td>
734
+ <td>::=</td>
735
+ <td>
736
+ (VerbPath | VerbSimple)
737
+ ObjectList
738
+ (";" (VerbPath | VerbSimple) ObjectList?)*
739
+ </td>
740
+ </tr>
741
+ <tr id='grammar-production-VerbPath'>
742
+ <td>[84]</td>
743
+ <td><code>VerbPath</code></td>
744
+ <td>::=</td>
745
+ <td>
746
+ Path
747
+ </td>
748
+ </tr>
749
+ <tr id='grammar-production-VerbSimple'>
750
+ <td>[85]</td>
751
+ <td><code>VerbSimple</code></td>
752
+ <td>::=</td>
753
+ <td>
754
+ Var
755
+ </td>
756
+ </tr>
757
+ <tr id='grammar-production-ObjectListPath'>
758
+ <td>[86]</td>
759
+ <td><code>ObjectListPath</code></td>
760
+ <td>::=</td>
761
+ <td>
762
+ ObjectPath ("," ObjectPath)*
763
+ </td>
764
+ </tr>
765
+ <tr id='grammar-production-ObjectPath'>
766
+ <td>[87]</td>
767
+ <td><code>ObjectPath</code></td>
768
+ <td>::=</td>
769
+ <td>
770
+ GraphNodePath
771
+ </td>
772
+ </tr>
773
+ <tr id='grammar-production-Path'>
774
+ <td>[88]</td>
775
+ <td><code>Path</code></td>
776
+ <td>::=</td>
777
+ <td>
778
+ PathAlternative
779
+ </td>
780
+ </tr>
781
+ <tr id='grammar-production-PathAlternative'>
782
+ <td>[89]</td>
783
+ <td><code>PathAlternative</code></td>
784
+ <td>::=</td>
785
+ <td>
786
+ PathSequence ("|" PathSequence)*
787
+ </td>
788
+ </tr>
789
+ <tr id='grammar-production-PathSequence'>
790
+ <td>[90]</td>
791
+ <td><code>PathSequence</code></td>
792
+ <td>::=</td>
793
+ <td>
794
+ PathEltOrInverse ("/" PathEltOrInverse)*
795
+ </td>
796
+ </tr>
797
+ <tr id='grammar-production-PathElt'>
798
+ <td>[91]</td>
799
+ <td><code>PathElt</code></td>
800
+ <td>::=</td>
801
+ <td>
802
+ PathPrimary PathMod?
803
+ </td>
804
+ </tr>
805
+ <tr id='grammar-production-PathEltOrInverse'>
806
+ <td>[92]</td>
807
+ <td><code>PathEltOrInverse</code></td>
808
+ <td>::=</td>
809
+ <td>
810
+ PathElt | "^" PathElt
811
+ </td>
812
+ </tr>
813
+ <tr id='grammar-production-PathMod'>
814
+ <td>[93]</td>
815
+ <td><code>PathMod</code></td>
816
+ <td>::=</td>
817
+ <td>
818
+ "*"
819
+ | "?"
820
+ | "+"
821
+ | "{" (Integer ("," ("}" | Integer "}") | "}") | "," Integer "}")
822
+ </td>
823
+ </tr>
824
+ <tr id='grammar-production-PathPrimary'>
825
+ <td>[94]</td>
826
+ <td><code>PathPrimary</code></td>
827
+ <td>::=</td>
828
+ <td>
829
+ iri
830
+ | "a"
831
+ | #x21 PathNegatedPropertySet
832
+ | "(" Path ")"
833
+ </td>
834
+ </tr>
835
+ <tr id='grammar-production-PathNegatedPropertySet'>
836
+ <td>[95]</td>
837
+ <td><code>PathNegatedPropertySet</code></td>
838
+ <td>::=</td>
839
+ <td>
840
+ PathOneInPropertySet
841
+ | "(" (PathOneInPropertySet ("|" PathOneInPropertySet)*)? ")"
842
+ </td>
843
+ </tr>
844
+ <tr id='grammar-production-PathOneInPropertySet'>
845
+ <td>[96]</td>
846
+ <td><code>PathOneInPropertySet</code></td>
847
+ <td>::=</td>
848
+ <td>
849
+ iri | "a" | "^" (iri | "a")
850
+ </td>
851
+ </tr>
852
+ <tr id='grammar-production-Integer'>
853
+ <td>[97]</td>
854
+ <td><code>Integer</code></td>
855
+ <td>::=</td>
856
+ <td>
857
+ INTEGER
858
+ </td>
859
+ </tr>
860
+ <tr id='grammar-production-TriplesNode'>
861
+ <td>[98]</td>
862
+ <td><code>TriplesNode</code></td>
863
+ <td>::=</td>
864
+ <td>
865
+ Collection | BlankNodePropertyList
866
+ </td>
867
+ </tr>
868
+ <tr id='grammar-production-BlankNodePropertyList'>
869
+ <td>[99]</td>
870
+ <td><code>BlankNodePropertyList</code></td>
871
+ <td>::=</td>
872
+ <td>
873
+ "[" PropertyListNotEmpty "]"
874
+ </td>
875
+ </tr>
876
+ <tr id='grammar-production-TriplesNodePath'>
877
+ <td>[100]</td>
878
+ <td><code>TriplesNodePath</code></td>
879
+ <td>::=</td>
880
+ <td>
881
+ CollectionPath | BlankNodePropertyListPath
882
+ </td>
883
+ </tr>
884
+ <tr id='grammar-production-BlankNodePropertyListPath'>
885
+ <td>[101]</td>
886
+ <td><code>BlankNodePropertyListPath</code></td>
887
+ <td>::=</td>
888
+ <td>
889
+ "[" PropertyListPathNotEmpty "]"
890
+ </td>
891
+ </tr>
892
+ <tr id='grammar-production-Collection'>
893
+ <td>[102]</td>
894
+ <td><code>Collection</code></td>
895
+ <td>::=</td>
896
+ <td>
897
+ "(" GraphNode+ ")"
898
+ </td>
899
+ </tr>
900
+ <tr id='grammar-production-CollectionPath'>
901
+ <td>[103]</td>
902
+ <td><code>CollectionPath</code></td>
903
+ <td>::=</td>
904
+ <td>
905
+ "(" GraphNodePath+ ")"
906
+ </td>
907
+ </tr>
908
+ <tr id='grammar-production-GraphNode'>
909
+ <td>[104]</td>
910
+ <td><code>GraphNode</code></td>
911
+ <td>::=</td>
912
+ <td>
913
+ VarOrTerm | TriplesNode
914
+ </td>
915
+ </tr>
916
+ <tr id='grammar-production-GraphNodePath'>
917
+ <td>[105]</td>
918
+ <td><code>GraphNodePath</code></td>
919
+ <td>::=</td>
920
+ <td>
921
+ VarOrTerm | TriplesNodePath
922
+ </td>
923
+ </tr>
924
+ <tr id='grammar-production-VarOrTerm'>
925
+ <td>[106]</td>
926
+ <td><code>VarOrTerm</code></td>
927
+ <td>::=</td>
928
+ <td>
929
+ Var | GraphTerm
930
+ </td>
931
+ </tr>
932
+ <tr id='grammar-production-VarOrIri'>
933
+ <td>[107]</td>
934
+ <td><code>VarOrIri</code></td>
935
+ <td>::=</td>
936
+ <td>
937
+ Var | iri
938
+ </td>
939
+ </tr>
940
+ <tr id='grammar-production-Var'>
941
+ <td>[108]</td>
942
+ <td><code>Var</code></td>
943
+ <td>::=</td>
944
+ <td>
945
+ VAR1 | VAR2
946
+ </td>
947
+ </tr>
948
+ <tr id='grammar-production-GraphTerm'>
949
+ <td>[109]</td>
950
+ <td><code>GraphTerm</code></td>
951
+ <td>::=</td>
952
+ <td>
953
+ iri
954
+ | RDFLiteral
955
+ | NumericLiteral
956
+ | BooleanLiteral
957
+ | BlankNode
958
+ | NIL
959
+ </td>
960
+ </tr>
961
+ <tr id='grammar-production-Expression'>
962
+ <td>[110]</td>
963
+ <td><code>Expression</code></td>
964
+ <td>::=</td>
965
+ <td>
966
+ ConditionalOrExpression
967
+ </td>
968
+ </tr>
969
+ <tr id='grammar-production-ConditionalOrExpression'>
970
+ <td>[111]</td>
971
+ <td><code>ConditionalOrExpression</code></td>
972
+ <td>::=</td>
973
+ <td>
974
+ ConditionalAndExpression
975
+ ("||" ConditionalAndExpression)*
976
+ </td>
977
+ </tr>
978
+ <tr id='grammar-production-ConditionalAndExpression'>
979
+ <td>[112]</td>
980
+ <td><code>ConditionalAndExpression</code></td>
981
+ <td>::=</td>
982
+ <td>
983
+ ValueLogical ("&&" ValueLogical)*
984
+ </td>
985
+ </tr>
986
+ <tr id='grammar-production-ValueLogical'>
987
+ <td>[113]</td>
988
+ <td><code>ValueLogical</code></td>
989
+ <td>::=</td>
990
+ <td>
991
+ RelationalExpression
992
+ </td>
993
+ </tr>
994
+ <tr id='grammar-production-RelationalExpression'>
995
+ <td>[114]</td>
996
+ <td><code>RelationalExpression</code></td>
997
+ <td>::=</td>
998
+ <td>
999
+ NumericExpression
1000
+ ("=" NumericExpression | "!=" NumericExpression | "<" NumericExpression | ">" NumericExpression | "<=" NumericExpression | ">=" NumericExpression | "IN" ExpressionList | "NOT" "IN" ExpressionList)?
1001
+ </td>
1002
+ </tr>
1003
+ <tr id='grammar-production-NumericExpression'>
1004
+ <td>[115]</td>
1005
+ <td><code>NumericExpression</code></td>
1006
+ <td>::=</td>
1007
+ <td>
1008
+ AdditiveExpression
1009
+ </td>
1010
+ </tr>
1011
+ <tr id='grammar-production-AdditiveExpression'>
1012
+ <td>[116]</td>
1013
+ <td><code>AdditiveExpression</code></td>
1014
+ <td>::=</td>
1015
+ <td>
1016
+ MultiplicativeExpression
1017
+ ("+" MultiplicativeExpression | "-" MultiplicativeExpression | (NumericLiteralPositive | NumericLiteralNegative) ("*" UnaryExpression | "/" UnaryExpression)?)*
1018
+ </td>
1019
+ </tr>
1020
+ <tr id='grammar-production-MultiplicativeExpression'>
1021
+ <td>[117]</td>
1022
+ <td><code>MultiplicativeExpression</code></td>
1023
+ <td>::=</td>
1024
+ <td>
1025
+ UnaryExpression
1026
+ ("*" UnaryExpression | "/" UnaryExpression)*
1027
+ </td>
1028
+ </tr>
1029
+ <tr id='grammar-production-UnaryExpression'>
1030
+ <td>[118]</td>
1031
+ <td><code>UnaryExpression</code></td>
1032
+ <td>::=</td>
1033
+ <td>
1034
+ #x21 PrimaryExpression
1035
+ | "+" PrimaryExpression
1036
+ | "-" PrimaryExpression
1037
+ | PrimaryExpression
1038
+ </td>
1039
+ </tr>
1040
+ <tr id='grammar-production-PrimaryExpression'>
1041
+ <td>[119]</td>
1042
+ <td><code>PrimaryExpression</code></td>
1043
+ <td>::=</td>
1044
+ <td>
1045
+ BrackettedExpression
1046
+ | BuiltInCall
1047
+ | iriOrFunction
1048
+ | RDFLiteral
1049
+ | NumericLiteral
1050
+ | BooleanLiteral
1051
+ | Var
1052
+ </td>
1053
+ </tr>
1054
+ <tr id='grammar-production-BrackettedExpression'>
1055
+ <td>[120]</td>
1056
+ <td><code>BrackettedExpression</code></td>
1057
+ <td>::=</td>
1058
+ <td>
1059
+ "(" Expression ")"
1060
+ </td>
1061
+ </tr>
1062
+ <tr id='grammar-production-BuiltInCall'>
1063
+ <td>[121]</td>
1064
+ <td><code>BuiltInCall</code></td>
1065
+ <td>::=</td>
1066
+ <td>
1067
+ Aggregate
1068
+ | "STR" "(" Expression ")"
1069
+ | "LANG" "(" Expression ")"
1070
+ | "LANGMATCHES" "(" Expression "," Expression ")"
1071
+ | "DATATYPE" "(" Expression ")"
1072
+ | "BOUND" "(" Var ")"
1073
+ | "IRI" "(" Expression ")"
1074
+ | "URI" "(" Expression ")"
1075
+ | "BNODE" ("(" Expression ")" | NIL)
1076
+ | "RAND" NIL
1077
+ | "ABS" "(" Expression ")"
1078
+ | "CEIL" "(" Expression ")"
1079
+ | "FLOOR" "(" Expression ")"
1080
+ | "ROUND" "(" Expression ")"
1081
+ | "CONCAT" ExpressionList
1082
+ | SubstringExpression
1083
+ | "STRLEN" "(" Expression ")"
1084
+ | StrReplaceExpression
1085
+ | "UCASE" "(" Expression ")"
1086
+ | "LCASE" "(" Expression ")"
1087
+ | "ENCODE_FOR_URI" "(" Expression ")"
1088
+ | "CONTAINS" "(" Expression "," Expression ")"
1089
+ | "STRSTARTS" "(" Expression "," Expression ")"
1090
+ | "STRENDS" "(" Expression "," Expression ")"
1091
+ | "STRBEFORE" "(" Expression "," Expression ")"
1092
+ | "STRAFTER" "(" Expression "," Expression ")"
1093
+ | "YEAR" "(" Expression ")"
1094
+ | "MONTH" "(" Expression ")"
1095
+ | "DAY" "(" Expression ")"
1096
+ | "HOURS" "(" Expression ")"
1097
+ | "MINUTES" "(" Expression ")"
1098
+ | "SECONDS" "(" Expression ")"
1099
+ | "TIMEZONE" "(" Expression ")"
1100
+ | "TZ" "(" Expression ")"
1101
+ | "NOW" NIL
1102
+ | "UUID" NIL
1103
+ | "STRUUID" NIL
1104
+ | "MD5" "(" Expression ")"
1105
+ | "SHA1" "(" Expression ")"
1106
+ | "SHA224" "(" Expression ")"
1107
+ | "SHA256" "(" Expression ")"
1108
+ | "SHA384" "(" Expression ")"
1109
+ | "SHA512" "(" Expression ")"
1110
+ | "COALESCE" ExpressionList
1111
+ | "IF" "(" Expression "," Expression "," Expression ")"
1112
+ | "STRLANG" "(" Expression "," Expression ")"
1113
+ | "STRDT" "(" Expression "," Expression ")"
1114
+ | "sameTerm" "(" Expression "," Expression ")"
1115
+ | "isIRI" "(" Expression ")"
1116
+ | "isURI" "(" Expression ")"
1117
+ | "isBLANK" "(" Expression ")"
1118
+ | "isLITERAL" "(" Expression ")"
1119
+ | "isNUMERIC" "(" Expression ")"
1120
+ | RegexExpression
1121
+ | ExistsFunc
1122
+ | NotExistsFunc
1123
+ </td>
1124
+ </tr>
1125
+ <tr id='grammar-production-RegexExpression'>
1126
+ <td>[122]</td>
1127
+ <td><code>RegexExpression</code></td>
1128
+ <td>::=</td>
1129
+ <td>
1130
+ "REGEX"
1131
+ "("
1132
+ Expression
1133
+ ","
1134
+ Expression
1135
+ ("," Expression)?
1136
+ ")"
1137
+ </td>
1138
+ </tr>
1139
+ <tr id='grammar-production-SubstringExpression'>
1140
+ <td>[123]</td>
1141
+ <td><code>SubstringExpression</code></td>
1142
+ <td>::=</td>
1143
+ <td>
1144
+ "SUBSTR"
1145
+ "("
1146
+ Expression
1147
+ ","
1148
+ Expression
1149
+ ("," Expression)?
1150
+ ")"
1151
+ </td>
1152
+ </tr>
1153
+ <tr id='grammar-production-StrReplaceExpression'>
1154
+ <td>[124]</td>
1155
+ <td><code>StrReplaceExpression</code></td>
1156
+ <td>::=</td>
1157
+ <td>
1158
+ "REPLACE"
1159
+ "("
1160
+ Expression
1161
+ ","
1162
+ Expression
1163
+ ","
1164
+ Expression
1165
+ ("," Expression)?
1166
+ ")"
1167
+ </td>
1168
+ </tr>
1169
+ <tr id='grammar-production-ExistsFunc'>
1170
+ <td>[125]</td>
1171
+ <td><code>ExistsFunc</code></td>
1172
+ <td>::=</td>
1173
+ <td>
1174
+ "EXISTS" GroupGraphPattern
1175
+ </td>
1176
+ </tr>
1177
+ <tr id='grammar-production-NotExistsFunc'>
1178
+ <td>[126]</td>
1179
+ <td><code>NotExistsFunc</code></td>
1180
+ <td>::=</td>
1181
+ <td>
1182
+ "NOT" "EXISTS" GroupGraphPattern
1183
+ </td>
1184
+ </tr>
1185
+ <tr id='grammar-production-Aggregate'>
1186
+ <td>[127]</td>
1187
+ <td><code>Aggregate</code></td>
1188
+ <td>::=</td>
1189
+ <td>
1190
+ "COUNT" "(" "DISTINCT"? ("*" | Expression) ")"
1191
+ | "SUM" "(" "DISTINCT"? Expression ")"
1192
+ | "MIN" "(" "DISTINCT"? Expression ")"
1193
+ | "MAX" "(" "DISTINCT"? Expression ")"
1194
+ | "AVG" "(" "DISTINCT"? Expression ")"
1195
+ | "SAMPLE" "(" "DISTINCT"? Expression ")"
1196
+ | "GROUP_CONCAT" "(" "DISTINCT"? Expression (";" "SEPARATOR" "=" String)? ")"
1197
+ </td>
1198
+ </tr>
1199
+ <tr id='grammar-production-iriOrFunction'>
1200
+ <td>[128]</td>
1201
+ <td><code>iriOrFunction</code></td>
1202
+ <td>::=</td>
1203
+ <td>
1204
+ iri ArgList?
1205
+ </td>
1206
+ </tr>
1207
+ <tr id='grammar-production-RDFLiteral'>
1208
+ <td>[129]</td>
1209
+ <td><code>RDFLiteral</code></td>
1210
+ <td>::=</td>
1211
+ <td>
1212
+ String (LANGTAG | "^^" iri)?
1213
+ </td>
1214
+ </tr>
1215
+ <tr id='grammar-production-NumericLiteral'>
1216
+ <td>[130]</td>
1217
+ <td><code>NumericLiteral</code></td>
1218
+ <td>::=</td>
1219
+ <td>
1220
+ NumericLiteralUnsigned
1221
+ | NumericLiteralPositive
1222
+ | NumericLiteralNegative
1223
+ </td>
1224
+ </tr>
1225
+ <tr id='grammar-production-NumericLiteralUnsigned'>
1226
+ <td>[131]</td>
1227
+ <td><code>NumericLiteralUnsigned</code></td>
1228
+ <td>::=</td>
1229
+ <td>
1230
+ INTEGER | DECIMAL | DOUBLE
1231
+ </td>
1232
+ </tr>
1233
+ <tr id='grammar-production-NumericLiteralPositive'>
1234
+ <td>[132]</td>
1235
+ <td><code>NumericLiteralPositive</code></td>
1236
+ <td>::=</td>
1237
+ <td>
1238
+ INTEGER_POSITIVE
1239
+ | DECIMAL_POSITIVE
1240
+ | DOUBLE_POSITIVE
1241
+ </td>
1242
+ </tr>
1243
+ <tr id='grammar-production-NumericLiteralNegative'>
1244
+ <td>[133]</td>
1245
+ <td><code>NumericLiteralNegative</code></td>
1246
+ <td>::=</td>
1247
+ <td>
1248
+ INTEGER_NEGATIVE
1249
+ | DECIMAL_NEGATIVE
1250
+ | DOUBLE_NEGATIVE
1251
+ </td>
1252
+ </tr>
1253
+ <tr id='grammar-production-BooleanLiteral'>
1254
+ <td>[134]</td>
1255
+ <td><code>BooleanLiteral</code></td>
1256
+ <td>::=</td>
1257
+ <td>
1258
+ "true" | "false"
1259
+ </td>
1260
+ </tr>
1261
+ <tr id='grammar-production-String'>
1262
+ <td>[135]</td>
1263
+ <td><code>String</code></td>
1264
+ <td>::=</td>
1265
+ <td>
1266
+ STRING_LITERAL1
1267
+ | STRING_LITERAL2
1268
+ | STRING_LITERAL_LONG1
1269
+ | STRING_LITERAL_LONG2
1270
+ </td>
1271
+ </tr>
1272
+ <tr id='grammar-production-iri'>
1273
+ <td>[136]</td>
1274
+ <td><code>iri</code></td>
1275
+ <td>::=</td>
1276
+ <td>
1277
+ IRIREF | PrefixedName
1278
+ </td>
1279
+ </tr>
1280
+ <tr id='grammar-production-PrefixedName'>
1281
+ <td>[137]</td>
1282
+ <td><code>PrefixedName</code></td>
1283
+ <td>::=</td>
1284
+ <td>
1285
+ PNAME_LN | PNAME_NS
1286
+ </td>
1287
+ </tr>
1288
+ <tr id='grammar-production-BlankNode'>
1289
+ <td>[138]</td>
1290
+ <td><code>BlankNode</code></td>
1291
+ <td>::=</td>
1292
+ <td>
1293
+ BLANK_NODE_LABEL | ANON
1294
+ </td>
1295
+ </tr>
1296
+ <tr id='grammar-production-IRIREF'>
1297
+ <td>[139]</td>
1298
+ <td><code>IRIREF</code></td>
1299
+ <td>::=</td>
1300
+ <td>
1301
+ "<"
1302
+ [^#x00-#x20<>"{}|^`]#x20|#x20UCHAR)*#x20'>']
1303
+ </td>
1304
+ </tr>
1305
+ <tr id='grammar-production-PNAME_NS'>
1306
+ <td>[140]</td>
1307
+ <td><code>PNAME_NS</code></td>
1308
+ <td>::=</td>
1309
+ <td>
1310
+ PN_PREFIX? ":"
1311
+ </td>
1312
+ </tr>
1313
+ <tr id='grammar-production-PNAME_LN'>
1314
+ <td>[141]</td>
1315
+ <td><code>PNAME_LN</code></td>
1316
+ <td>::=</td>
1317
+ <td>
1318
+ PNAME_NS PN_LOCAL
1319
+ </td>
1320
+ </tr>
1321
+ <tr id='grammar-production-BLANK_NODE_LABEL'>
1322
+ <td>[142]</td>
1323
+ <td><code>BLANK_NODE_LABEL</code></td>
1324
+ <td>::=</td>
1325
+ <td>
1326
+ "_:"
1327
+ (PN_CHARS_U | [0-9])
1328
+ (PN_CHARS | ".")* PN_CHARS?
1329
+ </td>
1330
+ </tr>
1331
+ <tr id='grammar-production-VAR1'>
1332
+ <td>[143]</td>
1333
+ <td><code>VAR1</code></td>
1334
+ <td>::=</td>
1335
+ <td>
1336
+ "?" VARNAME
1337
+ </td>
1338
+ </tr>
1339
+ <tr id='grammar-production-VAR2'>
1340
+ <td>[144]</td>
1341
+ <td><code>VAR2</code></td>
1342
+ <td>::=</td>
1343
+ <td>
1344
+ "$" VARNAME
1345
+ </td>
1346
+ </tr>
1347
+ <tr id='grammar-production-LANGTAG'>
1348
+ <td>[145]</td>
1349
+ <td><code>LANGTAG</code></td>
1350
+ <td>::=</td>
1351
+ <td>
1352
+ "@" ([a-zA-Z])+ ("-" ([a-zA-Z0-9])+)*
1353
+ </td>
1354
+ </tr>
1355
+ <tr id='grammar-production-INTEGER'>
1356
+ <td>[146]</td>
1357
+ <td><code>INTEGER</code></td>
1358
+ <td>::=</td>
1359
+ <td>
1360
+ ([0-9])+
1361
+ </td>
1362
+ </tr>
1363
+ <tr id='grammar-production-DECIMAL'>
1364
+ <td>[147]</td>
1365
+ <td><code>DECIMAL</code></td>
1366
+ <td>::=</td>
1367
+ <td>
1368
+ ([0-9])* "." ([0-9])+
1369
+ </td>
1370
+ </tr>
1371
+ <tr id='grammar-production-DOUBLE'>
1372
+ <td>[148]</td>
1373
+ <td><code>DOUBLE</code></td>
1374
+ <td>::=</td>
1375
+ <td>
1376
+ ([0-9])+ "." ([0-9])* EXPONENT
1377
+ | "." ([0-9])+ EXPONENT
1378
+ | ([0-9])+ EXPONENT
1379
+ </td>
1380
+ </tr>
1381
+ <tr id='grammar-production-INTEGER_POSITIVE'>
1382
+ <td>[149]</td>
1383
+ <td><code>INTEGER_POSITIVE</code></td>
1384
+ <td>::=</td>
1385
+ <td>
1386
+ "+" INTEGER
1387
+ </td>
1388
+ </tr>
1389
+ <tr id='grammar-production-DECIMAL_POSITIVE'>
1390
+ <td>[150]</td>
1391
+ <td><code>DECIMAL_POSITIVE</code></td>
1392
+ <td>::=</td>
1393
+ <td>
1394
+ "+" DECIMAL
1395
+ </td>
1396
+ </tr>
1397
+ <tr id='grammar-production-DOUBLE_POSITIVE'>
1398
+ <td>[151]</td>
1399
+ <td><code>DOUBLE_POSITIVE</code></td>
1400
+ <td>::=</td>
1401
+ <td>
1402
+ "+" DOUBLE
1403
+ </td>
1404
+ </tr>
1405
+ <tr id='grammar-production-INTEGER_NEGATIVE'>
1406
+ <td>[152]</td>
1407
+ <td><code>INTEGER_NEGATIVE</code></td>
1408
+ <td>::=</td>
1409
+ <td>
1410
+ "-" INTEGER
1411
+ </td>
1412
+ </tr>
1413
+ <tr id='grammar-production-DECIMAL_NEGATIVE'>
1414
+ <td>[153]</td>
1415
+ <td><code>DECIMAL_NEGATIVE</code></td>
1416
+ <td>::=</td>
1417
+ <td>
1418
+ "-" DECIMAL
1419
+ </td>
1420
+ </tr>
1421
+ <tr id='grammar-production-DOUBLE_NEGATIVE'>
1422
+ <td>[154]</td>
1423
+ <td><code>DOUBLE_NEGATIVE</code></td>
1424
+ <td>::=</td>
1425
+ <td>
1426
+ "-" DOUBLE
1427
+ </td>
1428
+ </tr>
1429
+ <tr id='grammar-production-EXPONENT'>
1430
+ <td>[155]</td>
1431
+ <td><code>EXPONENT</code></td>
1432
+ <td>::=</td>
1433
+ <td>
1434
+ [eE] ([+-])? ([0-9])+
1435
+ </td>
1436
+ </tr>
1437
+ <tr id='grammar-production-STRING_LITERAL1'>
1438
+ <td>[156]</td>
1439
+ <td><code>STRING_LITERAL1</code></td>
1440
+ <td>::=</td>
1441
+ <td>
1442
+ "'" ([^#x27#x5C#xA#xD] | ECHAR)* "'"
1443
+ </td>
1444
+ </tr>
1445
+ <tr id='grammar-production-STRING_LITERAL2'>
1446
+ <td>[157]</td>
1447
+ <td><code>STRING_LITERAL2</code></td>
1448
+ <td>::=</td>
1449
+ <td>
1450
+ '"' ([^#x22#x5C#xA#xD] | ECHAR)* '"'
1451
+ </td>
1452
+ </tr>
1453
+ <tr id='grammar-production-STRING_LITERAL_LONG1'>
1454
+ <td>[158]</td>
1455
+ <td><code>STRING_LITERAL_LONG1</code></td>
1456
+ <td>::=</td>
1457
+ <td>
1458
+ "'''"
1459
+ (("'" | "''")? [^']#x20|#x20ECHAR#x20)#x20)*#x20"'''"])
1460
+ </td>
1461
+ </tr>
1462
+ <tr id='grammar-production-STRING_LITERAL_LONG2'>
1463
+ <td>[159]</td>
1464
+ <td><code>STRING_LITERAL_LONG2</code></td>
1465
+ <td>::=</td>
1466
+ <td>
1467
+ '"""'
1468
+ (('"' | '""')? [^"]#x20|#x20ECHAR#x20)#x20)*#x20'"""'])
1469
+ </td>
1470
+ </tr>
1471
+ <tr id='grammar-production-ECHAR'>
1472
+ <td>[160]</td>
1473
+ <td><code>ECHAR</code></td>
1474
+ <td>::=</td>
1475
+ <td>
1476
+ "\" [tbnrf"']
1477
+ </td>
1478
+ </tr>
1479
+ <tr id='grammar-production-NIL'>
1480
+ <td>[161]</td>
1481
+ <td><code>NIL</code></td>
1482
+ <td>::=</td>
1483
+ <td>
1484
+ "(" WS* ")"
1485
+ </td>
1486
+ </tr>
1487
+ <tr id='grammar-production-WS'>
1488
+ <td>[162]</td>
1489
+ <td><code>WS</code></td>
1490
+ <td>::=</td>
1491
+ <td>
1492
+ #x20 | #x9 | #xD | #xA
1493
+ </td>
1494
+ </tr>
1495
+ <tr id='grammar-production-ANON'>
1496
+ <td>[163]</td>
1497
+ <td><code>ANON</code></td>
1498
+ <td>::=</td>
1499
+ <td>
1500
+ "[" WS* "]"
1501
+ </td>
1502
+ </tr>
1503
+ <tr id='grammar-production-PN_CHARS_BASE'>
1504
+ <td>[164]</td>
1505
+ <td><code>PN_CHARS_BASE</code></td>
1506
+ <td>::=</td>
1507
+ <td>
1508
+ [A-Z]
1509
+ | [a-z]
1510
+ | [#x00C0-#x00D6]
1511
+ | [#x00D8-#x00F6]
1512
+ | [#x00F8-#x02FF]
1513
+ | [#x0370-#x037D]
1514
+ | [#x037F-#x1FFF]
1515
+ | [#x200C-#x200D]
1516
+ | [#x2070-#x218F]
1517
+ | [#x2C00-#x2FEF]
1518
+ | [#x3001-#xD7FF]
1519
+ | [#xF900-#xFDCF]
1520
+ | [#xFDF0-#xFFFD]
1521
+ | [#x10000-#xEFFFF]
1522
+ </td>
1523
+ </tr>
1524
+ <tr id='grammar-production-PN_CHARS_U'>
1525
+ <td>[165]</td>
1526
+ <td><code>PN_CHARS_U</code></td>
1527
+ <td>::=</td>
1528
+ <td>
1529
+ PN_CHARS_BASE | "_"
1530
+ </td>
1531
+ </tr>
1532
+ <tr id='grammar-production-VARNAME'>
1533
+ <td>[166]</td>
1534
+ <td><code>VARNAME</code></td>
1535
+ <td>::=</td>
1536
+ <td>
1537
+ (PN_CHARS_U | [0-9])
1538
+ (PN_CHARS_U | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040])*
1539
+ </td>
1540
+ </tr>
1541
+ <tr id='grammar-production-PN_CHARS'>
1542
+ <td>[167]</td>
1543
+ <td><code>PN_CHARS</code></td>
1544
+ <td>::=</td>
1545
+ <td>
1546
+ PN_CHARS_U
1547
+ | "-"
1548
+ | [0-9]
1549
+ | #x00B7
1550
+ | [#x0300-#x036F]
1551
+ | [#x203F-#x2040]
1552
+ </td>
1553
+ </tr>
1554
+ <tr id='grammar-production-PN_PREFIX'>
1555
+ <td>[168]</td>
1556
+ <td><code>PN_PREFIX</code></td>
1557
+ <td>::=</td>
1558
+ <td>
1559
+ PN_CHARS_BASE (PN_CHARS | ".")* PN_CHARS?
1560
+ </td>
1561
+ </tr>
1562
+ <tr id='grammar-production-PN_LOCAL'>
1563
+ <td>[169]</td>
1564
+ <td><code>PN_LOCAL</code></td>
1565
+ <td>::=</td>
1566
+ <td>
1567
+ (PN_CHARS_U | [0-9])
1568
+ (PN_CHARS | ".")* PN_CHARS?
1569
+ </td>
1570
+ </tr>
1571
+ <tr id='grammar-production-PLX'>
1572
+ <td>[170]</td>
1573
+ <td><code>PLX</code></td>
1574
+ <td>::=</td>
1575
+ <td>
1576
+ PERCENT | PN_LOCAL_ESC
1577
+ </td>
1578
+ </tr>
1579
+ <tr id='grammar-production-PERCENT'>
1580
+ <td>[171]</td>
1581
+ <td><code>PERCENT</code></td>
1582
+ <td>::=</td>
1583
+ <td>
1584
+ "%" HEX HEX
1585
+ </td>
1586
+ </tr>
1587
+ <tr id='grammar-production-HEX'>
1588
+ <td>[172]</td>
1589
+ <td><code>HEX</code></td>
1590
+ <td>::=</td>
1591
+ <td>
1592
+ [0-9] | [A-F] | [a-f]
1593
+ </td>
1594
+ </tr>
1595
+ <tr id='grammar-production-PN_LOCAL_ESC'>
1596
+ <td>[173]</td>
1597
+ <td><code>PN_LOCAL_ESC</code></td>
1598
+ <td>::=</td>
1599
+ <td>
1600
+ "\"
1601
+ ("_" | "~" | "." | "-" | #x21 | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | "/" | "?" | "#" | "@" | "%")
1602
+ </td>
1603
+ </tr>
1604
+ </tbody>
1753
1605
  </table>