Validating against the SPARQL grammar. See
Validation results:
<Query
xmlns="http://www.w3.org/2005/01/yacker/uploads/SPARQL/"
xmlns:yacker="http://www.w3.org/2005/01/yacker/">
<Prologue>
<PrefixDecl>
<yacker:implicit-terminal>PREFIX</yacker:implicit-terminal>
<PNAME_NS>rdfs:</PNAME_NS>
<IRI_REF><http://www.w3.org/2000/01/rdf-schema#></IRI_REF>
</PrefixDecl>
<PrefixDecl>
<yacker:implicit-terminal>PREFIX</yacker:implicit-terminal>
<PNAME_NS>test:</PNAME_NS>
<IRI_REF><http://www.w3.org/2001/sw/DataAccess/tests/#></IRI_REF>
</PrefixDecl>
<PrefixDecl>
<yacker:implicit-terminal>PREFIX</yacker:implicit-terminal>
<PNAME_NS>sparql:</PNAME_NS>
<IRI_REF><http://www.w3.org/2001/sw/DataAccess/rq23/rq24#></IRI_REF>
</PrefixDecl>
</Prologue>
<SelectQuery>
<yacker:implicit-terminal>SELECT</yacker:implicit-terminal>
<Var>
<VAR1>?test</VAR1>
</Var>
<Var>
<VAR1>?example</VAR1>
</Var>
<Var>
<VAR1>?prodName</VAR1>
</Var>
<Var>
<VAR1>?prodURI</VAR1>
</Var>
<Var>
<VAR1>?yaccProd</VAR1>
</Var>
<Var>
<VAR1>?rule</VAR1>
</Var>
<Var>
<VAR1>?regexp</VAR1>
</Var>
<WhereClause>
<yacker:implicit-terminal>WHERE</yacker:implicit-terminal>
<GroupGraphPattern>
<yacker:implicit-terminal>LCURLEY</yacker:implicit-terminal>
<TriplesBlock>
<TriplesSameSubject>
<VarOrTerm>
<Var>
<VAR1>?test</VAR1>
</Var>
</VarOrTerm>
<PropertyListNotEmpty>
<Verb>
<yacker:implicit-terminal>a</yacker:implicit-terminal>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<GraphTerm>
<IRIref>
<PrefixedName>
<PNAME_LN>test:DAWGfacet</PNAME_LN>
</PrefixedName>
</IRIref>
</GraphTerm>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
<yacker:implicit-terminal>SEMI</yacker:implicit-terminal>
<Verb>
<VarOrIRIref>
<IRIref>
<PrefixedName>
<PNAME_LN>rdfs:comment</PNAME_LN>
</PrefixedName>
</IRIref>
</VarOrIRIref>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<Var>
<VAR1>?example</VAR1>
</Var>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
<yacker:implicit-terminal>SEMI</yacker:implicit-terminal>
<Verb>
<VarOrIRIref>
<IRIref>
<PrefixedName>
<PNAME_LN>test:order</PNAME_LN>
</PrefixedName>
</IRIref>
</VarOrIRIref>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<Var>
<VAR1>?order</VAR1>
</Var>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
<yacker:implicit-terminal>SEMI</yacker:implicit-terminal>
<Verb>
<VarOrIRIref>
<IRIref>
<PrefixedName>
<PNAME_LN>test:production</PNAME_LN>
</PrefixedName>
</IRIref>
</VarOrIRIref>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<Var>
<VAR1>?prodName</VAR1>
</Var>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
<yacker:implicit-terminal>SEMI</yacker:implicit-terminal>
<Verb>
<VarOrIRIref>
<IRIref>
<PrefixedName>
<PNAME_LN>test:productionURI</PNAME_LN>
</PrefixedName>
</IRIref>
</VarOrIRIref>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<Var>
<VAR1>?prodURI</VAR1>
</Var>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
</PropertyListNotEmpty>
</TriplesSameSubject>
</TriplesBlock>
<GraphPatternNotTriples>
<OptionalGraphPattern>
<yacker:implicit-terminal>OPTIONAL</yacker:implicit-terminal>
<GroupGraphPattern>
<yacker:implicit-terminal>LCURLEY</yacker:implicit-terminal>
<TriplesBlock>
<TriplesSameSubject>
<VarOrTerm>
<Var>
<VAR1>?test</VAR1>
</Var>
</VarOrTerm>
<PropertyListNotEmpty>
<Verb>
<VarOrIRIref>
<IRIref>
<PrefixedName>
<PNAME_LN>test:yaccProduction</PNAME_LN>
</PrefixedName>
</IRIref>
</VarOrIRIref>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<Var>
<VAR1>?yaccProd</VAR1>
</Var>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
</PropertyListNotEmpty>
</TriplesSameSubject>
</TriplesBlock>
<yacker:implicit-terminal>RCURLEY</yacker:implicit-terminal>
</GroupGraphPattern>
</OptionalGraphPattern>
</GraphPatternNotTriples>
<GraphPatternNotTriples>
<OptionalGraphPattern>
<yacker:implicit-terminal>OPTIONAL</yacker:implicit-terminal>
<GroupGraphPattern>
<yacker:implicit-terminal>LCURLEY</yacker:implicit-terminal>
<TriplesBlock>
<TriplesSameSubject>
<VarOrTerm>
<Var>
<VAR1>?test</VAR1>
</Var>
</VarOrTerm>
<PropertyListNotEmpty>
<Verb>
<VarOrIRIref>
<IRIref>
<PrefixedName>
<PNAME_LN>test:rule</PNAME_LN>
</PrefixedName>
</IRIref>
</VarOrIRIref>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<Var>
<VAR1>?rule</VAR1>
</Var>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
</PropertyListNotEmpty>
</TriplesSameSubject>
</TriplesBlock>
<yacker:implicit-terminal>RCURLEY</yacker:implicit-terminal>
</GroupGraphPattern>
</OptionalGraphPattern>
</GraphPatternNotTriples>
<GraphPatternNotTriples>
<OptionalGraphPattern>
<yacker:implicit-terminal>OPTIONAL</yacker:implicit-terminal>
<GroupGraphPattern>
<yacker:implicit-terminal>LCURLEY</yacker:implicit-terminal>
<TriplesBlock>
<TriplesSameSubject>
<VarOrTerm>
<Var>
<VAR1>?test</VAR1>
</Var>
</VarOrTerm>
<PropertyListNotEmpty>
<Verb>
<VarOrIRIref>
<IRIref>
<PrefixedName>
<PNAME_LN>test:regexp</PNAME_LN>
</PrefixedName>
</IRIref>
</VarOrIRIref>
</Verb>
<ObjectList>
<Object>
<GraphNode>
<VarOrTerm>
<Var>
<VAR1>?regexp</VAR1>
</Var>
</VarOrTerm>
</GraphNode>
</Object>
</ObjectList>
</PropertyListNotEmpty>
</TriplesSameSubject>
</TriplesBlock>
<yacker:implicit-terminal>RCURLEY</yacker:implicit-terminal>
</GroupGraphPattern>
</OptionalGraphPattern>
</GraphPatternNotTriples>
<yacker:implicit-terminal>RCURLEY</yacker:implicit-terminal>
</GroupGraphPattern>
</WhereClause>
<SolutionModifier>
<OrderClause>
<yacker:implicit-terminal>ORDER</yacker:implicit-terminal>
<yacker:implicit-terminal>BY</yacker:implicit-terminal>
<OrderCondition>
<Var>
<VAR1>?order</VAR1>
</Var>
</OrderCondition>
</OrderClause>
</SolutionModifier>
</SelectQuery>
</Query>
Trace:
PREFIX| (BaseDecl)?: |
|---|
| (PrefixDecl)*: |
|---|
rdfs:<http://www.w3.org/2000/01/rdf-schema#>| PrefixDecl: | "PREFIX" | PNAME_NS | IRI_REF |
|---|---|---|---|
| PREFIX | rdfs: | <http://www.w3.org/2000/01/rdf-schema#> |
| (PrefixDecl)*: | (PrefixDecl)* | PrefixDecl |
|---|---|---|
| PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> |
PREFIXtest:<http://www.w3.org/2001/sw/DataAccess/tests/#>| PrefixDecl: | "PREFIX" | PNAME_NS | IRI_REF |
|---|---|---|---|
| PREFIX | test: | <http://www.w3.org/2001/sw/DataAccess/tests/#> |
| (PrefixDecl)*: | (PrefixDecl)* | PrefixDecl |
|---|---|---|
| PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | PREFIX test: <http://www.w3.org/2001/sw/DataAccess/tests/#> |
PREFIXsparql:<http://www.w3.org/2001/sw/DataAccess/rq23/rq24#>| PrefixDecl: | "PREFIX" | PNAME_NS | IRI_REF |
|---|---|---|---|
| PREFIX | sparql: | <http://www.w3.org/2001/sw/DataAccess/rq23/rq24#> |
| (PrefixDecl)*: | (PrefixDecl)*(2) | PrefixDecl | |
|---|---|---|---|
| PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | PREFIX test: <http://www.w3.org/2001/sw/DataAccess/tests/#> | PREFIX sparql: <http://www.w3.org/2001/sw/DataAccess/rq23/rq24#> | |
SELECT| Prologue: | (BaseDecl)? | (PrefixDecl)*(3) | ||
|---|---|---|---|---|
| PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> | PREFIX test: <http://www.w3.org/2001/sw/DataAccess/tests/#> | PREFIX sparql: <http://www.w3.org/2001/sw/DataAccess/rq23/rq24#> | ||
?test| ("DISTINCT" | "REDUCED")?: |
|---|
| Var: | VAR1 |
|---|---|
| ?test |
| (Var)+: | Var |
|---|---|
| ?test |
?example| Var: | VAR1 |
|---|---|
| ?example |
| (Var)+: | (Var)+ | Var |
|---|---|---|
| ?test | ?example |
?prodName| Var: | VAR1 |
|---|---|
| ?prodName |
| (Var)+: | (Var)+(2) | Var | |
|---|---|---|---|
| ?test | ?example | ?prodName | |
?prodURI| Var: | VAR1 |
|---|---|
| ?prodURI |
| (Var)+: | (Var)+(3) | Var | ||
|---|---|---|---|---|
| ?test | ?example | ?prodName | ?prodURI | |
?yaccProd| Var: | VAR1 |
|---|---|
| ?yaccProd |
| (Var)+: | (Var)+(4) | Var | |||
|---|---|---|---|---|---|
| ?test | ?example | ?prodName | ?prodURI | ?yaccProd | |
?rule| Var: | VAR1 |
|---|---|
| ?rule |
| (Var)+: | (Var)+(5) | Var | ||||
|---|---|---|---|---|---|---|
| ?test | ?example | ?prodName | ?prodURI | ?yaccProd | ?rule | |
?regexp| Var: | VAR1 |
|---|---|
| ?regexp |
| (Var)+: | (Var)+(6) | Var | |||||
|---|---|---|---|---|---|---|---|
| ?test | ?example | ?prodName | ?prodURI | ?yaccProd | ?rule | ?regexp | |
WHERE| ( Var+ | Q<*> ): | (Var)+(7) | ||||||
|---|---|---|---|---|---|---|---|
| ?test | ?example | ?prodName | ?prodURI | ?yaccProd | ?rule | ?regexp | |
| (DatasetClause)*: |
|---|
| ("WHERE")?: | "WHERE" |
|---|---|
| WHERE |
{?test| Var: | VAR1 |
|---|---|
| ?test |
| VarOrTerm: | Var |
|---|---|
| ?test |
a| Verb: | "a" |
|---|---|
| a |
test:DAWGfacet| PrefixedName: | PNAME_LN |
|---|---|
| test:DAWGfacet |
| IRIref: | PrefixedName |
|---|---|
| test:DAWGfacet |
| GraphTerm: | IRIref |
|---|---|
| test:DAWGfacet |
| VarOrTerm: | GraphTerm |
|---|---|
| test:DAWGfacet |
| GraphNode: | VarOrTerm |
|---|---|
| test:DAWGfacet |
| Object: | GraphNode |
|---|---|
| test:DAWGfacet |
| ("," Object)*: |
|---|
;| ObjectList: | Object | ("," Object)* |
|---|---|---|
| test:DAWGfacet |
| ( <;> Verb ObjectList? )*: |
|---|
rdfs:comment| PrefixedName: | PNAME_LN |
|---|---|
| rdfs:comment |
| IRIref: | PrefixedName |
|---|---|
| rdfs:comment |
| VarOrIRIref: | IRIref |
|---|---|
| rdfs:comment |
| Verb: | VarOrIRIref |
|---|---|
| rdfs:comment |
?example| Var: | VAR1 |
|---|---|
| ?example |
| VarOrTerm: | Var |
|---|---|
| ?example |
| GraphNode: | VarOrTerm |
|---|---|
| ?example |
| Object: | GraphNode |
|---|---|
| ?example |
| ("," Object)*: |
|---|
;| ObjectList: | Object | ("," Object)* |
|---|---|---|
| ?example |
| Verb ObjectList: | Verb | ObjectList |
|---|---|---|
| rdfs:comment | ?example |
| (Verb ObjectList)?: | Verb ObjectList(2) | |
|---|---|---|
| rdfs:comment | ?example | |
| ( <;> Verb ObjectList? ): | ";" | (Verb ObjectList)? |
|---|---|---|
| ; | rdfs:comment ?example |
| ( <;> Verb ObjectList? )*: | ( <;> Verb ObjectList? )* | ( <;> Verb ObjectList? )(2) | |
|---|---|---|---|
| ; | rdfs:comment ?example | ||
test:order| PrefixedName: | PNAME_LN |
|---|---|
| test:order |
| IRIref: | PrefixedName |
|---|---|
| test:order |
| VarOrIRIref: | IRIref |
|---|---|
| test:order |
| Verb: | VarOrIRIref |
|---|---|
| test:order |
?order| Var: | VAR1 |
|---|---|
| ?order |
| VarOrTerm: | Var |
|---|---|
| ?order |
| GraphNode: | VarOrTerm |
|---|---|
| ?order |
| Object: | GraphNode |
|---|---|
| ?order |
| ("," Object)*: |
|---|
;| ObjectList: | Object | ("," Object)* |
|---|---|---|
| ?order |
| Verb ObjectList: | Verb | ObjectList |
|---|---|---|
| test:order | ?order |
| (Verb ObjectList)?: | Verb ObjectList(2) | |
|---|---|---|
| test:order | ?order | |
| ( <;> Verb ObjectList? ): | ";" | (Verb ObjectList)? |
|---|---|---|
| ; | test:order ?order |
| ( <;> Verb ObjectList? )*: | ( <;> Verb ObjectList? )* | ( <;> Verb ObjectList? )(2) | |
|---|---|---|---|
| ; rdfs:comment ?example | ; | test:order ?order | |
test:production| PrefixedName: | PNAME_LN |
|---|---|
| test:production |
| IRIref: | PrefixedName |
|---|---|
| test:production |
| VarOrIRIref: | IRIref |
|---|---|
| test:production |
| Verb: | VarOrIRIref |
|---|---|
| test:production |
?prodName| Var: | VAR1 |
|---|---|
| ?prodName |
| VarOrTerm: | Var |
|---|---|
| ?prodName |
| GraphNode: | VarOrTerm |
|---|---|
| ?prodName |
| Object: | GraphNode |
|---|---|
| ?prodName |
| ("," Object)*: |
|---|
;| ObjectList: | Object | ("," Object)* |
|---|---|---|
| ?prodName |
| Verb ObjectList: | Verb | ObjectList |
|---|---|---|
| test:production | ?prodName |
| (Verb ObjectList)?: | Verb ObjectList(2) | |
|---|---|---|
| test:production | ?prodName | |
| ( <;> Verb ObjectList? ): | ";" | (Verb ObjectList)? |
|---|---|---|
| ; | test:production ?prodName |
| ( <;> Verb ObjectList? )*: | ( <;> Verb ObjectList? )*(2) | ( <;> Verb ObjectList? )(2) | ||
|---|---|---|---|---|
| ; rdfs:comment ?example | ; test:order ?order | ; | test:production ?prodName | |
test:productionURI| PrefixedName: | PNAME_LN |
|---|---|
| test:productionURI |
| IRIref: | PrefixedName |
|---|---|
| test:productionURI |
| VarOrIRIref: | IRIref |
|---|---|
| test:productionURI |
| Verb: | VarOrIRIref |
|---|---|
| test:productionURI |
?prodURI| Var: | VAR1 |
|---|---|
| ?prodURI |
| VarOrTerm: | Var |
|---|---|
| ?prodURI |
| GraphNode: | VarOrTerm |
|---|---|
| ?prodURI |
| Object: | GraphNode |
|---|---|
| ?prodURI |
| ("," Object)*: |
|---|
OPTIONAL| ObjectList: | Object | ("," Object)* |
|---|---|---|
| ?prodURI |
| Verb ObjectList: | Verb | ObjectList |
|---|---|---|
| test:productionURI | ?prodURI |
| (Verb ObjectList)?: | Verb ObjectList(2) | |
|---|---|---|
| test:productionURI | ?prodURI | |
| ( <;> Verb ObjectList? ): | ";" | (Verb ObjectList)? |
|---|---|---|
| ; | test:productionURI ?prodURI |
| ( <;> Verb ObjectList? )*: | ( <;> Verb ObjectList? )*(3) | ( <;> Verb ObjectList? )(2) | |||
|---|---|---|---|---|---|
| ; rdfs:comment ?example | ; test:order ?order | ; test:production ?prodName | ; | test:productionURI ?prodURI | |
| PropertyListNotEmpty: | Verb | ObjectList | ( <;> Verb ObjectList? )*(4) | |||
|---|---|---|---|---|---|---|
| a | test:DAWGfacet | ; rdfs:comment ?example | ; test:order ?order | ; test:production ?prodName | ; test:productionURI ?prodURI | |
| TriplesSameSubject: | VarOrTerm | PropertyListNotEmpty |
|---|---|---|
| ?test | a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI |
| ( <.> TriplesBlock? )?: |
|---|
| TriplesBlock: | TriplesSameSubject | ( <.> TriplesBlock? )? |
|---|---|---|
| ?test a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI |
| (TriplesBlock)?: | TriplesBlock |
|---|---|
| ?test a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI |
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*: |
|---|
{?test| Var: | VAR1 |
|---|---|
| ?test |
| VarOrTerm: | Var |
|---|---|
| ?test |
test:yaccProduction| PrefixedName: | PNAME_LN |
|---|---|
| test:yaccProduction |
| IRIref: | PrefixedName |
|---|---|
| test:yaccProduction |
| VarOrIRIref: | IRIref |
|---|---|
| test:yaccProduction |
| Verb: | VarOrIRIref |
|---|---|
| test:yaccProduction |
?yaccProd| Var: | VAR1 |
|---|---|
| ?yaccProd |
| VarOrTerm: | Var |
|---|---|
| ?yaccProd |
| GraphNode: | VarOrTerm |
|---|---|
| ?yaccProd |
| Object: | GraphNode |
|---|---|
| ?yaccProd |
| ("," Object)*: |
|---|
}| ObjectList: | Object | ("," Object)* |
|---|---|---|
| ?yaccProd |
| ( <;> Verb ObjectList? )*: |
|---|
| PropertyListNotEmpty: | Verb | ObjectList | ( <;> Verb ObjectList? )* |
|---|---|---|---|
| test:yaccProduction | ?yaccProd |
| TriplesSameSubject: | VarOrTerm | PropertyListNotEmpty |
|---|---|---|
| ?test | test:yaccProduction ?yaccProd |
| ( <.> TriplesBlock? )?: |
|---|
| TriplesBlock: | TriplesSameSubject | ( <.> TriplesBlock? )? |
|---|---|---|
| ?test test:yaccProduction ?yaccProd |
| (TriplesBlock)?: | TriplesBlock |
|---|---|
| ?test test:yaccProduction ?yaccProd |
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*: |
|---|
| GroupGraphPattern: | "{" | (TriplesBlock)? | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )* | "}" |
|---|---|---|---|---|
| { | ?test test:yaccProduction ?yaccProd | } |
| OptionalGraphPattern: | "OPTIONAL" | GroupGraphPattern |
|---|---|---|
| OPTIONAL | { ?test test:yaccProduction ?yaccProd } |
| GraphPatternNotTriples: | OptionalGraphPattern |
|---|---|
| OPTIONAL { ?test test:yaccProduction ?yaccProd } |
| GraphPatternNotTriples | Filter: | GraphPatternNotTriples |
|---|---|
| OPTIONAL { ?test test:yaccProduction ?yaccProd } |
OPTIONAL| (".")?: |
|---|
| (TriplesBlock)?: |
|---|
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? ): | GraphPatternNotTriples | Filter | (".")? | (TriplesBlock)? |
|---|---|---|---|
| OPTIONAL { ?test test:yaccProduction ?yaccProd } |
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*: | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )* | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )(3) | ||
|---|---|---|---|---|
| OPTIONAL { ?test test:yaccProduction ?yaccProd } | ||||
{?test| Var: | VAR1 |
|---|---|
| ?test |
| VarOrTerm: | Var |
|---|---|
| ?test |
test:rule| PrefixedName: | PNAME_LN |
|---|---|
| test:rule |
| IRIref: | PrefixedName |
|---|---|
| test:rule |
| VarOrIRIref: | IRIref |
|---|---|
| test:rule |
| Verb: | VarOrIRIref |
|---|---|
| test:rule |
?rule| Var: | VAR1 |
|---|---|
| ?rule |
| VarOrTerm: | Var |
|---|---|
| ?rule |
| GraphNode: | VarOrTerm |
|---|---|
| ?rule |
| Object: | GraphNode |
|---|---|
| ?rule |
| ("," Object)*: |
|---|
}| ObjectList: | Object | ("," Object)* |
|---|---|---|
| ?rule |
| ( <;> Verb ObjectList? )*: |
|---|
| PropertyListNotEmpty: | Verb | ObjectList | ( <;> Verb ObjectList? )* |
|---|---|---|---|
| test:rule | ?rule |
| TriplesSameSubject: | VarOrTerm | PropertyListNotEmpty |
|---|---|---|
| ?test | test:rule ?rule |
| ( <.> TriplesBlock? )?: |
|---|
| TriplesBlock: | TriplesSameSubject | ( <.> TriplesBlock? )? |
|---|---|---|
| ?test test:rule ?rule |
| (TriplesBlock)?: | TriplesBlock |
|---|---|
| ?test test:rule ?rule |
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*: |
|---|
| GroupGraphPattern: | "{" | (TriplesBlock)? | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )* | "}" |
|---|---|---|---|---|
| { | ?test test:rule ?rule | } |
| OptionalGraphPattern: | "OPTIONAL" | GroupGraphPattern |
|---|---|---|
| OPTIONAL | { ?test test:rule ?rule } |
| GraphPatternNotTriples: | OptionalGraphPattern |
|---|---|
| OPTIONAL { ?test test:rule ?rule } |
| GraphPatternNotTriples | Filter: | GraphPatternNotTriples |
|---|---|
| OPTIONAL { ?test test:rule ?rule } |
OPTIONAL| (".")?: |
|---|
| (TriplesBlock)?: |
|---|
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? ): | GraphPatternNotTriples | Filter | (".")? | (TriplesBlock)? |
|---|---|---|---|
| OPTIONAL { ?test test:rule ?rule } |
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*: | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )* | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )(3) | ||
|---|---|---|---|---|
| OPTIONAL { ?test test:yaccProduction ?yaccProd } | OPTIONAL { ?test test:rule ?rule } | |||
{?test| Var: | VAR1 |
|---|---|
| ?test |
| VarOrTerm: | Var |
|---|---|
| ?test |
test:regexp| PrefixedName: | PNAME_LN |
|---|---|
| test:regexp |
| IRIref: | PrefixedName |
|---|---|
| test:regexp |
| VarOrIRIref: | IRIref |
|---|---|
| test:regexp |
| Verb: | VarOrIRIref |
|---|---|
| test:regexp |
?regexp| Var: | VAR1 |
|---|---|
| ?regexp |
| VarOrTerm: | Var |
|---|---|
| ?regexp |
| GraphNode: | VarOrTerm |
|---|---|
| ?regexp |
| Object: | GraphNode |
|---|---|
| ?regexp |
| ("," Object)*: |
|---|
}| ObjectList: | Object | ("," Object)* |
|---|---|---|
| ?regexp |
| ( <;> Verb ObjectList? )*: |
|---|
| PropertyListNotEmpty: | Verb | ObjectList | ( <;> Verb ObjectList? )* |
|---|---|---|---|
| test:regexp | ?regexp |
| TriplesSameSubject: | VarOrTerm | PropertyListNotEmpty |
|---|---|---|
| ?test | test:regexp ?regexp |
| ( <.> TriplesBlock? )?: |
|---|
| TriplesBlock: | TriplesSameSubject | ( <.> TriplesBlock? )? |
|---|---|---|
| ?test test:regexp ?regexp |
| (TriplesBlock)?: | TriplesBlock |
|---|---|
| ?test test:regexp ?regexp |
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*: |
|---|
| GroupGraphPattern: | "{" | (TriplesBlock)? | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )* | "}" |
|---|---|---|---|---|
| { | ?test test:regexp ?regexp | } |
| OptionalGraphPattern: | "OPTIONAL" | GroupGraphPattern |
|---|---|---|
| OPTIONAL | { ?test test:regexp ?regexp } |
| GraphPatternNotTriples: | OptionalGraphPattern |
|---|---|
| OPTIONAL { ?test test:regexp ?regexp } |
| GraphPatternNotTriples | Filter: | GraphPatternNotTriples |
|---|---|
| OPTIONAL { ?test test:regexp ?regexp } |
}| (".")?: |
|---|
| (TriplesBlock)?: |
|---|
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? ): | GraphPatternNotTriples | Filter | (".")? | (TriplesBlock)? |
|---|---|---|---|
| OPTIONAL { ?test test:regexp ?regexp } |
| ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*: | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*(2) | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )(3) | |||
|---|---|---|---|---|---|
| OPTIONAL { ?test test:yaccProduction ?yaccProd } | OPTIONAL { ?test test:rule ?rule } | OPTIONAL { ?test test:regexp ?regexp } | |||
| GroupGraphPattern: | "{" | (TriplesBlock)? | ( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*(3) | "}" | ||
|---|---|---|---|---|---|---|
| { | ?test a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI | OPTIONAL { ?test test:yaccProduction ?yaccProd } | OPTIONAL { ?test test:rule ?rule } | OPTIONAL { ?test test:regexp ?regexp } | } | |
| WhereClause: | ("WHERE")? | GroupGraphPattern |
|---|---|---|
| WHERE | { ?test a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI OPTIONAL { ?test test:yaccProduction ?yaccProd } OPTIONAL { ?test test:rule ?rule } OPTIONAL { ?test test:regexp ?regexp } } |
ORDERBY?order| Var: | VAR1 |
|---|---|
| ?order |
| Constraint | Var: | Var |
|---|---|
| ?order |
| OrderCondition: | Constraint | Var |
|---|---|
| ?order |
| (OrderCondition)+: | OrderCondition |
|---|---|
| ?order |
| OrderClause: | "ORDER" | "BY" | (OrderCondition)+ |
|---|---|---|---|
| ORDER | BY | ?order |
| (OrderClause)?: | OrderClause |
|---|---|
| ORDER BY ?order |
| (LimitOffsetClauses)?: |
|---|
| SolutionModifier: | (OrderClause)? | (LimitOffsetClauses)? |
|---|---|---|
| ORDER BY ?order |
| SelectQuery: | "SELECT" | ("DISTINCT" | "REDUCED")? | ( Var+ | Q<*> ) | (DatasetClause)* | WhereClause | SolutionModifier |
|---|---|---|---|---|---|---|
| SELECT | ?test ?example ?prodName ?prodURI ?yaccProd ?rule ?regexp | WHERE { ?test a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI OPTIONAL { ?test test:yaccProduction ?yaccProd } OPTIONAL { ?test test:rule ?rule } OPTIONAL { ?test test:regexp ?regexp } } | ORDER BY ?order |
| SelectQuery | ConstructQuery | DescribeQuery | AskQuery: | SelectQuery |
|---|---|
| SELECT ?test ?example ?prodName ?prodURI ?yaccProd ?rule ?regexp WHERE { ?test a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI OPTIONAL { ?test test:yaccProduction ?yaccProd } OPTIONAL { ?test test:rule ?rule } OPTIONAL { ?test test:regexp ?regexp } } ORDER BY ?order |
| Query: | Prologue | SelectQuery | ConstructQuery | DescribeQuery | AskQuery |
|---|---|---|
| PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX test: <http://www.w3.org/2001/sw/DataAccess/tests/#> PREFIX sparql: <http://www.w3.org/2001/sw/DataAccess/rq23/rq24#> | SELECT ?test ?example ?prodName ?prodURI ?yaccProd ?rule ?regexp WHERE { ?test a test:DAWGfacet ; rdfs:comment ?example ; test:order ?order ; test:production ?prodName ; test:productionURI ?prodURI OPTIONAL { ?test test:yaccProduction ?yaccProd } OPTIONAL { ?test test:rule ?rule } OPTIONAL { ?test test:regexp ?regexp } } ORDER BY ?order |
Input some text to test:
Productions: | |||
| [1] | Query |
::= | Prologue ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery ) |
| [2] | Prologue |
::= | (BaseDecl)? (PrefixDecl)* |
| [3] | BaseDecl |
::= | "BASE" IRI_REF |
| [4] | PrefixDecl |
::= | "PREFIX" PNAME_NS IRI_REF |
| [5] | SelectQuery |
::= | "SELECT" (( "DISTINCT" | "REDUCED" ))? ( (Var)+ | "*" ) (DatasetClause)* WhereClause SolutionModifier |
| [6] | ConstructQuery |
::= | "CONSTRUCT" ConstructTemplate (DatasetClause)* WhereClause SolutionModifier |
| [7] | DescribeQuery |
::= | "DESCRIBE" ( (VarOrIRIref)+ | "*" ) (DatasetClause)* (WhereClause)? SolutionModifier |
| [8] | AskQuery |
::= | "ASK" (DatasetClause)* WhereClause |
| [9] | DatasetClause |
::= | "FROM" ( DefaultGraphClause | NamedGraphClause ) |
| [10] | DefaultGraphClause |
::= | SourceSelector |
| [11] | NamedGraphClause |
::= | "NAMED" SourceSelector |
| [12] | SourceSelector |
::= | IRIref |
| [13] | WhereClause |
::= | ("WHERE")? GroupGraphPattern |
| [14] | SolutionModifier |
::= | (OrderClause)? (LimitOffsetClauses)? |
| [15] | LimitOffsetClauses |
::= | ( LimitClause (OffsetClause)? | OffsetClause (LimitClause)? ) |
| [16] | OrderClause |
::= | "ORDER" "BY" (OrderCondition)+ |
| [17] | OrderCondition |
::= | ( ( "ASC" | "DESC" ) BrackettedExpression ) |
| [18] | LimitClause |
::= | "LIMIT" INTEGER |
| [19] | OffsetClause |
::= | "OFFSET" INTEGER |
| [20] | GroupGraphPattern |
::= | "{" (TriplesBlock)? (( ( GraphPatternNotTriples | Filter ) (".")? (TriplesBlock)? ))* "}" |
| [21] | TriplesBlock |
::= | TriplesSameSubject (( "." (TriplesBlock)? ))? |
| [22] | GraphPatternNotTriples |
::= | OptionalGraphPattern |
| [23] | OptionalGraphPattern |
::= | "OPTIONAL" GroupGraphPattern |
| [24] | GraphGraphPattern |
::= | "GRAPH" VarOrIRIref GroupGraphPattern |
| [25] | GroupOrUnionGraphPattern |
::= | GroupGraphPattern (( "UNION" GroupGraphPattern ))* |
| [26] | Filter |
::= | "FILTER" Constraint |
| [27] | Constraint |
::= | BrackettedExpression |
| [28] | FunctionCall |
::= | IRIref ArgList |
| [29] | ArgList |
::= | ( NIL | "(" Expression (( "," Expression ))* ")" ) |
| [30] | ConstructTemplate |
::= | "{" (ConstructTriples)? "}" |
| [31] | ConstructTriples |
::= | TriplesSameSubject (( "." (ConstructTriples)? ))? |
| [32] | TriplesSameSubject |
::= | VarOrTerm PropertyListNotEmpty |
| [33] | PropertyListNotEmpty |
::= | Verb ObjectList (( ";" (( Verb ObjectList ))? ))* |
| [34] | PropertyList |
::= | (PropertyListNotEmpty)? |
| [35] | ObjectList |
::= | Object (( "," Object ))* |
| [36] | Object |
::= | GraphNode |
| [37] | Verb |
::= | VarOrIRIref |
| [38] | TriplesNode |
::= | Collection |
| [39] | BlankNodePropertyList |
::= | "[" PropertyListNotEmpty "]" |
| [40] | Collection |
::= | "(" (GraphNode)+ ")" |
| [41] | GraphNode |
::= | VarOrTerm |
| [42] | VarOrTerm |
::= | Var |
| [43] | VarOrIRIref |
::= | Var |
| [44] | Var |
::= | VAR1 |
| [45] | GraphTerm |
::= | IRIref |
| [46] | Expression |
::= | ConditionalOrExpression |
| [47] | ConditionalOrExpression |
::= | ConditionalAndExpression (( "||" ConditionalAndExpression ))* |
| [48] | ConditionalAndExpression |
::= | ValueLogical (( "&&" ValueLogical ))* |
| [49] | ValueLogical |
::= | RelationalExpression |
| [50] | RelationalExpression |
::= | NumericExpression (( "=" NumericExpression | "!=" NumericExpression | "<" NumericExpression | ">" NumericExpression | "<=" NumericExpression | ">=" NumericExpression ))? |
| [51] | NumericExpression |
::= | AdditiveExpression |
| [52] | AdditiveExpression |
::= | MultiplicativeExpression (( "+" MultiplicativeExpression | "-" MultiplicativeExpression | NumericLiteralPositive | NumericLiteralNegative ))* |
| [53] | MultiplicativeExpression |
::= | UnaryExpression (( "*" UnaryExpression | "/" UnaryExpression ))* |
| [54] | UnaryExpression |
::= | "!" PrimaryExpression |
| [55] | PrimaryExpression |
::= | BrackettedExpression |
| [56] | BrackettedExpression |
::= | "(" Expression ")" |
| [57] | BuiltInCall |
::= | "STR" "(" Expression ")" |
| [58] | RegexExpression |
::= | "REGEX" "(" Expression "," Expression (( "," Expression ))? ")" |
| [59] | IRIrefOrFunction |
::= | IRIref (ArgList)? |
| [60] | RDFLiteral |
::= | String (( LANGTAG | ( "^^" IRIref ) ))? |
| [61] | NumericLiteral |
::= | NumericLiteralUnsigned |
| [62] | NumericLiteralUnsigned |
::= | INTEGER |
| [63] | NumericLiteralPositive |
::= | INTEGER_POSITIVE |
| [64] | NumericLiteralNegative |
::= | INTEGER_NEGATIVE |
| [65] | BooleanLiteral |
::= | "true" |
| [66] | String |
::= | STRING_LITERAL1 |
| [67] | IRIref |
::= | IRI_REF |
| [68] | PrefixedName |
::= | PNAME_LN |
| [69] | BlankNode |
::= | BLANK_NODE_LABEL |
| [70] | <IRI_REF> |
::= | "<" (( [^<>\"{}|^`\\] - [#0000- ] ))* ">" |
| [71] | <PNAME_NS> |
::= | (PN_PREFIX)? ":" |
| [72] | <PNAME_LN> |
::= | PNAME_NS PN_LOCAL |
| [73] | <BLANK_NODE_LABEL> |
::= | "_:" PN_LOCAL |
| [74] | <VAR1> |
::= | "?" VARNAME |
| [75] | <VAR2> |
::= | "$" VARNAME |
| [76] | <LANGTAG> |
::= | "@" ([a-zA-Z])+ (( "-" ([a-zA-Z0-9])+ ))* |
| [77] | <INTEGER> |
::= | ([0-9])+ |
| [78] | <DECIMAL> |
::= | ([0-9])+ "." ([0-9])* |
| [79] | <DOUBLE> |
::= | ([0-9])+ "." ([0-9])* EXPONENT |
| [80] | <INTEGER_POSITIVE> |
::= | "+" INTEGER |
| [81] | <DECIMAL_POSITIVE> |
::= | "+" DECIMAL |
| [82] | <DOUBLE_POSITIVE> |
::= | "+" DOUBLE |
| [83] | <INTEGER_NEGATIVE> |
::= | "-" INTEGER |
| [84] | <DECIMAL_NEGATIVE> |
::= | "-" DECIMAL |
| [85] | <DOUBLE_NEGATIVE> |
::= | "-" DOUBLE |
| [86] | <EXPONENT> |
::= | [eE] ([+-])? ([0-9])+ |
| [87] | <STRING_LITERAL1> |
::= | "'" (( ( [^'\\\n\r] ) | ECHAR ))* "'" |
| [88] | <STRING_LITERAL2> |
::= | '"' (( ( [^\"\\\n\r] ) | ECHAR ))* '"' |
| [89] | <STRING_LITERAL_LONG1> |
::= | "'''" (( (( "'" | "''" ))? ( [^'\\] | ECHAR ) ))* "'''" |
| [90] | <STRING_LITERAL_LONG2> |
::= | '"""' (( (( '"' | '""' ))? ( [^\"\\] | ECHAR ) ))* '"""' |
| [91] | <ECHAR> |
::= | "\\" [tbnrf\\\"'] |
| [92] | <NIL> |
::= | "(" (WS)* ")" |
| [93] | <WS> |
::= | " " |
| [94] | <ANON> |
::= | "[" (WS)* "]" |
| [95] | <PN_CHARS_BASE> |
::= | [A-Z] |
| [96] | <PN_CHARS_U> |
::= | PN_CHARS_BASE |
| [97] | <VARNAME> |
::= | ( PN_CHARS_U | [0-9] ) (( PN_CHARS_U | [0-9] | #00B7 | [#0300-#036F] | [#203F-#2040] ))* |
| [98] | <PN_CHARS> |
::= | PN_CHARS_U |
| [99] | <PN_PREFIX> |
::= | PN_CHARS_BASE (( (( PN_CHARS | "." ))* PN_CHARS ))? |
| [100] | <PN_LOCAL> |
::= | ( PN_CHARS_U | [0-9] ) (( (( PN_CHARS | "." ))* PN_CHARS ))? |
| [101] | PASSED TOKENS |
::= | ([ \t\r\n])+ |