ebnf 2.3.4 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+