yacker: SPARQL validation results

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>&lt;http://www.w3.org/2000/01/rdf-schema#&gt;</IRI_REF>
    </PrefixDecl>
    <PrefixDecl>
      <yacker:implicit-terminal>PREFIX</yacker:implicit-terminal>
      <PNAME_NS>test:</PNAME_NS>
      <IRI_REF>&lt;http://www.w3.org/2001/sw/DataAccess/tests/#&gt;</IRI_REF>
    </PrefixDecl>
    <PrefixDecl>
      <yacker:implicit-terminal>PREFIX</yacker:implicit-terminal>
      <PNAME_NS>sparql:</PNAME_NS>
      <IRI_REF>&lt;http://www.w3.org/2001/sw/DataAccess/rq23/rq24#&gt;</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" PREFIX
(BaseDecl)?:
(PrefixDecl)*:
PNAME_NS rdfs:
IRI_REF <http://www.w3.org/2000/01/rdf-schema#>
PrefixDecl:"PREFIX"PNAME_NSIRI_REF
PREFIXrdfs:<http://www.w3.org/2000/01/rdf-schema#>
(PrefixDecl)*:(PrefixDecl)*PrefixDecl
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
"PREFIX" PREFIX
PNAME_NS test:
IRI_REF <http://www.w3.org/2001/sw/DataAccess/tests/#>
PrefixDecl:"PREFIX"PNAME_NSIRI_REF
PREFIXtest:<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/#>
"PREFIX" PREFIX
PNAME_NS sparql:
IRI_REF <http://www.w3.org/2001/sw/DataAccess/rq23/rq24#>
PrefixDecl:"PREFIX"PNAME_NSIRI_REF
PREFIXsparql:<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" 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#>
VAR1 ?test
("DISTINCT" | "REDUCED")?:
Var:VAR1
?test
(Var)+:Var
?test
VAR1 ?example
Var:VAR1
?example
(Var)+:(Var)+Var
?test?example
VAR1 ?prodName
Var:VAR1
?prodName
(Var)+:(Var)+(2)Var
?test?example?prodName
VAR1 ?prodURI
Var:VAR1
?prodURI
(Var)+:(Var)+(3)Var
?test?example?prodName?prodURI
VAR1 ?yaccProd
Var:VAR1
?yaccProd
(Var)+:(Var)+(4)Var
?test?example?prodName?prodURI?yaccProd
VAR1 ?rule
Var:VAR1
?rule
(Var)+:(Var)+(5)Var
?test?example?prodName?prodURI?yaccProd?rule
VAR1 ?regexp
Var:VAR1
?regexp
(Var)+:(Var)+(6)Var
?test?example?prodName?prodURI?yaccProd?rule?regexp
"WHERE" WHERE
( Var+ | Q<*> ):(Var)+(7)
?test?example?prodName?prodURI?yaccProd?rule?regexp
(DatasetClause)*:
("WHERE")?:"WHERE"
WHERE
<{> {
VAR1 ?test
Var:VAR1
?test
VarOrTerm:Var
?test
"a" a
Verb:"a"
a
PNAME_LN 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? )*:
PNAME_LN rdfs:comment
PrefixedName:PNAME_LN
rdfs:comment
IRIref:PrefixedName
rdfs:comment
VarOrIRIref:IRIref
rdfs:comment
Verb:VarOrIRIref
rdfs:comment
VAR1 ?example
Var:VAR1
?example
VarOrTerm:Var
?example
GraphNode:VarOrTerm
?example
Object:GraphNode
?example
("," Object)*:
<;> ;
ObjectList:Object("," Object)*
?example
Verb ObjectList:VerbObjectList
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
PNAME_LN test:order
PrefixedName:PNAME_LN
test:order
IRIref:PrefixedName
test:order
VarOrIRIref:IRIref
test:order
Verb:VarOrIRIref
test:order
VAR1 ?order
Var:VAR1
?order
VarOrTerm:Var
?order
GraphNode:VarOrTerm
?order
Object:GraphNode
?order
("," Object)*:
<;> ;
ObjectList:Object("," Object)*
?order
Verb ObjectList:VerbObjectList
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
PNAME_LN test:production
PrefixedName:PNAME_LN
test:production
IRIref:PrefixedName
test:production
VarOrIRIref:IRIref
test:production
Verb:VarOrIRIref
test:production
VAR1 ?prodName
Var:VAR1
?prodName
VarOrTerm:Var
?prodName
GraphNode:VarOrTerm
?prodName
Object:GraphNode
?prodName
("," Object)*:
<;> ;
ObjectList:Object("," Object)*
?prodName
Verb ObjectList:VerbObjectList
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
PNAME_LN test:productionURI
PrefixedName:PNAME_LN
test:productionURI
IRIref:PrefixedName
test:productionURI
VarOrIRIref:IRIref
test:productionURI
Verb:VarOrIRIref
test:productionURI
VAR1 ?prodURI
Var:VAR1
?prodURI
VarOrTerm:Var
?prodURI
GraphNode:VarOrTerm
?prodURI
Object:GraphNode
?prodURI
("," Object)*:
"OPTIONAL" OPTIONAL
ObjectList:Object("," Object)*
?prodURI
Verb ObjectList:VerbObjectList
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:VerbObjectList( <;> Verb ObjectList? )*(4)
atest:DAWGfacet; rdfs:comment ?example; test:order ?order; test:production ?prodName; test:productionURI ?prodURI
TriplesSameSubject:VarOrTermPropertyListNotEmpty
?testa 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? )*:
<{> {
VAR1 ?test
Var:VAR1
?test
VarOrTerm:Var
?test
PNAME_LN test:yaccProduction
PrefixedName:PNAME_LN
test:yaccProduction
IRIref:PrefixedName
test:yaccProduction
VarOrIRIref:IRIref
test:yaccProduction
Verb:VarOrIRIref
test:yaccProduction
VAR1 ?yaccProd
Var:VAR1
?yaccProd
VarOrTerm:Var
?yaccProd
GraphNode:VarOrTerm
?yaccProd
Object:GraphNode
?yaccProd
("," Object)*:
<}> }
ObjectList:Object("," Object)*
?yaccProd
( <;> Verb ObjectList? )*:
PropertyListNotEmpty:VerbObjectList( <;> Verb ObjectList? )*
test:yaccProduction?yaccProd
TriplesSameSubject:VarOrTermPropertyListNotEmpty
?testtest: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" 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 }
<{> {
VAR1 ?test
Var:VAR1
?test
VarOrTerm:Var
?test
PNAME_LN test:rule
PrefixedName:PNAME_LN
test:rule
IRIref:PrefixedName
test:rule
VarOrIRIref:IRIref
test:rule
Verb:VarOrIRIref
test:rule
VAR1 ?rule
Var:VAR1
?rule
VarOrTerm:Var
?rule
GraphNode:VarOrTerm
?rule
Object:GraphNode
?rule
("," Object)*:
<}> }
ObjectList:Object("," Object)*
?rule
( <;> Verb ObjectList? )*:
PropertyListNotEmpty:VerbObjectList( <;> Verb ObjectList? )*
test:rule?rule
TriplesSameSubject:VarOrTermPropertyListNotEmpty
?testtest: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" 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 }
<{> {
VAR1 ?test
Var:VAR1
?test
VarOrTerm:Var
?test
PNAME_LN test:regexp
PrefixedName:PNAME_LN
test:regexp
IRIref:PrefixedName
test:regexp
VarOrIRIref:IRIref
test:regexp
Verb:VarOrIRIref
test:regexp
VAR1 ?regexp
Var:VAR1
?regexp
VarOrTerm:Var
?regexp
GraphNode:VarOrTerm
?regexp
Object:GraphNode
?regexp
("," Object)*:
<}> }
ObjectList:Object("," Object)*
?regexp
( <;> Verb ObjectList? )*:
PropertyListNotEmpty:VerbObjectList( <;> Verb ObjectList? )*
test:regexp?regexp
TriplesSameSubject:VarOrTermPropertyListNotEmpty
?testtest: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 ?prodURIOPTIONAL { ?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 } }
"ORDER" ORDER
"BY" BY
VAR1 ?order
Var:VAR1
?order
Constraint | Var:Var
?order
OrderCondition:Constraint | Var
?order
(OrderCondition)+:OrderCondition
?order
OrderClause:"ORDER""BY"(OrderCondition)+
ORDERBY?order
(OrderClause)?:OrderClause
ORDER BY ?order
(LimitOffsetClauses)?:
SolutionModifier:(OrderClause)?(LimitOffsetClauses)?
ORDER BY ?order
SelectQuery:"SELECT"("DISTINCT" | "REDUCED")?( Var+ | Q<*> )(DatasetClause)*WhereClauseSolutionModifier
SELECT?test ?example ?prodName ?prodURI ?yaccProd ?rule ?regexpWHERE { ?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:PrologueSelectQuery | 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:


    

Edit this grammar.

with seed . with limit . and ascii weight (0-100).

Hide grammar.

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 )
| ( Constraint | Var )
[18]    LimitClause    ::=    "LIMIT" INTEGER
[19]    OffsetClause    ::=    "OFFSET" INTEGER
[20]    GroupGraphPattern    ::=    "{" (TriplesBlock)? (( ( GraphPatternNotTriples | Filter ) (".")? (TriplesBlock)? ))* "}"
[21]    TriplesBlock    ::=    TriplesSameSubject (( "." (TriplesBlock)? ))?
[22]    GraphPatternNotTriples    ::=    OptionalGraphPattern
| GroupOrUnionGraphPattern
| GraphGraphPattern
[23]    OptionalGraphPattern    ::=    "OPTIONAL" GroupGraphPattern
[24]    GraphGraphPattern    ::=    "GRAPH" VarOrIRIref GroupGraphPattern
[25]    GroupOrUnionGraphPattern    ::=    GroupGraphPattern (( "UNION" GroupGraphPattern ))*
[26]    Filter    ::=    "FILTER" Constraint
[27]    Constraint    ::=    BrackettedExpression
| BuiltInCall
| FunctionCall
[28]    FunctionCall    ::=    IRIref ArgList
[29]    ArgList    ::=    ( NIL | "(" Expression (( "," Expression ))* ")" )
[30]    ConstructTemplate    ::=    "{" (ConstructTriples)? "}"
[31]    ConstructTriples    ::=    TriplesSameSubject (( "." (ConstructTriples)? ))?
[32]    TriplesSameSubject    ::=    VarOrTerm PropertyListNotEmpty
| TriplesNode PropertyList
[33]    PropertyListNotEmpty    ::=    Verb ObjectList (( ";" (( Verb ObjectList ))? ))*
[34]    PropertyList    ::=    (PropertyListNotEmpty)?
[35]    ObjectList    ::=    Object (( "," Object ))*
[36]    Object    ::=    GraphNode
[37]    Verb    ::=    VarOrIRIref
| "a"
[38]    TriplesNode    ::=    Collection
| BlankNodePropertyList
[39]    BlankNodePropertyList    ::=    "[" PropertyListNotEmpty "]"
[40]    Collection    ::=    "(" (GraphNode)+ ")"
[41]    GraphNode    ::=    VarOrTerm
| TriplesNode
[42]    VarOrTerm    ::=    Var
| GraphTerm
[43]    VarOrIRIref    ::=    Var
| IRIref
[44]    Var    ::=    VAR1
| VAR2
[45]    GraphTerm    ::=    IRIref
| RDFLiteral
| NumericLiteral
| BooleanLiteral
| BlankNode
| NIL
[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
| "+" PrimaryExpression
| "-" PrimaryExpression
| PrimaryExpression
[55]    PrimaryExpression    ::=    BrackettedExpression
| BuiltInCall
| IRIrefOrFunction
| RDFLiteral
| NumericLiteral
| BooleanLiteral
| Var
[56]    BrackettedExpression    ::=    "(" Expression ")"
[57]    BuiltInCall    ::=    "STR" "(" Expression ")"
| "LANG" "(" Expression ")"
| "LANGMATCHES" "(" Expression "," Expression ")"
| "DATATYPE" "(" Expression ")"
| "BOUND" "(" Var ")"
| "sameTerm" "(" Expression "," Expression ")"
| "isIRI" "(" Expression ")"
| "isURI" "(" Expression ")"
| "isBLANK" "(" Expression ")"
| "isLITERAL" "(" Expression ")"
| RegexExpression
[58]    RegexExpression    ::=    "REGEX" "(" Expression "," Expression (( "," Expression ))? ")"
[59]    IRIrefOrFunction    ::=    IRIref (ArgList)?
[60]    RDFLiteral    ::=    String (( LANGTAG | ( "^^" IRIref ) ))?
[61]    NumericLiteral    ::=    NumericLiteralUnsigned
| NumericLiteralPositive
| NumericLiteralNegative
[62]    NumericLiteralUnsigned    ::=    INTEGER
| DECIMAL
| DOUBLE
[63]    NumericLiteralPositive    ::=    INTEGER_POSITIVE
| DECIMAL_POSITIVE
| DOUBLE_POSITIVE
[64]    NumericLiteralNegative    ::=    INTEGER_NEGATIVE
| DECIMAL_NEGATIVE
| DOUBLE_NEGATIVE
[65]    BooleanLiteral    ::=    "true"
| "false"
[66]    String    ::=    STRING_LITERAL1
| STRING_LITERAL2
| STRING_LITERAL_LONG1
| STRING_LITERAL_LONG2
[67]    IRIref    ::=    IRI_REF
| PrefixedName
[68]    PrefixedName    ::=    PNAME_LN
| PNAME_NS
[69]    BlankNode    ::=    BLANK_NODE_LABEL
| ANON
[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])*
| "." ([0-9])+
[79]    <DOUBLE>    ::=    ([0-9])+ "." ([0-9])* EXPONENT
| "." (( [0-9] ))+ EXPONENT
| (( [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>    ::=    " "
| "\t"
| "\r"
| "\n"
[94]    <ANON>    ::=    "[" (WS)* "]"
[95]    <PN_CHARS_BASE>    ::=    [A-Z]
| [a-z]
| [#00C0-#00D6]
| [#00D8-#00F6]
| [#00F8-#02FF]
| [#0370-#037D]
| [#037F-#1FFF]
| [#200C-#200D]
| [#2070-#218F]
| [#2C00-#2FEF]
| [#3001-#D7FF]
| [#F900-#FDCF]
| [#FDF0-#FFFD]
| [#10000-#EFFFF]
[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
| "-"
| [0-9]
| #00B7
| [#0300-#036F]
| [#203F-#2040]
[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])+
| "#" ([^\r\n])*

Eric Prud'hommeaux <eric+yacker@w3.org>
$Id: yacker,v 1.82 2008/04/12 04:10:11 eric Exp $
$Id: Presenter.pm,v 1.39 2007/12/21 09:35:46 eric Exp $

Valid XHTML 1.0!