ebnf 2.3.4 → 2.3.5

Sign up to get free protection for your applications and to get access to all the features.
data/etc/sparql.html CHANGED
@@ -1,1605 +1,1425 @@
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
- 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>
1
+ <!-- Generated with ebnf version 2.3.4. See https://github.com/dryruby/ebnf. -->
2
+ <table class="grammar">
3
+ <tbody id="grammar-productions" class="ebnf">
4
+ <tr id="grammar-production-QueryUnit">
5
+ <td>[1]</td>
6
+ <td><code>QueryUnit</code></td>
7
+ <td>::=</td>
8
+ <td><a href="#grammar-production-Query">Query</a><code class="grammar-opt">?</code></td>
9
+ </tr>
10
+ <tr id="grammar-production-Query">
11
+ <td>[2]</td>
12
+ <td><code>Query</code></td>
13
+ <td>::=</td>
14
+ <td><a href="#grammar-production-Prologue">Prologue</a> <code class="grammar-paren">(</code><a href="#grammar-production-SelectQuery">SelectQuery</a> <code class="grammar-alt">|</code> <a href="#grammar-production-ConstructQuery">ConstructQuery</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DescribeQuery">DescribeQuery</a> <code class="grammar-alt">|</code> <a href="#grammar-production-AskQuery">AskQuery</a><code class="grammar-paren">)</code></td>
15
+ </tr>
16
+ <tr id="grammar-production-UpdateUnit">
17
+ <td>[3]</td>
18
+ <td><code>UpdateUnit</code></td>
19
+ <td>::=</td>
20
+ <td><a href="#grammar-production-Update">Update</a></td>
21
+ </tr>
22
+ <tr id="grammar-production-Prologue">
23
+ <td>[4]</td>
24
+ <td><code>Prologue</code></td>
25
+ <td>::=</td>
26
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-BaseDecl">BaseDecl</a> <code class="grammar-alt">|</code> <a href="#grammar-production-PrefixDecl">PrefixDecl</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
27
+ </tr>
28
+ <tr id="grammar-production-BaseDecl">
29
+ <td>[5]</td>
30
+ <td><code>BaseDecl</code></td>
31
+ <td>::=</td>
32
+ <td>"<code class="grammar-literal">BASE</code>" <a href="#grammar-production-IRIREF">IRIREF</a></td>
33
+ </tr>
34
+ <tr id="grammar-production-PrefixDecl">
35
+ <td>[6]</td>
36
+ <td><code>PrefixDecl</code></td>
37
+ <td>::=</td>
38
+ <td>"<code class="grammar-literal">PREFIX</code>" <a href="#grammar-production-PNAME_NS">PNAME_NS</a> <a href="#grammar-production-IRIREF">IRIREF</a></td>
39
+ </tr>
40
+ <tr id="grammar-production-SelectQuery">
41
+ <td>[7]</td>
42
+ <td><code>SelectQuery</code></td>
43
+ <td>::=</td>
44
+ <td><a href="#grammar-production-SelectClause">SelectClause</a> <a href="#grammar-production-DatasetClause">DatasetClause</a><code class="grammar-star">*</code> <a href="#grammar-production-WhereClause">WhereClause</a> <a href="#grammar-production-SolutionModifier">SolutionModifier</a> <a href="#grammar-production-ValuesClause">ValuesClause</a></td>
45
+ </tr>
46
+ <tr id="grammar-production-SubSelect">
47
+ <td>[8]</td>
48
+ <td><code>SubSelect</code></td>
49
+ <td>::=</td>
50
+ <td><a href="#grammar-production-SelectClause">SelectClause</a> <a href="#grammar-production-WhereClause">WhereClause</a> <a href="#grammar-production-SolutionModifier">SolutionModifier</a> <a href="#grammar-production-ValuesClause">ValuesClause</a></td>
51
+ </tr>
52
+ <tr id="grammar-production-SelectClause">
53
+ <td>[9]</td>
54
+ <td><code>SelectClause</code></td>
55
+ <td>::=</td>
56
+ <td>"<code class="grammar-literal">SELECT</code>" <code class="grammar-paren">(</code>"<code class="grammar-literal">DISTINCT</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">REDUCED</code>"<code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-Var">Var</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</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 class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-plus">+</code> <code class="grammar-alt">|</code> "<code class="grammar-literal">*</code>"<code class="grammar-paren">)</code></td>
57
+ </tr>
58
+ <tr id="grammar-production-ConstructQuery">
59
+ <td>[10]</td>
60
+ <td><code>ConstructQuery</code></td>
61
+ <td>::=</td>
62
+ <td>"<code class="grammar-literal">CONSTRUCT</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-ConstructTemplate">ConstructTemplate</a> <a href="#grammar-production-DatasetClause">DatasetClause</a><code class="grammar-star">*</code> <a href="#grammar-production-WhereClause">WhereClause</a> <a href="#grammar-production-SolutionModifier">SolutionModifier</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-DatasetClause">DatasetClause</a><code class="grammar-star">*</code> "<code class="grammar-literal">WHERE</code>" "<code class="grammar-literal">{</code>" <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code class="grammar-opt">?</code> "<code class="grammar-literal">}</code>" <a href="#grammar-production-SolutionModifier">SolutionModifier</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code> <a href="#grammar-production-ValuesClause">ValuesClause</a></td>
63
+ </tr>
64
+ <tr id="grammar-production-DescribeQuery">
65
+ <td>[11]</td>
66
+ <td><code>DescribeQuery</code></td>
67
+ <td>::=</td>
68
+ <td>"<code class="grammar-literal">DESCRIBE</code>" <code class="grammar-paren">(</code><a href="#grammar-production-VarOrIri">VarOrIri</a><code class="grammar-plus">+</code> <code class="grammar-alt">|</code> "<code class="grammar-literal">*</code>"<code class="grammar-paren">)</code> <a href="#grammar-production-DatasetClause">DatasetClause</a><code class="grammar-star">*</code> <a href="#grammar-production-WhereClause">WhereClause</a><code class="grammar-opt">?</code> <a href="#grammar-production-SolutionModifier">SolutionModifier</a> <a href="#grammar-production-ValuesClause">ValuesClause</a></td>
69
+ </tr>
70
+ <tr id="grammar-production-AskQuery">
71
+ <td>[12]</td>
72
+ <td><code>AskQuery</code></td>
73
+ <td>::=</td>
74
+ <td>"<code class="grammar-literal">ASK</code>" <a href="#grammar-production-DatasetClause">DatasetClause</a><code class="grammar-star">*</code> <a href="#grammar-production-WhereClause">WhereClause</a> <a href="#grammar-production-ValuesClause">ValuesClause</a></td>
75
+ </tr>
76
+ <tr id="grammar-production-DatasetClause">
77
+ <td>[13]</td>
78
+ <td><code>DatasetClause</code></td>
79
+ <td>::=</td>
80
+ <td>"<code class="grammar-literal">FROM</code>" <code class="grammar-paren">(</code><a href="#grammar-production-DefaultGraphClause">DefaultGraphClause</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NamedGraphClause">NamedGraphClause</a><code class="grammar-paren">)</code></td>
81
+ </tr>
82
+ <tr id="grammar-production-DefaultGraphClause">
83
+ <td>[14]</td>
84
+ <td><code>DefaultGraphClause</code></td>
85
+ <td>::=</td>
86
+ <td><a href="#grammar-production-SourceSelector">SourceSelector</a></td>
87
+ </tr>
88
+ <tr id="grammar-production-NamedGraphClause">
89
+ <td>[15]</td>
90
+ <td><code>NamedGraphClause</code></td>
91
+ <td>::=</td>
92
+ <td>"<code class="grammar-literal">NAMED</code>" <a href="#grammar-production-SourceSelector">SourceSelector</a></td>
93
+ </tr>
94
+ <tr id="grammar-production-SourceSelector">
95
+ <td>[16]</td>
96
+ <td><code>SourceSelector</code></td>
97
+ <td>::=</td>
98
+ <td><a href="#grammar-production-iri">iri</a></td>
99
+ </tr>
100
+ <tr id="grammar-production-WhereClause">
101
+ <td>[17]</td>
102
+ <td><code>WhereClause</code></td>
103
+ <td>::=</td>
104
+ <td>"<code class="grammar-literal">WHERE</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
105
+ </tr>
106
+ <tr id="grammar-production-SolutionModifier">
107
+ <td>[18]</td>
108
+ <td><code>SolutionModifier</code></td>
109
+ <td>::=</td>
110
+ <td><a href="#grammar-production-GroupClause">GroupClause</a><code class="grammar-opt">?</code> <a href="#grammar-production-HavingClause">HavingClause</a><code class="grammar-opt">?</code> <a href="#grammar-production-OrderClause">OrderClause</a><code class="grammar-opt">?</code> <a href="#grammar-production-LimitOffsetClauses">LimitOffsetClauses</a><code class="grammar-opt">?</code></td>
111
+ </tr>
112
+ <tr id="grammar-production-GroupClause">
113
+ <td>[19]</td>
114
+ <td><code>GroupClause</code></td>
115
+ <td>::=</td>
116
+ <td>"<code class="grammar-literal">GROUP</code>" "<code class="grammar-literal">BY</code>" <a href="#grammar-production-GroupCondition">GroupCondition</a><code class="grammar-plus">+</code></td>
117
+ </tr>
118
+ <tr id="grammar-production-GroupCondition">
119
+ <td>[20]</td>
120
+ <td><code>GroupCondition</code></td>
121
+ <td>::=</td>
122
+ <td><a href="#grammar-production-BuiltInCall">BuiltInCall</a> <code class="grammar-alt">|</code> <a href="#grammar-production-FunctionCall">FunctionCall</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">AS</code>" <a href="#grammar-production-Var">Var</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-Var">Var</a></td>
123
+ </tr>
124
+ <tr id="grammar-production-HavingClause">
125
+ <td>[21]</td>
126
+ <td><code>HavingClause</code></td>
127
+ <td>::=</td>
128
+ <td>"<code class="grammar-literal">HAVING</code>" <a href="#grammar-production-HavingCondition">HavingCondition</a><code class="grammar-plus">+</code></td>
129
+ </tr>
130
+ <tr id="grammar-production-HavingCondition">
131
+ <td>[22]</td>
132
+ <td><code>HavingCondition</code></td>
133
+ <td>::=</td>
134
+ <td><a href="#grammar-production-Constraint">Constraint</a></td>
135
+ </tr>
136
+ <tr id="grammar-production-OrderClause">
137
+ <td>[23]</td>
138
+ <td><code>OrderClause</code></td>
139
+ <td>::=</td>
140
+ <td>"<code class="grammar-literal">ORDER</code>" "<code class="grammar-literal">BY</code>" <a href="#grammar-production-OrderCondition">OrderCondition</a><code class="grammar-plus">+</code></td>
141
+ </tr>
142
+ <tr id="grammar-production-OrderCondition">
143
+ <td>[24]</td>
144
+ <td><code>OrderCondition</code></td>
145
+ <td>::=</td>
146
+ <td><code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">ASC</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">DESC</code>"<code class="grammar-paren">)</code> <a href="#grammar-production-BrackettedExpression">BrackettedExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-Constraint">Constraint</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Var">Var</a><code class="grammar-paren">)</code></td>
147
+ </tr>
148
+ <tr id="grammar-production-LimitOffsetClauses">
149
+ <td>[25]</td>
150
+ <td><code>LimitOffsetClauses</code></td>
151
+ <td>::=</td>
152
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-LimitClause">LimitClause</a> <a href="#grammar-production-OffsetClause">OffsetClause</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-OffsetClause">OffsetClause</a> <a href="#grammar-production-LimitClause">LimitClause</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code></td>
153
+ </tr>
154
+ <tr id="grammar-production-LimitClause">
155
+ <td>[26]</td>
156
+ <td><code>LimitClause</code></td>
157
+ <td>::=</td>
158
+ <td>"<code class="grammar-literal">LIMIT</code>" <a href="#grammar-production-INTEGER">INTEGER</a></td>
159
+ </tr>
160
+ <tr id="grammar-production-OffsetClause">
161
+ <td>[27]</td>
162
+ <td><code>OffsetClause</code></td>
163
+ <td>::=</td>
164
+ <td>"<code class="grammar-literal">OFFSET</code>" <a href="#grammar-production-INTEGER">INTEGER</a></td>
165
+ </tr>
166
+ <tr id="grammar-production-ValuesClause">
167
+ <td>[28]</td>
168
+ <td><code>ValuesClause</code></td>
169
+ <td>::=</td>
170
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">VALUES</code>" <a href="#grammar-production-DataBlock">DataBlock</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
171
+ </tr>
172
+ <tr id="grammar-production-Update">
173
+ <td>[29]</td>
174
+ <td><code>Update</code></td>
175
+ <td>::=</td>
176
+ <td><a href="#grammar-production-Prologue">Prologue</a> <code class="grammar-paren">(</code><a href="#grammar-production-Update1">Update1</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">;</code>" <a href="#grammar-production-Update">Update</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
177
+ </tr>
178
+ <tr id="grammar-production-Update1">
179
+ <td>[30]</td>
180
+ <td><code>Update1</code></td>
181
+ <td>::=</td>
182
+ <td><a href="#grammar-production-Load">Load</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Clear">Clear</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Drop">Drop</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Add">Add</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Move">Move</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Copy">Copy</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Create">Create</a> <code class="grammar-alt">|</code> <a href="#grammar-production-InsertData">InsertData</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DeleteData">DeleteData</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DeleteWhere">DeleteWhere</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Modify">Modify</a></td>
183
+ </tr>
184
+ <tr id="grammar-production-Load">
185
+ <td>[31]</td>
186
+ <td><code>Load</code></td>
187
+ <td>::=</td>
188
+ <td>"<code class="grammar-literal">LOAD</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-iri">iri</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">INTO</code>" <a href="#grammar-production-GraphRef">GraphRef</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
189
+ </tr>
190
+ <tr id="grammar-production-Clear">
191
+ <td>[32]</td>
192
+ <td><code>Clear</code></td>
193
+ <td>::=</td>
194
+ <td>"<code class="grammar-literal">CLEAR</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-GraphRefAll">GraphRefAll</a></td>
195
+ </tr>
196
+ <tr id="grammar-production-Drop">
197
+ <td>[33]</td>
198
+ <td><code>Drop</code></td>
199
+ <td>::=</td>
200
+ <td>"<code class="grammar-literal">DROP</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-GraphRefAll">GraphRefAll</a></td>
201
+ </tr>
202
+ <tr id="grammar-production-Create">
203
+ <td>[34]</td>
204
+ <td><code>Create</code></td>
205
+ <td>::=</td>
206
+ <td>"<code class="grammar-literal">CREATE</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-GraphRef">GraphRef</a></td>
207
+ </tr>
208
+ <tr id="grammar-production-Add">
209
+ <td>[35]</td>
210
+ <td><code>Add</code></td>
211
+ <td>::=</td>
212
+ <td>"<code class="grammar-literal">ADD</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a> "<code class="grammar-literal">TO</code>" <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a></td>
213
+ </tr>
214
+ <tr id="grammar-production-Move">
215
+ <td>[36]</td>
216
+ <td><code>Move</code></td>
217
+ <td>::=</td>
218
+ <td>"<code class="grammar-literal">MOVE</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a> "<code class="grammar-literal">TO</code>" <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a></td>
219
+ </tr>
220
+ <tr id="grammar-production-Copy">
221
+ <td>[37]</td>
222
+ <td><code>Copy</code></td>
223
+ <td>::=</td>
224
+ <td>"<code class="grammar-literal">COPY</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a> "<code class="grammar-literal">TO</code>" <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a></td>
225
+ </tr>
226
+ <tr id="grammar-production-InsertData">
227
+ <td>[38]</td>
228
+ <td><code>InsertData</code></td>
229
+ <td>::=</td>
230
+ <td>"<code class="grammar-literal">INSERT DATA</code>" <a href="#grammar-production-QuadData">QuadData</a></td>
231
+ </tr>
232
+ <tr id="grammar-production-DeleteData">
233
+ <td>[39]</td>
234
+ <td><code>DeleteData</code></td>
235
+ <td>::=</td>
236
+ <td>"<code class="grammar-literal">DELETE DATA</code>" <a href="#grammar-production-QuadData">QuadData</a></td>
237
+ </tr>
238
+ <tr id="grammar-production-DeleteWhere">
239
+ <td>[40]</td>
240
+ <td><code>DeleteWhere</code></td>
241
+ <td>::=</td>
242
+ <td>"<code class="grammar-literal">DELETE WHERE</code>" <a href="#grammar-production-QuadPattern">QuadPattern</a></td>
243
+ </tr>
244
+ <tr id="grammar-production-Modify">
245
+ <td>[41]</td>
246
+ <td><code>Modify</code></td>
247
+ <td>::=</td>
248
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">WITH</code>" <a href="#grammar-production-iri">iri</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-DeleteClause">DeleteClause</a> <a href="#grammar-production-InsertClause">InsertClause</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-InsertClause">InsertClause</a><code class="grammar-paren">)</code> <a href="#grammar-production-UsingClause">UsingClause</a><code class="grammar-star">*</code> "<code class="grammar-literal">WHERE</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
249
+ </tr>
250
+ <tr id="grammar-production-DeleteClause">
251
+ <td>[42]</td>
252
+ <td><code>DeleteClause</code></td>
253
+ <td>::=</td>
254
+ <td>"<code class="grammar-literal">DELETE</code>" <a href="#grammar-production-QuadPattern">QuadPattern</a></td>
255
+ </tr>
256
+ <tr id="grammar-production-InsertClause">
257
+ <td>[43]</td>
258
+ <td><code>InsertClause</code></td>
259
+ <td>::=</td>
260
+ <td>"<code class="grammar-literal">INSERT</code>" <a href="#grammar-production-QuadPattern">QuadPattern</a></td>
261
+ </tr>
262
+ <tr id="grammar-production-UsingClause">
263
+ <td>[44]</td>
264
+ <td><code>UsingClause</code></td>
265
+ <td>::=</td>
266
+ <td>"<code class="grammar-literal">USING</code>" <code class="grammar-paren">(</code><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">NAMED</code>" <a href="#grammar-production-iri">iri</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code></td>
267
+ </tr>
268
+ <tr id="grammar-production-GraphOrDefault">
269
+ <td>[45]</td>
270
+ <td><code>GraphOrDefault</code></td>
271
+ <td>::=</td>
272
+ <td>"<code class="grammar-literal">DEFAULT</code>" <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">GRAPH</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-iri">iri</a><code class="grammar-paren">)</code></td>
273
+ </tr>
274
+ <tr id="grammar-production-GraphRef">
275
+ <td>[46]</td>
276
+ <td><code>GraphRef</code></td>
277
+ <td>::=</td>
278
+ <td>"<code class="grammar-literal">GRAPH</code>" <a href="#grammar-production-iri">iri</a></td>
279
+ </tr>
280
+ <tr id="grammar-production-GraphRefAll">
281
+ <td>[47]</td>
282
+ <td><code>GraphRefAll</code></td>
283
+ <td>::=</td>
284
+ <td><a href="#grammar-production-GraphRef">GraphRef</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">DEFAULT</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">NAMED</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">ALL</code>"</td>
285
+ </tr>
286
+ <tr id="grammar-production-QuadPattern">
287
+ <td>[48]</td>
288
+ <td><code>QuadPattern</code></td>
289
+ <td>::=</td>
290
+ <td>"<code class="grammar-literal">{</code>" <a href="#grammar-production-Quads">Quads</a> "<code class="grammar-literal">}</code>"</td>
291
+ </tr>
292
+ <tr id="grammar-production-QuadData">
293
+ <td>[49]</td>
294
+ <td><code>QuadData</code></td>
295
+ <td>::=</td>
296
+ <td>"<code class="grammar-literal">{</code>" <a href="#grammar-production-Quads">Quads</a> "<code class="grammar-literal">}</code>"</td>
297
+ </tr>
298
+ <tr id="grammar-production-Quads">
299
+ <td>[50]</td>
300
+ <td><code>Quads</code></td>
301
+ <td>::=</td>
302
+ <td><a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><a href="#grammar-production-QuadsNotTriples">QuadsNotTriples</a> "<code class="grammar-literal">.</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
303
+ </tr>
304
+ <tr id="grammar-production-QuadsNotTriples">
305
+ <td>[51]</td>
306
+ <td><code>QuadsNotTriples</code></td>
307
+ <td>::=</td>
308
+ <td>"<code class="grammar-literal">GRAPH</code>" <a href="#grammar-production-VarOrIri">VarOrIri</a> "<code class="grammar-literal">{</code>" <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code class="grammar-opt">?</code> "<code class="grammar-literal">}</code>"</td>
309
+ </tr>
310
+ <tr id="grammar-production-TriplesTemplate">
311
+ <td>[52]</td>
312
+ <td><code>TriplesTemplate</code></td>
313
+ <td>::=</td>
314
+ <td><a href="#grammar-production-TriplesSameSubject">TriplesSameSubject</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">.</code>" <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
315
+ </tr>
316
+ <tr id="grammar-production-GroupGraphPattern">
317
+ <td>[53]</td>
318
+ <td><code>GroupGraphPattern</code></td>
319
+ <td>::=</td>
320
+ <td>"<code class="grammar-literal">{</code>" <code class="grammar-paren">(</code><a href="#grammar-production-SubSelect">SubSelect</a> <code class="grammar-alt">|</code> <a href="#grammar-production-GroupGraphPatternSub">GroupGraphPatternSub</a><code class="grammar-paren">)</code> "<code class="grammar-literal">}</code>"</td>
321
+ </tr>
322
+ <tr id="grammar-production-GroupGraphPatternSub">
323
+ <td>[54]</td>
324
+ <td><code>GroupGraphPatternSub</code></td>
325
+ <td>::=</td>
326
+ <td><a href="#grammar-production-TriplesBlock">TriplesBlock</a><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><a href="#grammar-production-GraphPatternNotTriples">GraphPatternNotTriples</a> "<code class="grammar-literal">.</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
327
+ </tr>
328
+ <tr id="grammar-production-TriplesBlock">
329
+ <td>[55]</td>
330
+ <td><code>TriplesBlock</code></td>
331
+ <td>::=</td>
332
+ <td><a href="#grammar-production-TriplesSameSubjectPath">TriplesSameSubjectPath</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">.</code>" <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
333
+ </tr>
334
+ <tr id="grammar-production-GraphPatternNotTriples">
335
+ <td>[56]</td>
336
+ <td><code>GraphPatternNotTriples</code></td>
337
+ <td>::=</td>
338
+ <td><a href="#grammar-production-GroupOrUnionGraphPattern">GroupOrUnionGraphPattern</a> <code class="grammar-alt">|</code> <a href="#grammar-production-OptionalGraphPattern">OptionalGraphPattern</a> <code class="grammar-alt">|</code> <a href="#grammar-production-MinusGraphPattern">MinusGraphPattern</a> <code class="grammar-alt">|</code> <a href="#grammar-production-GraphGraphPattern">GraphGraphPattern</a> <code class="grammar-alt">|</code> <a href="#grammar-production-ServiceGraphPattern">ServiceGraphPattern</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Filter">Filter</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Bind">Bind</a> <code class="grammar-alt">|</code> <a href="#grammar-production-InlineData">InlineData</a></td>
339
+ </tr>
340
+ <tr id="grammar-production-OptionalGraphPattern">
341
+ <td>[57]</td>
342
+ <td><code>OptionalGraphPattern</code></td>
343
+ <td>::=</td>
344
+ <td>"<code class="grammar-literal">OPTIONAL</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
345
+ </tr>
346
+ <tr id="grammar-production-GraphGraphPattern">
347
+ <td>[58]</td>
348
+ <td><code>GraphGraphPattern</code></td>
349
+ <td>::=</td>
350
+ <td>"<code class="grammar-literal">GRAPH</code>" <a href="#grammar-production-VarOrIri">VarOrIri</a> <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
351
+ </tr>
352
+ <tr id="grammar-production-ServiceGraphPattern">
353
+ <td>[59]</td>
354
+ <td><code>ServiceGraphPattern</code></td>
355
+ <td>::=</td>
356
+ <td>"<code class="grammar-literal">SERVICE</code>" "<code class="grammar-literal">SILENT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-VarOrIri">VarOrIri</a> <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
357
+ </tr>
358
+ <tr id="grammar-production-Bind">
359
+ <td>[60]</td>
360
+ <td><code>Bind</code></td>
361
+ <td>::=</td>
362
+ <td>"<code class="grammar-literal">BIND</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>"</td>
363
+ </tr>
364
+ <tr id="grammar-production-InlineData">
365
+ <td>[61]</td>
366
+ <td><code>InlineData</code></td>
367
+ <td>::=</td>
368
+ <td>"<code class="grammar-literal">VALUES</code>" <a href="#grammar-production-DataBlock">DataBlock</a></td>
369
+ </tr>
370
+ <tr id="grammar-production-DataBlock">
371
+ <td>[62]</td>
372
+ <td><code>DataBlock</code></td>
373
+ <td>::=</td>
374
+ <td><a href="#grammar-production-InlineDataOneVar">InlineDataOneVar</a> <code class="grammar-alt">|</code> <a href="#grammar-production-InlineDataFull">InlineDataFull</a></td>
375
+ </tr>
376
+ <tr id="grammar-production-InlineDataOneVar">
377
+ <td>[63]</td>
378
+ <td><code>InlineDataOneVar</code></td>
379
+ <td>::=</td>
380
+ <td><a href="#grammar-production-Var">Var</a> "<code class="grammar-literal">{</code>" <a href="#grammar-production-DataBlockValue">DataBlockValue</a><code class="grammar-star">*</code> "<code class="grammar-literal">}</code>"</td>
381
+ </tr>
382
+ <tr id="grammar-production-InlineDataFull">
383
+ <td>[64]</td>
384
+ <td><code>InlineDataFull</code></td>
385
+ <td>::=</td>
386
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-NIL">NIL</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" <a href="#grammar-production-Var">Var</a><code class="grammar-star">*</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code><code class="grammar-paren">)</code> "<code class="grammar-literal">{</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" <a href="#grammar-production-DataBlockValue">DataBlockValue</a><code class="grammar-star">*</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-NIL">NIL</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">}</code>"</td>
387
+ </tr>
388
+ <tr id="grammar-production-DataBlockValue">
389
+ <td>[65]</td>
390
+ <td><code>DataBlockValue</code></td>
391
+ <td>::=</td>
392
+ <td><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">UNDEF</code>"</td>
393
+ </tr>
394
+ <tr id="grammar-production-MinusGraphPattern">
395
+ <td>[66]</td>
396
+ <td><code>MinusGraphPattern</code></td>
397
+ <td>::=</td>
398
+ <td>"<code class="grammar-literal">MINUS</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
399
+ </tr>
400
+ <tr id="grammar-production-GroupOrUnionGraphPattern">
401
+ <td>[67]</td>
402
+ <td><code>GroupOrUnionGraphPattern</code></td>
403
+ <td>::=</td>
404
+ <td><a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">UNION</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
405
+ </tr>
406
+ <tr id="grammar-production-Filter">
407
+ <td>[68]</td>
408
+ <td><code>Filter</code></td>
409
+ <td>::=</td>
410
+ <td>"<code class="grammar-literal">FILTER</code>" <a href="#grammar-production-Constraint">Constraint</a></td>
411
+ </tr>
412
+ <tr id="grammar-production-Constraint">
413
+ <td>[69]</td>
414
+ <td><code>Constraint</code></td>
415
+ <td>::=</td>
416
+ <td><a href="#grammar-production-BrackettedExpression">BrackettedExpression</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BuiltInCall">BuiltInCall</a> <code class="grammar-alt">|</code> <a href="#grammar-production-FunctionCall">FunctionCall</a></td>
417
+ </tr>
418
+ <tr id="grammar-production-FunctionCall">
419
+ <td>[70]</td>
420
+ <td><code>FunctionCall</code></td>
421
+ <td>::=</td>
422
+ <td><a href="#grammar-production-iri">iri</a> <a href="#grammar-production-ArgList">ArgList</a></td>
423
+ </tr>
424
+ <tr id="grammar-production-ArgList">
425
+ <td>[71]</td>
426
+ <td><code>ArgList</code></td>
427
+ <td>::=</td>
428
+ <td><a href="#grammar-production-NIL">NIL</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-Expression">Expression</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
429
+ </tr>
430
+ <tr id="grammar-production-ExpressionList">
431
+ <td>[72]</td>
432
+ <td><code>ExpressionList</code></td>
433
+ <td>::=</td>
434
+ <td><a href="#grammar-production-NIL">NIL</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
435
+ </tr>
436
+ <tr id="grammar-production-ConstructTemplate">
437
+ <td>[73]</td>
438
+ <td><code>ConstructTemplate</code></td>
439
+ <td>::=</td>
440
+ <td>"<code class="grammar-literal">{</code>" <a href="#grammar-production-ConstructTriples">ConstructTriples</a><code class="grammar-opt">?</code> "<code class="grammar-literal">}</code>"</td>
441
+ </tr>
442
+ <tr id="grammar-production-ConstructTriples">
443
+ <td>[74]</td>
444
+ <td><code>ConstructTriples</code></td>
445
+ <td>::=</td>
446
+ <td><a href="#grammar-production-TriplesSameSubject">TriplesSameSubject</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">.</code>" <a href="#grammar-production-ConstructTriples">ConstructTriples</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
447
+ </tr>
448
+ <tr id="grammar-production-TriplesSameSubject">
449
+ <td>[75]</td>
450
+ <td><code>TriplesSameSubject</code></td>
451
+ <td>::=</td>
452
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-VarOrTerm">VarOrTerm</a> <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-TriplesNode">TriplesNode</a> <a href="#grammar-production-PropertyList">PropertyList</a><code class="grammar-paren">)</code></td>
453
+ </tr>
454
+ <tr id="grammar-production-PropertyList">
455
+ <td>[76]</td>
456
+ <td><code>PropertyList</code></td>
457
+ <td>::=</td>
458
+ <td><a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a><code class="grammar-opt">?</code></td>
459
+ </tr>
460
+ <tr id="grammar-production-PropertyListNotEmpty">
461
+ <td>[77]</td>
462
+ <td><code>PropertyListNotEmpty</code></td>
463
+ <td>::=</td>
464
+ <td><a href="#grammar-production-Verb">Verb</a> <a href="#grammar-production-ObjectList">ObjectList</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">;</code>" <code class="grammar-paren">(</code><a href="#grammar-production-Verb">Verb</a> <a href="#grammar-production-ObjectList">ObjectList</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
465
+ </tr>
466
+ <tr id="grammar-production-Verb">
467
+ <td>[78]</td>
468
+ <td><code>Verb</code></td>
469
+ <td>::=</td>
470
+ <td><a href="#grammar-production-VarOrIri">VarOrIri</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">a</code>"</td>
471
+ </tr>
472
+ <tr id="grammar-production-ObjectList">
473
+ <td>[79]</td>
474
+ <td><code>ObjectList</code></td>
475
+ <td>::=</td>
476
+ <td><a href="#grammar-production-Object">Object</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-Object">Object</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
477
+ </tr>
478
+ <tr id="grammar-production-Object">
479
+ <td>[80]</td>
480
+ <td><code>Object</code></td>
481
+ <td>::=</td>
482
+ <td><a href="#grammar-production-GraphNode">GraphNode</a></td>
483
+ </tr>
484
+ <tr id="grammar-production-TriplesSameSubjectPath">
485
+ <td>[81]</td>
486
+ <td><code>TriplesSameSubjectPath</code></td>
487
+ <td>::=</td>
488
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-VarOrTerm">VarOrTerm</a> <a href="#grammar-production-PropertyListNotEmptyPath">PropertyListNotEmptyPath</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-TriplesNode">TriplesNode</a> <a href="#grammar-production-PropertyListPath">PropertyListPath</a><code class="grammar-paren">)</code></td>
489
+ </tr>
490
+ <tr id="grammar-production-PropertyListPath">
491
+ <td>[82]</td>
492
+ <td><code>PropertyListPath</code></td>
493
+ <td>::=</td>
494
+ <td><a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a><code class="grammar-opt">?</code></td>
495
+ </tr>
496
+ <tr id="grammar-production-PropertyListNotEmptyPath">
497
+ <td>[83]</td>
498
+ <td><code>PropertyListNotEmptyPath</code></td>
499
+ <td>::=</td>
500
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-VerbPath">VerbPath</a> <code class="grammar-alt">|</code> <a href="#grammar-production-VerbSimple">VerbSimple</a><code class="grammar-paren">)</code> <a href="#grammar-production-ObjectList">ObjectList</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">;</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-VerbPath">VerbPath</a> <code class="grammar-alt">|</code> <a href="#grammar-production-VerbSimple">VerbSimple</a><code class="grammar-paren">)</code> <a href="#grammar-production-ObjectList">ObjectList</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
501
+ </tr>
502
+ <tr id="grammar-production-VerbPath">
503
+ <td>[84]</td>
504
+ <td><code>VerbPath</code></td>
505
+ <td>::=</td>
506
+ <td><a href="#grammar-production-Path">Path</a></td>
507
+ </tr>
508
+ <tr id="grammar-production-VerbSimple">
509
+ <td>[85]</td>
510
+ <td><code>VerbSimple</code></td>
511
+ <td>::=</td>
512
+ <td><a href="#grammar-production-Var">Var</a></td>
513
+ </tr>
514
+ <tr id="grammar-production-ObjectListPath">
515
+ <td>[86]</td>
516
+ <td><code>ObjectListPath</code></td>
517
+ <td>::=</td>
518
+ <td><a href="#grammar-production-ObjectPath">ObjectPath</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-ObjectPath">ObjectPath</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
519
+ </tr>
520
+ <tr id="grammar-production-ObjectPath">
521
+ <td>[87]</td>
522
+ <td><code>ObjectPath</code></td>
523
+ <td>::=</td>
524
+ <td><a href="#grammar-production-GraphNodePath">GraphNodePath</a></td>
525
+ </tr>
526
+ <tr id="grammar-production-Path">
527
+ <td>[88]</td>
528
+ <td><code>Path</code></td>
529
+ <td>::=</td>
530
+ <td><a href="#grammar-production-PathAlternative">PathAlternative</a></td>
531
+ </tr>
532
+ <tr id="grammar-production-PathAlternative">
533
+ <td>[89]</td>
534
+ <td><code>PathAlternative</code></td>
535
+ <td>::=</td>
536
+ <td><a href="#grammar-production-PathSequence">PathSequence</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">|</code>" <a href="#grammar-production-PathSequence">PathSequence</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
537
+ </tr>
538
+ <tr id="grammar-production-PathSequence">
539
+ <td>[90]</td>
540
+ <td><code>PathSequence</code></td>
541
+ <td>::=</td>
542
+ <td><a href="#grammar-production-PathEltOrInverse">PathEltOrInverse</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">/</code>" <a href="#grammar-production-PathEltOrInverse">PathEltOrInverse</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
543
+ </tr>
544
+ <tr id="grammar-production-PathElt">
545
+ <td>[91]</td>
546
+ <td><code>PathElt</code></td>
547
+ <td>::=</td>
548
+ <td><a href="#grammar-production-PathPrimary">PathPrimary</a> <a href="#grammar-production-PathMod">PathMod</a><code class="grammar-opt">?</code></td>
549
+ </tr>
550
+ <tr id="grammar-production-PathEltOrInverse">
551
+ <td>[92]</td>
552
+ <td><code>PathEltOrInverse</code></td>
553
+ <td>::=</td>
554
+ <td><a href="#grammar-production-PathElt">PathElt</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">^</code>" <a href="#grammar-production-PathElt">PathElt</a><code class="grammar-paren">)</code></td>
555
+ </tr>
556
+ <tr id="grammar-production-PathMod">
557
+ <td>[93]</td>
558
+ <td><code>PathMod</code></td>
559
+ <td>::=</td>
560
+ <td>"<code class="grammar-literal">*</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">?</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">+</code>" <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">{</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-Integer">Integer</a> <code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">,</code>" <code class="grammar-paren">(</code>"<code class="grammar-literal">}</code>" <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-Integer">Integer</a> "<code class="grammar-literal">}</code>"<code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> "<code class="grammar-literal">}</code>"<code class="grammar-paren">)</code><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-Integer">Integer</a> "<code class="grammar-literal">}</code>"<code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-paren">)</code></td>
561
+ </tr>
562
+ <tr id="grammar-production-PathPrimary">
563
+ <td>[94]</td>
564
+ <td><code>PathPrimary</code></td>
565
+ <td>::=</td>
566
+ <td><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">a</code>" <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">!</code>" <a href="#grammar-production-PathNegatedPropertySet">PathNegatedPropertySet</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" <a href="#grammar-production-Path">Path</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
567
+ </tr>
568
+ <tr id="grammar-production-PathNegatedPropertySet">
569
+ <td>[95]</td>
570
+ <td><code>PathNegatedPropertySet</code></td>
571
+ <td>::=</td>
572
+ <td><a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" <code class="grammar-paren">(</code><a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">|</code>" <a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a><code class="grammar-paren">)</code><code class="grammar-star">*</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
573
+ </tr>
574
+ <tr id="grammar-production-PathOneInPropertySet">
575
+ <td>[96]</td>
576
+ <td><code>PathOneInPropertySet</code></td>
577
+ <td>::=</td>
578
+ <td><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">a</code>" <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">^</code>" <code class="grammar-paren">(</code><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">a</code>"<code class="grammar-paren">)</code><code class="grammar-paren">)</code></td>
579
+ </tr>
580
+ <tr id="grammar-production-Integer">
581
+ <td>[97]</td>
582
+ <td><code>Integer</code></td>
583
+ <td>::=</td>
584
+ <td><a href="#grammar-production-INTEGER">INTEGER</a></td>
585
+ </tr>
586
+ <tr id="grammar-production-TriplesNode">
587
+ <td>[98]</td>
588
+ <td><code>TriplesNode</code></td>
589
+ <td>::=</td>
590
+ <td><a href="#grammar-production-Collection">Collection</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BlankNodePropertyList">BlankNodePropertyList</a></td>
591
+ </tr>
592
+ <tr id="grammar-production-BlankNodePropertyList">
593
+ <td>[99]</td>
594
+ <td><code>BlankNodePropertyList</code></td>
595
+ <td>::=</td>
596
+ <td>"<code class="grammar-literal">[</code>" <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a> "<code class="grammar-literal">]</code>"</td>
597
+ </tr>
598
+ <tr id="grammar-production-TriplesNodePath">
599
+ <td>[100]</td>
600
+ <td><code>TriplesNodePath</code></td>
601
+ <td>::=</td>
602
+ <td><a href="#grammar-production-CollectionPath">CollectionPath</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BlankNodePropertyListPath">BlankNodePropertyListPath</a></td>
603
+ </tr>
604
+ <tr id="grammar-production-BlankNodePropertyListPath">
605
+ <td>[101]</td>
606
+ <td><code>BlankNodePropertyListPath</code></td>
607
+ <td>::=</td>
608
+ <td>"<code class="grammar-literal">[</code>" <a href="#grammar-production-PropertyListPathNotEmpty">PropertyListPathNotEmpty</a> "<code class="grammar-literal">]</code>"</td>
609
+ </tr>
610
+ <tr id="grammar-production-Collection">
611
+ <td>[102]</td>
612
+ <td><code>Collection</code></td>
613
+ <td>::=</td>
614
+ <td>"<code class="grammar-literal">(</code>" <a href="#grammar-production-GraphNode">GraphNode</a><code class="grammar-plus">+</code> "<code class="grammar-literal">)</code>"</td>
615
+ </tr>
616
+ <tr id="grammar-production-CollectionPath">
617
+ <td>[103]</td>
618
+ <td><code>CollectionPath</code></td>
619
+ <td>::=</td>
620
+ <td>"<code class="grammar-literal">(</code>" <a href="#grammar-production-GraphNodePath">GraphNodePath</a><code class="grammar-plus">+</code> "<code class="grammar-literal">)</code>"</td>
621
+ </tr>
622
+ <tr id="grammar-production-GraphNode">
623
+ <td>[104]</td>
624
+ <td><code>GraphNode</code></td>
625
+ <td>::=</td>
626
+ <td><a href="#grammar-production-VarOrTerm">VarOrTerm</a> <code class="grammar-alt">|</code> <a href="#grammar-production-TriplesNode">TriplesNode</a></td>
627
+ </tr>
628
+ <tr id="grammar-production-GraphNodePath">
629
+ <td>[105]</td>
630
+ <td><code>GraphNodePath</code></td>
631
+ <td>::=</td>
632
+ <td><a href="#grammar-production-VarOrTerm">VarOrTerm</a> <code class="grammar-alt">|</code> <a href="#grammar-production-TriplesNodePath">TriplesNodePath</a></td>
633
+ </tr>
634
+ <tr id="grammar-production-VarOrTerm">
635
+ <td>[106]</td>
636
+ <td><code>VarOrTerm</code></td>
637
+ <td>::=</td>
638
+ <td><a href="#grammar-production-Var">Var</a> <code class="grammar-alt">|</code> <a href="#grammar-production-GraphTerm">GraphTerm</a></td>
639
+ </tr>
640
+ <tr id="grammar-production-VarOrIri">
641
+ <td>[107]</td>
642
+ <td><code>VarOrIri</code></td>
643
+ <td>::=</td>
644
+ <td><a href="#grammar-production-Var">Var</a> <code class="grammar-alt">|</code> <a href="#grammar-production-iri">iri</a></td>
645
+ </tr>
646
+ <tr id="grammar-production-Var">
647
+ <td>[108]</td>
648
+ <td><code>Var</code></td>
649
+ <td>::=</td>
650
+ <td><a href="#grammar-production-VAR1">VAR1</a> <code class="grammar-alt">|</code> <a href="#grammar-production-VAR2">VAR2</a></td>
651
+ </tr>
652
+ <tr id="grammar-production-GraphTerm">
653
+ <td>[109]</td>
654
+ <td><code>GraphTerm</code></td>
655
+ <td>::=</td>
656
+ <td><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BlankNode">BlankNode</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NIL">NIL</a></td>
657
+ </tr>
658
+ <tr id="grammar-production-Expression">
659
+ <td>[110]</td>
660
+ <td><code>Expression</code></td>
661
+ <td>::=</td>
662
+ <td><a href="#grammar-production-ConditionalOrExpression">ConditionalOrExpression</a></td>
663
+ </tr>
664
+ <tr id="grammar-production-ConditionalOrExpression">
665
+ <td>[111]</td>
666
+ <td><code>ConditionalOrExpression</code></td>
667
+ <td>::=</td>
668
+ <td><a href="#grammar-production-ConditionalAndExpression">ConditionalAndExpression</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">||</code>" <a href="#grammar-production-ConditionalAndExpression">ConditionalAndExpression</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
669
+ </tr>
670
+ <tr id="grammar-production-ConditionalAndExpression">
671
+ <td>[112]</td>
672
+ <td><code>ConditionalAndExpression</code></td>
673
+ <td>::=</td>
674
+ <td><a href="#grammar-production-ValueLogical">ValueLogical</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">&amp;&amp;</code>" <a href="#grammar-production-ValueLogical">ValueLogical</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
675
+ </tr>
676
+ <tr id="grammar-production-ValueLogical">
677
+ <td>[113]</td>
678
+ <td><code>ValueLogical</code></td>
679
+ <td>::=</td>
680
+ <td><a href="#grammar-production-RelationalExpression">RelationalExpression</a></td>
681
+ </tr>
682
+ <tr id="grammar-production-RelationalExpression">
683
+ <td>[114]</td>
684
+ <td><code>RelationalExpression</code></td>
685
+ <td>::=</td>
686
+ <td><a href="#grammar-production-NumericExpression">NumericExpression</a></td>
687
+ </tr>
688
+ <tr>
689
+ <td colspan=2></td>
690
+ <td></td>
691
+ <td><code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a><code class="grammar-paren">)</code><code class="grammar-paren">(</code>"<code class="grammar-literal">!=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">&lt;</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">&gt;</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">&lt;=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">&gt;=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">IN</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">NOT</code>" "<code class="grammar-literal">IN</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
692
+ </tr>
693
+ <tr id="grammar-production-NumericExpression">
694
+ <td>[115]</td>
695
+ <td><code>NumericExpression</code></td>
696
+ <td>::=</td>
697
+ <td><a href="#grammar-production-AdditiveExpression">AdditiveExpression</a></td>
698
+ </tr>
699
+ <tr id="grammar-production-AdditiveExpression">
700
+ <td>[116]</td>
701
+ <td><code>AdditiveExpression</code></td>
702
+ <td>::=</td>
703
+ <td><a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a></td>
704
+ </tr>
705
+ <tr>
706
+ <td colspan=2></td>
707
+ <td></td>
708
+ <td><code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">+</code>" <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a><code class="grammar-paren">)</code><code class="grammar-paren">(</code>"<code class="grammar-literal">-</code>" <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-NumericLiteralPositive">NumericLiteralPositive</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NumericLiteralNegative">NumericLiteralNegative</a><code class="grammar-paren">)</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">*</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">/</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
709
+ </tr>
710
+ <tr id="grammar-production-MultiplicativeExpression">
711
+ <td>[117]</td>
712
+ <td><code>MultiplicativeExpression</code></td>
713
+ <td>::=</td>
714
+ <td><a href="#grammar-production-UnaryExpression">UnaryExpression</a> <code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">*</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">/</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
715
+ </tr>
716
+ <tr id="grammar-production-UnaryExpression">
717
+ <td>[118]</td>
718
+ <td><code>UnaryExpression</code></td>
719
+ <td>::=</td>
720
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">!</code>" <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">+</code>" <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">-</code>" <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a></td>
721
+ </tr>
722
+ <tr id="grammar-production-PrimaryExpression">
723
+ <td>[119]</td>
724
+ <td><code>PrimaryExpression</code></td>
725
+ <td>::=</td>
726
+ <td><a href="#grammar-production-BrackettedExpression">BrackettedExpression</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BuiltInCall">BuiltInCall</a> <code class="grammar-alt">|</code> <a href="#grammar-production-iriOrFunction">iriOrFunction</a> <code class="grammar-alt">|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-Var">Var</a></td>
727
+ </tr>
728
+ <tr id="grammar-production-BrackettedExpression">
729
+ <td>[120]</td>
730
+ <td><code>BrackettedExpression</code></td>
731
+ <td>::=</td>
732
+ <td>"<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"</td>
733
+ </tr>
734
+ <tr id="grammar-production-BuiltInCall">
735
+ <td>[121]</td>
736
+ <td><code>BuiltInCall</code></td>
737
+ <td>::=</td>
738
+ <td><a href="#grammar-production-Aggregate">Aggregate</a></td>
739
+ </tr>
740
+ <tr>
741
+ <td colspan=2></td>
742
+ <td><code class="grammar-alt">|</code></td>
743
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">STR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
744
+ </tr>
745
+ <tr>
746
+ <td colspan=2></td>
747
+ <td><code class="grammar-alt">|</code></td>
748
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">LANG</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
749
+ </tr>
750
+ <tr>
751
+ <td colspan=2></td>
752
+ <td><code class="grammar-alt">|</code></td>
753
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
754
+ </tr>
755
+ <tr>
756
+ <td colspan=2></td>
757
+ <td><code class="grammar-alt">|</code></td>
758
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">DATATYPE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
759
+ </tr>
760
+ <tr>
761
+ <td colspan=2></td>
762
+ <td><code class="grammar-alt">|</code></td>
763
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">BOUND</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Var">Var</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
764
+ </tr>
765
+ <tr>
766
+ <td colspan=2></td>
767
+ <td><code class="grammar-alt">|</code></td>
768
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">IRI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
769
+ </tr>
770
+ <tr>
771
+ <td colspan=2></td>
772
+ <td><code class="grammar-alt">|</code></td>
773
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">URI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
774
+ </tr>
775
+ <tr>
776
+ <td colspan=2></td>
777
+ <td><code class="grammar-alt">|</code></td>
778
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">BNODE</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-NIL">NIL</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code></td>
779
+ </tr>
780
+ <tr>
781
+ <td colspan=2></td>
782
+ <td><code class="grammar-alt">|</code></td>
783
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">RAND</code>" <a href="#grammar-production-NIL">NIL</a><code class="grammar-paren">)</code></td>
784
+ </tr>
785
+ <tr>
786
+ <td colspan=2></td>
787
+ <td><code class="grammar-alt">|</code></td>
788
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">ABS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
789
+ </tr>
790
+ <tr>
791
+ <td colspan=2></td>
792
+ <td><code class="grammar-alt">|</code></td>
793
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">CEIL</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
794
+ </tr>
795
+ <tr>
796
+ <td colspan=2></td>
797
+ <td><code class="grammar-alt">|</code></td>
798
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">FLOOR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
799
+ </tr>
800
+ <tr>
801
+ <td colspan=2></td>
802
+ <td><code class="grammar-alt">|</code></td>
803
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">ROUND</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
804
+ </tr>
805
+ <tr>
806
+ <td colspan=2></td>
807
+ <td><code class="grammar-alt">|</code></td>
808
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">CONCAT</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a><code class="grammar-paren">)</code></td>
809
+ </tr>
810
+ <tr>
811
+ <td colspan=2></td>
812
+ <td><code class="grammar-alt">|</code></td>
813
+ <td><a href="#grammar-production-SubstringExpression">SubstringExpression</a></td>
814
+ </tr>
815
+ <tr>
816
+ <td colspan=2></td>
817
+ <td><code class="grammar-alt">|</code></td>
818
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">STRLEN</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
819
+ </tr>
820
+ <tr>
821
+ <td colspan=2></td>
822
+ <td><code class="grammar-alt">|</code></td>
823
+ <td><a href="#grammar-production-StrReplaceExpression">StrReplaceExpression</a></td>
824
+ </tr>
825
+ <tr>
826
+ <td colspan=2></td>
827
+ <td><code class="grammar-alt">|</code></td>
828
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">UCASE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
829
+ </tr>
830
+ <tr>
831
+ <td colspan=2></td>
832
+ <td><code class="grammar-alt">|</code></td>
833
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">LCASE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
834
+ </tr>
835
+ <tr>
836
+ <td colspan=2></td>
837
+ <td><code class="grammar-alt">|</code></td>
838
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
839
+ </tr>
840
+ <tr>
841
+ <td colspan=2></td>
842
+ <td><code class="grammar-alt">|</code></td>
843
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
844
+ </tr>
845
+ <tr>
846
+ <td colspan=2></td>
847
+ <td><code class="grammar-alt">|</code></td>
848
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
849
+ </tr>
850
+ <tr>
851
+ <td colspan=2></td>
852
+ <td><code class="grammar-alt">|</code></td>
853
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
854
+ </tr>
855
+ <tr>
856
+ <td colspan=2></td>
857
+ <td><code class="grammar-alt">|</code></td>
858
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
859
+ </tr>
860
+ <tr>
861
+ <td colspan=2></td>
862
+ <td><code class="grammar-alt">|</code></td>
863
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
864
+ </tr>
865
+ <tr>
866
+ <td colspan=2></td>
867
+ <td><code class="grammar-alt">|</code></td>
868
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">YEAR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
869
+ </tr>
870
+ <tr>
871
+ <td colspan=2></td>
872
+ <td><code class="grammar-alt">|</code></td>
873
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">MONTH</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
874
+ </tr>
875
+ <tr>
876
+ <td colspan=2></td>
877
+ <td><code class="grammar-alt">|</code></td>
878
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">DAY</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
879
+ </tr>
880
+ <tr>
881
+ <td colspan=2></td>
882
+ <td><code class="grammar-alt">|</code></td>
883
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">HOURS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
884
+ </tr>
885
+ <tr>
886
+ <td colspan=2></td>
887
+ <td><code class="grammar-alt">|</code></td>
888
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">MINUTES</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
889
+ </tr>
890
+ <tr>
891
+ <td colspan=2></td>
892
+ <td><code class="grammar-alt">|</code></td>
893
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SECONDS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
894
+ </tr>
895
+ <tr>
896
+ <td colspan=2></td>
897
+ <td><code class="grammar-alt">|</code></td>
898
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">TIMEZONE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
899
+ </tr>
900
+ <tr>
901
+ <td colspan=2></td>
902
+ <td><code class="grammar-alt">|</code></td>
903
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">TZ</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
904
+ </tr>
905
+ <tr>
906
+ <td colspan=2></td>
907
+ <td><code class="grammar-alt">|</code></td>
908
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">NOW</code>" <a href="#grammar-production-NIL">NIL</a><code class="grammar-paren">)</code></td>
909
+ </tr>
910
+ <tr>
911
+ <td colspan=2></td>
912
+ <td><code class="grammar-alt">|</code></td>
913
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">UUID</code>" <a href="#grammar-production-NIL">NIL</a><code class="grammar-paren">)</code></td>
914
+ </tr>
915
+ <tr>
916
+ <td colspan=2></td>
917
+ <td><code class="grammar-alt">|</code></td>
918
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">STRUUID</code>" <a href="#grammar-production-NIL">NIL</a><code class="grammar-paren">)</code></td>
919
+ </tr>
920
+ <tr>
921
+ <td colspan=2></td>
922
+ <td><code class="grammar-alt">|</code></td>
923
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">MD5</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
924
+ </tr>
925
+ <tr>
926
+ <td colspan=2></td>
927
+ <td><code class="grammar-alt">|</code></td>
928
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SHA1</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
929
+ </tr>
930
+ <tr>
931
+ <td colspan=2></td>
932
+ <td><code class="grammar-alt">|</code></td>
933
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SHA224</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
934
+ </tr>
935
+ <tr>
936
+ <td colspan=2></td>
937
+ <td><code class="grammar-alt">|</code></td>
938
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SHA256</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
939
+ </tr>
940
+ <tr>
941
+ <td colspan=2></td>
942
+ <td><code class="grammar-alt">|</code></td>
943
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SHA384</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
944
+ </tr>
945
+ <tr>
946
+ <td colspan=2></td>
947
+ <td><code class="grammar-alt">|</code></td>
948
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SHA512</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
949
+ </tr>
950
+ <tr>
951
+ <td colspan=2></td>
952
+ <td><code class="grammar-alt">|</code></td>
953
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">COALESCE</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a><code class="grammar-paren">)</code></td>
954
+ </tr>
955
+ <tr>
956
+ <td colspan=2></td>
957
+ <td><code class="grammar-alt">|</code></td>
958
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
959
+ </tr>
960
+ <tr>
961
+ <td colspan=2></td>
962
+ <td><code class="grammar-alt">|</code></td>
963
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
964
+ </tr>
965
+ <tr>
966
+ <td colspan=2></td>
967
+ <td><code class="grammar-alt">|</code></td>
968
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
969
+ </tr>
970
+ <tr>
971
+ <td colspan=2></td>
972
+ <td><code class="grammar-alt">|</code></td>
973
+ <td><code class="grammar-paren">(</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>"<code class="grammar-paren">)</code></td>
974
+ </tr>
975
+ <tr>
976
+ <td colspan=2></td>
977
+ <td><code class="grammar-alt">|</code></td>
978
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">isIRI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
979
+ </tr>
980
+ <tr>
981
+ <td colspan=2></td>
982
+ <td><code class="grammar-alt">|</code></td>
983
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">isURI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
984
+ </tr>
985
+ <tr>
986
+ <td colspan=2></td>
987
+ <td><code class="grammar-alt">|</code></td>
988
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">isBLANK</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
989
+ </tr>
990
+ <tr>
991
+ <td colspan=2></td>
992
+ <td><code class="grammar-alt">|</code></td>
993
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">isLITERAL</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
994
+ </tr>
995
+ <tr>
996
+ <td colspan=2></td>
997
+ <td><code class="grammar-alt">|</code></td>
998
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">isNUMERIC</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
999
+ </tr>
1000
+ <tr>
1001
+ <td colspan=2></td>
1002
+ <td><code class="grammar-alt">|</code></td>
1003
+ <td><a href="#grammar-production-RegexExpression">RegexExpression</a></td>
1004
+ </tr>
1005
+ <tr>
1006
+ <td colspan=2></td>
1007
+ <td><code class="grammar-alt">|</code></td>
1008
+ <td><a href="#grammar-production-ExistsFunc">ExistsFunc</a></td>
1009
+ </tr>
1010
+ <tr>
1011
+ <td colspan=2></td>
1012
+ <td><code class="grammar-alt">|</code></td>
1013
+ <td><a href="#grammar-production-NotExistsFunc">NotExistsFunc</a></td>
1014
+ </tr>
1015
+ <tr id="grammar-production-RegexExpression">
1016
+ <td>[122]</td>
1017
+ <td><code>RegexExpression</code></td>
1018
+ <td>::=</td>
1019
+ <td>"<code class="grammar-literal">REGEX</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-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code> "<code class="grammar-literal">)</code>"</td>
1020
+ </tr>
1021
+ <tr id="grammar-production-SubstringExpression">
1022
+ <td>[123]</td>
1023
+ <td><code>SubstringExpression</code></td>
1024
+ <td>::=</td>
1025
+ <td>"<code class="grammar-literal">SUBSTR</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-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code> "<code class="grammar-literal">)</code>"</td>
1026
+ </tr>
1027
+ <tr id="grammar-production-StrReplaceExpression">
1028
+ <td>[124]</td>
1029
+ <td><code>StrReplaceExpression</code></td>
1030
+ <td>::=</td>
1031
+ <td>"<code class="grammar-literal">REPLACE</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-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code> "<code class="grammar-literal">)</code>"</td>
1032
+ </tr>
1033
+ <tr id="grammar-production-ExistsFunc">
1034
+ <td>[125]</td>
1035
+ <td><code>ExistsFunc</code></td>
1036
+ <td>::=</td>
1037
+ <td>"<code class="grammar-literal">EXISTS</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
1038
+ </tr>
1039
+ <tr id="grammar-production-NotExistsFunc">
1040
+ <td>[126]</td>
1041
+ <td><code>NotExistsFunc</code></td>
1042
+ <td>::=</td>
1043
+ <td>"<code class="grammar-literal">NOT</code>" "<code class="grammar-literal">EXISTS</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a></td>
1044
+ </tr>
1045
+ <tr id="grammar-production-Aggregate">
1046
+ <td>[127]</td>
1047
+ <td><code>Aggregate</code></td>
1048
+ <td>::=</td>
1049
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">COUNT</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">*</code>"<a href="#grammar-production-Expression">Expression</a><code class="grammar-paren">)</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
1050
+ </tr>
1051
+ <tr>
1052
+ <td colspan=2></td>
1053
+ <td><code class="grammar-alt">|</code></td>
1054
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SUM</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
1055
+ </tr>
1056
+ <tr>
1057
+ <td colspan=2></td>
1058
+ <td><code class="grammar-alt">|</code></td>
1059
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">MIN</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
1060
+ </tr>
1061
+ <tr>
1062
+ <td colspan=2></td>
1063
+ <td><code class="grammar-alt">|</code></td>
1064
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">MAX</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
1065
+ </tr>
1066
+ <tr>
1067
+ <td colspan=2></td>
1068
+ <td><code class="grammar-alt">|</code></td>
1069
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">AVG</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
1070
+ </tr>
1071
+ <tr>
1072
+ <td colspan=2></td>
1073
+ <td><code class="grammar-alt">|</code></td>
1074
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">SAMPLE</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
1075
+ </tr>
1076
+ <tr>
1077
+ <td colspan=2></td>
1078
+ <td><code class="grammar-alt">|</code></td>
1079
+ <td><code class="grammar-paren">(</code>"<code class="grammar-literal">GROUP_CONCAT</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code class="grammar-opt">?</code> <a href="#grammar-production-Expression">Expression</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">;</code>" "<code class="grammar-literal">SEPARATOR</code>" "<code class="grammar-literal">=</code>" <a href="#grammar-production-String">String</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code> "<code class="grammar-literal">)</code>"<code class="grammar-paren">)</code></td>
1080
+ </tr>
1081
+ <tr id="grammar-production-iriOrFunction">
1082
+ <td>[128]</td>
1083
+ <td><code>iriOrFunction</code></td>
1084
+ <td>::=</td>
1085
+ <td><a href="#grammar-production-iri">iri</a> <a href="#grammar-production-ArgList">ArgList</a><code class="grammar-opt">?</code></td>
1086
+ </tr>
1087
+ <tr id="grammar-production-RDFLiteral">
1088
+ <td>[129]</td>
1089
+ <td><code>RDFLiteral</code></td>
1090
+ <td>::=</td>
1091
+ <td><a href="#grammar-production-String">String</a> <code class="grammar-paren">(</code><a href="#grammar-production-LANGTAG">LANGTAG</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">^^</code>" <a href="#grammar-production-iri">iri</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
1092
+ </tr>
1093
+ <tr id="grammar-production-NumericLiteral">
1094
+ <td>[130]</td>
1095
+ <td><code>NumericLiteral</code></td>
1096
+ <td>::=</td>
1097
+ <td><a href="#grammar-production-NumericLiteralUnsigned">NumericLiteralUnsigned</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NumericLiteralPositive">NumericLiteralPositive</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NumericLiteralNegative">NumericLiteralNegative</a></td>
1098
+ </tr>
1099
+ <tr id="grammar-production-NumericLiteralUnsigned">
1100
+ <td>[131]</td>
1101
+ <td><code>NumericLiteralUnsigned</code></td>
1102
+ <td>::=</td>
1103
+ <td><a href="#grammar-production-INTEGER">INTEGER</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DECIMAL">DECIMAL</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DOUBLE">DOUBLE</a></td>
1104
+ </tr>
1105
+ <tr id="grammar-production-NumericLiteralPositive">
1106
+ <td>[132]</td>
1107
+ <td><code>NumericLiteralPositive</code></td>
1108
+ <td>::=</td>
1109
+ <td><a href="#grammar-production-INTEGER_POSITIVE">INTEGER_POSITIVE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DECIMAL_POSITIVE">DECIMAL_POSITIVE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DOUBLE_POSITIVE">DOUBLE_POSITIVE</a></td>
1110
+ </tr>
1111
+ <tr id="grammar-production-NumericLiteralNegative">
1112
+ <td>[133]</td>
1113
+ <td><code>NumericLiteralNegative</code></td>
1114
+ <td>::=</td>
1115
+ <td><a href="#grammar-production-INTEGER_NEGATIVE">INTEGER_NEGATIVE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DECIMAL_NEGATIVE">DECIMAL_NEGATIVE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DOUBLE_NEGATIVE">DOUBLE_NEGATIVE</a></td>
1116
+ </tr>
1117
+ <tr id="grammar-production-BooleanLiteral">
1118
+ <td>[134]</td>
1119
+ <td><code>BooleanLiteral</code></td>
1120
+ <td>::=</td>
1121
+ <td>"<code class="grammar-literal">true</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">false</code>"</td>
1122
+ </tr>
1123
+ <tr id="grammar-production-String">
1124
+ <td>[135]</td>
1125
+ <td><code>String</code></td>
1126
+ <td>::=</td>
1127
+ <td><a href="#grammar-production-STRING_LITERAL1">STRING_LITERAL1</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING_LITERAL2">STRING_LITERAL2</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING_LITERAL_LONG1">STRING_LITERAL_LONG1</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING_LITERAL_LONG2">STRING_LITERAL_LONG2</a></td>
1128
+ </tr>
1129
+ <tr id="grammar-production-iri">
1130
+ <td>[136]</td>
1131
+ <td><code>iri</code></td>
1132
+ <td>::=</td>
1133
+ <td><a href="#grammar-production-IRIREF">IRIREF</a> <code class="grammar-alt">|</code> <a href="#grammar-production-PrefixedName">PrefixedName</a></td>
1134
+ </tr>
1135
+ <tr id="grammar-production-PrefixedName">
1136
+ <td>[137]</td>
1137
+ <td><code>PrefixedName</code></td>
1138
+ <td>::=</td>
1139
+ <td><a href="#grammar-production-PNAME_LN">PNAME_LN</a> <code class="grammar-alt">|</code> <a href="#grammar-production-PNAME_NS">PNAME_NS</a></td>
1140
+ </tr>
1141
+ <tr id="grammar-production-BlankNode">
1142
+ <td>[138]</td>
1143
+ <td><code>BlankNode</code></td>
1144
+ <td>::=</td>
1145
+ <td><a href="#grammar-production-BLANK_NODE_LABEL">BLANK_NODE_LABEL</a> <code class="grammar-alt">|</code> <a href="#grammar-production-ANON">ANON</a></td>
1146
+ </tr>
1147
+ <tr id="grammar-declaration-terminals">
1148
+ <td>@terminals</td>
1149
+ <td><code></code></td>
1150
+ <td></td>
1151
+ <td><strong># Productions for terminals</strong></td>
1152
+ </tr>
1153
+ <tr id="grammar-production-IRIREF">
1154
+ <td>[139]</td>
1155
+ <td><code>IRIREF</code></td>
1156
+ <td>::=</td>
1157
+ <td>"<code class="grammar-literal">&lt;</code>" <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^&lt;&gt;&quot;{}|^`\</code><code class="grammar-brac">]</code> <code class="grammar-diff">-</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="null">#x00</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-brac">]</code><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">&gt;</code>"</td>
1158
+ </tr>
1159
+ <tr id="grammar-production-PNAME_NS">
1160
+ <td>[140]</td>
1161
+ <td><code>PNAME_NS</code></td>
1162
+ <td>::=</td>
1163
+ <td><a href="#grammar-production-PN_PREFIX">PN_PREFIX</a><code class="grammar-opt">?</code> "<code class="grammar-literal">:</code>"</td>
1164
+ </tr>
1165
+ <tr id="grammar-production-PNAME_LN">
1166
+ <td>[141]</td>
1167
+ <td><code>PNAME_LN</code></td>
1168
+ <td>::=</td>
1169
+ <td><a href="#grammar-production-PNAME_NS">PNAME_NS</a> <a href="#grammar-production-PN_LOCAL">PN_LOCAL</a></td>
1170
+ </tr>
1171
+ <tr id="grammar-production-BLANK_NODE_LABEL">
1172
+ <td>[142]</td>
1173
+ <td><code>BLANK_NODE_LABEL</code></td>
1174
+ <td>::=</td>
1175
+ <td>"<code class="grammar-literal">_:</code>" <code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>"<code class="grammar-paren">)</code><code class="grammar-star">*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
1176
+ </tr>
1177
+ <tr id="grammar-production-VAR1">
1178
+ <td>[143]</td>
1179
+ <td><code>VAR1</code></td>
1180
+ <td>::=</td>
1181
+ <td>"<code class="grammar-literal">?</code>" <a href="#grammar-production-VARNAME">VARNAME</a></td>
1182
+ </tr>
1183
+ <tr id="grammar-production-VAR2">
1184
+ <td>[144]</td>
1185
+ <td><code>VAR2</code></td>
1186
+ <td>::=</td>
1187
+ <td>"<code class="grammar-literal">$</code>" <a href="#grammar-production-VARNAME">VARNAME</a></td>
1188
+ </tr>
1189
+ <tr id="grammar-production-LANGTAG">
1190
+ <td>[145]</td>
1191
+ <td><code>LANGTAG</code></td>
1192
+ <td>::=</td>
1193
+ <td>"<code class="grammar-literal">@</code>" <code class="grammar-brac">[</code><code class="grammar-literal">a-zA-Z</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">-</code>" <code class="grammar-brac">[</code><code class="grammar-literal">a-zA-Z0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
1194
+ </tr>
1195
+ <tr id="grammar-production-INTEGER">
1196
+ <td>[146]</td>
1197
+ <td><code>INTEGER</code></td>
1198
+ <td>::=</td>
1199
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code></td>
1200
+ </tr>
1201
+ <tr id="grammar-production-DECIMAL">
1202
+ <td>[147]</td>
1203
+ <td><code>DECIMAL</code></td>
1204
+ <td>::=</td>
1205
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-star">*</code> "<code class="grammar-literal">.</code>" <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code></td>
1206
+ </tr>
1207
+ <tr id="grammar-production-DOUBLE">
1208
+ <td>[148]</td>
1209
+ <td><code>DOUBLE</code></td>
1210
+ <td>::=</td>
1211
+ <td><code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> "<code class="grammar-literal">.</code>" <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-star">*</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">.</code>" <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code class="grammar-paren">)</code></td>
1212
+ </tr>
1213
+ <tr id="grammar-production-INTEGER_POSITIVE">
1214
+ <td>[149]</td>
1215
+ <td><code>INTEGER_POSITIVE</code></td>
1216
+ <td>::=</td>
1217
+ <td>"<code class="grammar-literal">+</code>" <a href="#grammar-production-INTEGER">INTEGER</a></td>
1218
+ </tr>
1219
+ <tr id="grammar-production-DECIMAL_POSITIVE">
1220
+ <td>[150]</td>
1221
+ <td><code>DECIMAL_POSITIVE</code></td>
1222
+ <td>::=</td>
1223
+ <td>"<code class="grammar-literal">+</code>" <a href="#grammar-production-DECIMAL">DECIMAL</a></td>
1224
+ </tr>
1225
+ <tr id="grammar-production-DOUBLE_POSITIVE">
1226
+ <td>[151]</td>
1227
+ <td><code>DOUBLE_POSITIVE</code></td>
1228
+ <td>::=</td>
1229
+ <td>"<code class="grammar-literal">+</code>" <a href="#grammar-production-DOUBLE">DOUBLE</a></td>
1230
+ </tr>
1231
+ <tr id="grammar-production-INTEGER_NEGATIVE">
1232
+ <td>[152]</td>
1233
+ <td><code>INTEGER_NEGATIVE</code></td>
1234
+ <td>::=</td>
1235
+ <td>"<code class="grammar-literal">-</code>" <a href="#grammar-production-INTEGER">INTEGER</a></td>
1236
+ </tr>
1237
+ <tr id="grammar-production-DECIMAL_NEGATIVE">
1238
+ <td>[153]</td>
1239
+ <td><code>DECIMAL_NEGATIVE</code></td>
1240
+ <td>::=</td>
1241
+ <td>"<code class="grammar-literal">-</code>" <a href="#grammar-production-DECIMAL">DECIMAL</a></td>
1242
+ </tr>
1243
+ <tr id="grammar-production-DOUBLE_NEGATIVE">
1244
+ <td>[154]</td>
1245
+ <td><code>DOUBLE_NEGATIVE</code></td>
1246
+ <td>::=</td>
1247
+ <td>"<code class="grammar-literal">-</code>" <a href="#grammar-production-DOUBLE">DOUBLE</a></td>
1248
+ </tr>
1249
+ <tr id="grammar-production-EXPONENT">
1250
+ <td>[155]</td>
1251
+ <td><code>EXPONENT</code></td>
1252
+ <td>::=</td>
1253
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">eE</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">+-</code><code class="grammar-brac">]</code><code class="grammar-opt">?</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code></td>
1254
+ </tr>
1255
+ <tr id="grammar-production-STRING_LITERAL1">
1256
+ <td>[156]</td>
1257
+ <td><code>STRING_LITERAL1</code></td>
1258
+ <td>::=</td>
1259
+ <td>"<code class="grammar-literal">&apos;</code>" <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^</code><code class="grammar-char-escape"><abbr title="apos">#x27</abbr></code><code class="grammar-char-escape"><abbr title="back slash">#x5C</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">&apos;</code>"</td>
1260
+ </tr>
1261
+ <tr id="grammar-production-STRING_LITERAL2">
1262
+ <td>[157]</td>
1263
+ <td><code>STRING_LITERAL2</code></td>
1264
+ <td>::=</td>
1265
+ <td>'<code class="grammar-literal">&quot;</code>' <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^</code><code class="grammar-char-escape"><abbr title="dquote">#x22</abbr></code><code class="grammar-char-escape"><abbr title="back slash">#x5C</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> '<code class="grammar-literal">&quot;</code>'</td>
1266
+ </tr>
1267
+ <tr id="grammar-production-STRING_LITERAL_LONG1">
1268
+ <td>[158]</td>
1269
+ <td><code>STRING_LITERAL_LONG1</code></td>
1270
+ <td>::=</td>
1271
+ <td>"<code class="grammar-literal">&apos;&apos;&apos;</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">&apos;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">&apos;&apos;</code>"<code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^&apos;\</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">&apos;&apos;&apos;</code>"</td>
1272
+ </tr>
1273
+ <tr id="grammar-production-STRING_LITERAL_LONG2">
1274
+ <td>[159]</td>
1275
+ <td><code>STRING_LITERAL_LONG2</code></td>
1276
+ <td>::=</td>
1277
+ <td>'<code class="grammar-literal">&quot;&quot;&quot;</code>' <code class="grammar-paren">(</code><code class="grammar-paren">(</code>'<code class="grammar-literal">&quot;</code>' <code class="grammar-alt">|</code> '<code class="grammar-literal">&quot;&quot;</code>'<code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^&quot;\</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-star">*</code> '<code class="grammar-literal">&quot;&quot;&quot;</code>'</td>
1278
+ </tr>
1279
+ <tr id="grammar-production-ECHAR">
1280
+ <td>[160]</td>
1281
+ <td><code>ECHAR</code></td>
1282
+ <td>::=</td>
1283
+ <td>"<code class="grammar-literal">\</code>" <code class="grammar-brac">[</code><code class="grammar-literal">tbnrf&quot;&apos;</code><code class="grammar-brac">]</code></td>
1284
+ </tr>
1285
+ <tr id="grammar-production-NIL">
1286
+ <td>[161]</td>
1287
+ <td><code>NIL</code></td>
1288
+ <td>::=</td>
1289
+ <td>"<code class="grammar-literal">(</code>" <a href="#grammar-production-WS">WS</a><code class="grammar-star">*</code> "<code class="grammar-literal">)</code>"</td>
1290
+ </tr>
1291
+ <tr id="grammar-production-WS">
1292
+ <td>[162]</td>
1293
+ <td><code>WS</code></td>
1294
+ <td>::=</td>
1295
+ <td><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="horizontal tab">#x09</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code></td>
1296
+ </tr>
1297
+ <tr id="grammar-production-ANON">
1298
+ <td>[163]</td>
1299
+ <td><code>ANON</code></td>
1300
+ <td>::=</td>
1301
+ <td>"<code class="grammar-literal">[</code>" <a href="#grammar-production-WS">WS</a><code class="grammar-star">*</code> "<code class="grammar-literal">]</code>"</td>
1302
+ </tr>
1303
+ <tr id="grammar-production-PN_CHARS_BASE">
1304
+ <td>[164]</td>
1305
+ <td><code>PN_CHARS_BASE</code></td>
1306
+ <td>::=</td>
1307
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">A-Za-z</code><code class="grammar-brac">]</code></td>
1308
+ </tr>
1309
+ <tr>
1310
+ <td colspan=2></td>
1311
+ <td><code class="grammar-alt">|</code></td>
1312
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+00C0">#xC0</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+00D6">#xD6</abbr></code><code class="grammar-brac">]</code></td>
1313
+ </tr>
1314
+ <tr>
1315
+ <td colspan=2></td>
1316
+ <td><code class="grammar-alt">|</code></td>
1317
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+00D8">#xD8</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+00F6">#xF6</abbr></code><code class="grammar-brac">]</code></td>
1318
+ </tr>
1319
+ <tr>
1320
+ <td colspan=2></td>
1321
+ <td><code class="grammar-alt">|</code></td>
1322
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+00F8">#xF8</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+02FF">#x02FF</abbr></code><code class="grammar-brac">]</code></td>
1323
+ </tr>
1324
+ <tr>
1325
+ <td colspan=2></td>
1326
+ <td><code class="grammar-alt">|</code></td>
1327
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+0370">#x0370</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+037D">#x037D</abbr></code><code class="grammar-brac">]</code></td>
1328
+ </tr>
1329
+ <tr>
1330
+ <td colspan=2></td>
1331
+ <td><code class="grammar-alt">|</code></td>
1332
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+037F">#x037F</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+1FFF">#x1FFF</abbr></code><code class="grammar-brac">]</code></td>
1333
+ </tr>
1334
+ <tr>
1335
+ <td colspan=2></td>
1336
+ <td><code class="grammar-alt">|</code></td>
1337
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+200C">#x200C</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+200D">#x200D</abbr></code><code class="grammar-brac">]</code></td>
1338
+ </tr>
1339
+ <tr>
1340
+ <td colspan=2></td>
1341
+ <td><code class="grammar-alt">|</code></td>
1342
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+2070">#x2070</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+218F">#x218F</abbr></code><code class="grammar-brac">]</code></td>
1343
+ </tr>
1344
+ <tr>
1345
+ <td colspan=2></td>
1346
+ <td><code class="grammar-alt">|</code></td>
1347
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+2C00">#x2C00</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+2FEF">#x2FEF</abbr></code><code class="grammar-brac">]</code></td>
1348
+ </tr>
1349
+ <tr>
1350
+ <td colspan=2></td>
1351
+ <td><code class="grammar-alt">|</code></td>
1352
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+3001">#x3001</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+D7FF">#xD7FF</abbr></code><code class="grammar-brac">]</code></td>
1353
+ </tr>
1354
+ <tr>
1355
+ <td colspan=2></td>
1356
+ <td><code class="grammar-alt">|</code></td>
1357
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+F900">#xF900</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+FDCF">#xFDCF</abbr></code><code class="grammar-brac">]</code></td>
1358
+ </tr>
1359
+ <tr>
1360
+ <td colspan=2></td>
1361
+ <td><code class="grammar-alt">|</code></td>
1362
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+FDF0">#xFDF0</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+FFFD">#xFFFD</abbr></code><code class="grammar-brac">]</code></td>
1363
+ </tr>
1364
+ <tr>
1365
+ <td colspan=2></td>
1366
+ <td><code class="grammar-alt">|</code></td>
1367
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+10000">#x00010000</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+EFFFF">#x000EFFFF</abbr></code><code class="grammar-brac">]</code></td>
1368
+ </tr>
1369
+ <tr id="grammar-production-PN_CHARS_U">
1370
+ <td>[165]</td>
1371
+ <td><code>PN_CHARS_U</code></td>
1372
+ <td>::=</td>
1373
+ <td><a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">_</code>"</td>
1374
+ </tr>
1375
+ <tr id="grammar-production-VARNAME">
1376
+ <td>[166]</td>
1377
+ <td><code>VARNAME</code></td>
1378
+ <td>::=</td>
1379
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code> <code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="unicode U+00B7">#xB7</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+0300">#x0300</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+036F">#x036F</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+203F">#x203F</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+2040">#x2040</abbr></code><code class="grammar-brac">]</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
1380
+ </tr>
1381
+ <tr id="grammar-production-PN_CHARS">
1382
+ <td>[167]</td>
1383
+ <td><code>PN_CHARS</code></td>
1384
+ <td>::=</td>
1385
+ <td><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">-</code>" <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="unicode U+00B7">#xB7</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+0300">#x0300</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+036F">#x036F</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+203F">#x203F</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+2040">#x2040</abbr></code><code class="grammar-brac">]</code></td>
1386
+ </tr>
1387
+ <tr id="grammar-production-PN_PREFIX">
1388
+ <td>[168]</td>
1389
+ <td><code>PN_PREFIX</code></td>
1390
+ <td>::=</td>
1391
+ <td><a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>"<code class="grammar-paren">)</code><code class="grammar-star">*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
1392
+ </tr>
1393
+ <tr id="grammar-production-PN_LOCAL">
1394
+ <td>[169]</td>
1395
+ <td><code>PN_LOCAL</code></td>
1396
+ <td>::=</td>
1397
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>"<code class="grammar-paren">)</code><code class="grammar-star">*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
1398
+ </tr>
1399
+ <tr id="grammar-production-PLX">
1400
+ <td>[170]</td>
1401
+ <td><code>PLX</code></td>
1402
+ <td>::=</td>
1403
+ <td><a href="#grammar-production-PERCENT">PERCENT</a> <code class="grammar-alt">|</code> <a href="#grammar-production-PN_LOCAL_ESC">PN_LOCAL_ESC</a></td>
1404
+ </tr>
1405
+ <tr id="grammar-production-PERCENT">
1406
+ <td>[171]</td>
1407
+ <td><code>PERCENT</code></td>
1408
+ <td>::=</td>
1409
+ <td>"<code class="grammar-literal">%</code>" <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a></td>
1410
+ </tr>
1411
+ <tr id="grammar-production-HEX">
1412
+ <td>[172]</td>
1413
+ <td><code>HEX</code></td>
1414
+ <td>::=</td>
1415
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">0-9A-Fa-f</code><code class="grammar-brac">]</code></td>
1416
+ </tr>
1417
+ <tr id="grammar-production-PN_LOCAL_ESC">
1418
+ <td>[173]</td>
1419
+ <td><code>PN_LOCAL_ESC</code></td>
1420
+ <td>::=</td>
1421
+ <td>"<code class="grammar-literal">\</code>" <code class="grammar-paren">(</code>"<code class="grammar-literal">_</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">~</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">-</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">!</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">$</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">&amp;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">&apos;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">(</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">)</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">*</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">+</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">,</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">=</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">/</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">?</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">#</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">@</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">%</code>"<code class="grammar-paren">)</code></td>
1422
+ </tr>
1423
+ </tbody>
1605
1424
  </table>
1425
+