87
[87] ANON ::= '[' WS* ']'
ANON
[
]
52
[52] AdditiveExpression ::= MultiplicativeExpression ( '+' MultiplicativeExpression | '-' MultiplicativeExpression )*
AdditiveExpression
+
-
29
[29] ArgList ::= ( NIL | '(' Expression ( ',' Expression )* ')' )
ArgList
(
,
)
8
[8] AskQuery ::= 'ASK' DatasetClause* WhereClause
AskQuery
ASK
70
[70] BLANK_NODE_LABEL ::= '_:' NCNAME
BLANK_NODE_LABEL
_:
3
[3] BaseDecl ::= 'BASE' Q_IRI_REF
BaseDecl
BASE
66
[66] BlankNode ::= BLANK_NODE_LABEL | ANON
BlankNode
38
[38] BlankNodePropertyList ::= '[' PropertyListNotEmpty ']'
BlankNodePropertyList
[
]
22
[22] BlockOfTriples ::= TriplesSameSubject ( '.' TriplesSameSubject? )*
BlockOfTriples
.
62
[62] BooleanLiteral ::= 'true' | 'false'
BooleanLiteral
true
false
56
[56] BrackettedExpression ::= '(' Expression ')'
BrackettedExpression
(
)
57
[57] BuiltInCall ::= 'STR' '(' Expression ')'| 'LANG' '(' Expression ')'| 'LANGMATCHES' '(' Expression ',' Expression ')'| 'DATATYPE' '(' Expression ')'| 'BOUND' '(' Var ')'| 'isIRI' '(' Expression ')'| 'isURI' '(' Expression ')'| 'isBLANK' '(' Expression ')'| 'isLITERAL' '(' Expression ')'| RegexExpression
BuiltInCall
STR
(
)
LANG
(
)
LANGMATCHES
(
,
)
DATATYPE
(
)
BOUND
(
)
isIRI
(
)
isURI
(
)
isBLANK
(
)
isLITERAL
(
)
39
[39] Collection ::= '(' GraphNode+ ')'
Collection
(
)
48
[48] ConditionalAndExpression ::= ValueLogical ( '&&' ValueLogical )*
ConditionalAndExpression
&&
47
[47] ConditionalOrExpression ::= ConditionalAndExpression ( '||' ConditionalAndExpression )*
ConditionalOrExpression
||
27
[27] Constraint ::= 'FILTER' ( BrackettedExpression | BuiltInCall | FunctionCall )
Constraint
FILTER
6
[6] ConstructQuery ::= 'CONSTRUCT' ConstructTemplate DatasetClause* WhereClause SolutionModifier
ConstructQuery
CONSTRUCT
30
[30] ConstructTemplate ::= '{' ConstructTriples '}'
ConstructTemplate
{
}
31
[31] ConstructTriples ::= ( TriplesSameSubject ( '.' ConstructTriples )? )?
ConstructTriples
.
75
[75] DECIMAL ::= [0-9]+ '.' [0-9]* | '.' [0-9]+
DECIMAL
[0-9]
.
[0-9]
.
[0-9]
76
[76] DOUBLE ::= [0-9]+ '.' [0-9]* EXPONENT | '.' ([0-9])+ EXPONENT | ([0-9])+ EXPONENT
DOUBLE
[0-9]
.
[0-9]
.
[0-9]
[0-9]
9
[9] DatasetClause ::= 'FROM' ( DefaultGraphClause | NamedGraphClause )
DatasetClause
FROM
10
[10] DefaultGraphClause ::= SourceSelector
DefaultGraphClause
7
[7] DescribeQuery ::= 'DESCRIBE' ( VarOrIRIref+ | '*' ) DatasetClause* WhereClause? SolutionModifier
DescribeQuery
DESCRIBE
*
82
[82] ECHAR ::= '\\' [tbnrf\\"']
ECHAR
\\
[tbnrf\\"']
77
[77] EXPONENT ::= [eE] [+-]? [0-9]+
EXPONENT
[eE]
[+-]
[0-9]
46
[46] Expression ::= ConditionalOrExpression
Expression
21
[21] FilteredBasicGraphPattern ::= BlockOfTriples? ( Constraint '.'? FilteredBasicGraphPattern )?
FilteredBasicGraphPattern
.
28
[28] FunctionCall ::= IRIref ArgList
FunctionCall
25
[25] GraphGraphPattern ::= 'GRAPH' VarOrBlankNodeOrIRIref GroupGraphPattern
GraphGraphPattern
GRAPH
40
[40] GraphNode ::= VarOrTerm | TriplesNode
GraphNode
20
[20] GraphPattern ::= FilteredBasicGraphPattern ( GraphPatternNotTriples '.'? GraphPattern )?
GraphPattern
.
23
[23] GraphPatternNotTriples ::= OptionalGraphPattern | GroupOrUnionGraphPattern | GraphGraphPattern
GraphPatternNotTriples
45
[45] GraphTerm ::= IRIref | RDFLiteral | ( '-' | '+' )? NumericLiteral | BooleanLiteral | BlankNode | NIL
GraphTerm
-
+
19
[19] GroupGraphPattern ::= '{' GraphPattern '}'
GroupGraphPattern
{
}
26
[26] GroupOrUnionGraphPattern ::= GroupGraphPattern ( 'UNION' GroupGraphPattern )*
GroupOrUnionGraphPattern
UNION
84
[84] HEX ::= [0-9] | [A-F] | [a-f]
HEX
[0-9]
[A-F]
[a-f]
74
[74] INTEGER ::= [0-9]+
INTEGER
[0-9]
64
[64] IRIref ::= Q_IRI_REF | QName
IRIref
59
[59] IRIrefOrFunction ::= IRIref ArgList?
IRIrefOrFunction
73
[73] LANGTAG ::= '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)*
LANGTAG
@
[a-zA-Z]
-
[a-zA-Z0-9]
17
[17] LimitClause ::= 'LIMIT' INTEGER
LimitClause
LIMIT
53
[53] MultiplicativeExpression ::= UnaryExpression ( '*' UnaryExpression | '/' UnaryExpression )*
MultiplicativeExpression
*
/
91
[91] NCCHAR ::= NCCHAR1 | '-' | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040]
NCCHAR
-
[0-9]
\x00B7
[#x0300-#x036F]
[#x203F-#x2040]
89
[89] NCCHAR1 ::= NCCHAR1p | '_'
NCCHAR1
_
88
[88] NCCHAR1p ::= [A-Z]| [a-z]| [#x00C0-#x00D6]| [#x00D8-#x00F6]| [#x00F8-#x02FF]| [#x0370-#x037D]| [#x037F-#x1FFF]| [#x200C-#x200D]| [#x2070-#x218F]| [#x2C00-#x2FEF]| [#x3001-#xD7FF]| [#xF900-#xFDCF]| [#xFDF0-#xFFFD]| [#x10000-#xEFFFF]| UCHAR
NCCHAR1p
[A-Z]
[a-z]
[#x00C0-#x00D6]
[#x00D8-#x00F6]
[#x00F8-#x02FF]
[#x0370-#x037D]
[#x037F-#x1FFF]
[#x200C-#x200D]
[#x2070-#x218F]
[#x2C00-#x2FEF]
[#x3001-#xD7FF]
[#xF900-#xFDCF]
[#xFDF0-#xFFFD]
[#x10000-#xEFFFF]
93
[93] NCNAME ::= NCCHAR1 ((NCCHAR|'.')* NCCHAR)?
NCNAME
.
92
[92] NCNAME_PREFIX ::= NCCHAR1p ((NCCHAR|'.')* NCCHAR)?
NCNAME_PREFIX
.
85
[85] NIL ::= '(' WS* ')'
NIL
(
)
11
[11] NamedGraphClause ::= 'NAMED' SourceSelector
NamedGraphClause
NAMED
51
[51] NumericExpression ::= AdditiveExpression
NumericExpression
61
[61] NumericLiteral ::= INTEGER | DECIMAL | DOUBLE
NumericLiteral
35
[35] ObjectList ::= GraphNode ( ',' ObjectList )?
ObjectList
,
18
[18] OffsetClause ::= 'OFFSET' INTEGER
OffsetClause
OFFSET
24
[24] OptionalGraphPattern ::= 'OPTIONAL' GroupGraphPattern
OptionalGraphPattern
OPTIONAL
15
[15] OrderClause ::= 'ORDER' 'BY' OrderCondition+
OrderClause
ORDER
BY
16
[16] OrderCondition ::= ( ( 'ASC' | 'DESC' ) BrackettedExpression )| ( FunctionCall | Var | BrackettedExpression )
OrderCondition
ASC
DESC
4
[4] PrefixDecl ::= 'PREFIX' QNAME_NS Q_IRI_REF
PrefixDecl
PREFIX
55
[55] PrimaryExpression ::= BrackettedExpression | BuiltInCall | IRIrefOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | BlankNode | Var
PrimaryExpression
2
[2] Prolog ::= BaseDecl? PrefixDecl*
Prolog
33
[33] PropertyList ::= PropertyListNotEmpty?
PropertyList
34
[34] PropertyListNotEmpty ::= Verb ObjectList ( ';' PropertyList )?
PropertyListNotEmpty
;
69
[69] QNAME ::= NCNAME_PREFIX? ':' NCNAME?
QNAME
:
68
[68] QNAME_NS ::= NCNAME_PREFIX? ':'
QNAME_NS
:
65
[65] QName ::= QNAME | QNAME_NS
QName
67
[67] Q_IRI_REF ::= '<' ([^<>'{}|^`]-[#x00-#x20])* '>'
Q_IRI_REF
<
[^<>'{}|^`]
[#x00-#x20]
>
1
[1] Query ::= Prolog( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )
Query
60
[60] RDFLiteral ::= String ( LANGTAG | ( '^^' IRIref ) )?
RDFLiteral
^^
58
[58] RegexExpression ::= 'REGEX' '(' Expression ',' Expression ( ',' Expression )? ')'
RegexExpression
REGEX
(
,
,
)
50
[50] RelationalExpression ::= NumericExpression ( '=' NumericExpression | '!=' NumericExpression | '<' NumericExpression | '>' NumericExpression | '<=' NumericExpression | '>=' NumericExpression )?
RelationalExpression
=
!=
<
>
<=
>=
78
[78] STRING_LITERAL1 ::= "'" ( ([^#x27#x5C#xA#xD]) | ECHAR | UCHAR )* "'"
STRING_LITERAL1
'
[^#x27#x5C#xA#xD]
'
79
[79] STRING_LITERAL2 ::= '"' ( ([^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* '"'
STRING_LITERAL2
"
[^#x22#x5C#xA#xD]
"
80
[80] STRING_LITERAL_LONG1 ::= "'''" ( ( "'" | "''" )? ( [^'\\] | ECHAR | UCHAR ) )* "'''"
STRING_LITERAL_LONG1
'''
'
''
[^'\\]
'''
81
[81] STRING_LITERAL_LONG2 ::= '"""' ( ( '"' | '""' )? ( [^"\\] | ECHAR | UCHAR ) )* '"""'
STRING_LITERAL_LONG2
"""
"
""
[^"\\]
"""
5
[5] SelectQuery ::= 'SELECT' 'DISTINCT'? ( Var+ | '*' ) DatasetClause* WhereClause SolutionModifier
SelectQuery
SELECT
DISTINCT
*
14
[14] SolutionModifier ::= OrderClause? LimitClause? OffsetClause?
SolutionModifier
12
[12] SourceSelector ::= IRIref
SourceSelector
63
[63] String ::= STRING_LITERAL1 | STRING_LITERAL2 | STRING_LITERAL_LONG1 | STRING_LITERAL_LONG2
String
37
[37] TriplesNode ::= Collection | BlankNodePropertyList
TriplesNode
32
[32] TriplesSameSubject ::= VarOrTerm PropertyListNotEmpty | TriplesNode PropertyList
TriplesSameSubject
83
[83] UCHAR ::= '\\' ( 'u' HEX HEX HEX HEX | 'U' HEX HEX HEX HEX HEX HEX HEX HEX )
UCHAR
\\
u
U
54
[54] UnaryExpression ::= '!' PrimaryExpression| '+' PrimaryExpression| '-' PrimaryExpression| PrimaryExpression
UnaryExpression
!
+
-
71
[71] VAR1 ::= '?' VARNAME
VAR1
?
72
[72] VAR2 ::= '$' VARNAME
VAR2
$
90
[90] VARNAME ::= ( NCCHAR1 | [0-9] ) ( NCCHAR1 | [0-9] | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] )*
VARNAME
[0-9]
[0-9]
\x00B7
[#x0300-#x036F]
[#x203F-#x2040]
49
[49] ValueLogical ::= RelationalExpression
ValueLogical
44
[44] Var ::= VAR1 | VAR2
Var
43
[43] VarOrBlankNodeOrIRIref ::= Var | BlankNode | IRIref
VarOrBlankNodeOrIRIref
42
[42] VarOrIRIref ::= Var | IRIref
VarOrIRIref
41
[41] VarOrTerm ::= Var | GraphTerm
VarOrTerm
36
[36] Verb ::= VarOrIRIref | 'a'
Verb
a
86
[86] WS ::= #x20 | #x9 | #xD | #xA
WS
\x20
\x9
\xD
\xA
13
[13] WhereClause ::= 'WHERE'? GroupGraphPattern
WhereClause
WHERE