RDF API for PHP

BNF for RAP’s RDQL engine

NON-Terminals

CompilationUnit
::=
Query
CommaOpt
::=
,”)?
Query
::=
SelectClause
(SourceClause)?
TriplePatternClause
(ConstraintClause)?
(PrefixesClause)?
SelectClause
::=
SELECT” Var (CommaOpt Var)* | “SELECT *")
SourceClause
::=
FROM” | “SOURCE”) QuotedURI
TriplePatternClause
::=
“WHERE” TriplePattern (CommaOpt TriplePattern)*
TriplePattern
::=
“(“ VarOrURI CommaOpt VarOrURICommaOpt VarOrUriOrLiteral “)”
ConstraintClause
::=
“AND” Expression,” Expression)*
PrefixesClause
::=
“USING” PrefixDecl (CommaOpt PrefixDecl)*
PrefixDecl
::=
Identifier “FOR” QuotedURI
Expression
::=
ConditionalOrExpression
ConditionalOrExpression
::=
ConditionalXorExpression||” ConditionalXorExpression)*
ConditionalXorExpression
::=
ConditionalAndExpression
ConditionalAndExpression
::=
ValueLogical&&” ValueLogical)*
ValueLogical
::=
StringEqualityExpression
StringEqualityExpression
::=
EqualityExpression ((StrEqOp EqualityExpression) | (RegexMatchOp RegexPattern))
StrEqOp
::=
“EQ” | “NE”
RegexMatchOp
::=
“~~” | “=~” | “!~”
RegexPattern
::=
<REGULAR_EXPRESSION>
EqualityExpression
::=
RelationalExpression (EqOp RelationalExpression)?
EqOp
::=
“==” | “ !=”
RelationalExpression
::=
AdditiveExpression (RelOp AdditiveExpression) ?
RelOp
::=
“<” | “<=” | “>” | “>=”
AdditiveExpression
::=
MultiplicativeExpression (AddOp MultiplicativeExpression)*
AddOp
::=
“+” | “-”
MultiplicativeExpression
::=
UnaryExpression (MulOp UnaryExpression)*
MulOp
::=
“*” | “/” | “%”
UnaryExpression
::=
PrimaryExpression | “+” UnaryExpression | “-” UnaryExpression | “!” UnaryExpression
PrimaryExpression
::=
Var | Literal | “(“ Expression “)”
VarOrURI
::=
Var | QuotedURI
VarOrUriOrLiteral
::=
Var | QuotedURI | Literal
Var
::=
“?” Identifier
Identifier
::=
<IDENTIFIER>
URI
::=
<URI>
QuotedURI
::=
“<” <URI> “>”
Literal
::=
URI | NumericLiteral | TextLiteral | BooleanLiteral | NullLiteral
NumericLiteral
::=
<INTEGER_LITERAL> | <FLOATING_POINT_LITERAL>
TextLiteral
::=
<STRING_LITERAL> (“@” Identifier)? (“^^” URI)?
BooleanLiteral
::=
<BOOLEAN_LITERAL>
NullLiteral
::=
<NULL_LITERAL>