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>


  </Prologue>
  <AskQuery>
    <yacker:implicit-terminal>ASK</yacker:implicit-terminal>

    <WhereClause>

      <GroupGraphPattern>
        <yacker:implicit-terminal>LCURLEY</yacker:implicit-terminal>

        <GraphPatternNotTriples>
          <OptionalGraphPattern>
            <yacker:implicit-terminal>OPTIONAL</yacker:implicit-terminal>
            <GroupGraphPattern>
              <yacker:implicit-terminal>LCURLEY</yacker:implicit-terminal>
              <TriplesBlock>
                <TriplesSameSubject>
                  <VarOrTerm>
                    <Var>
                      <VAR1>?s2</VAR1>
                    </Var>
                  </VarOrTerm>
                  <PropertyListNotEmpty>
                    <Verb>
                      <VarOrIRIref>
                        <Var>
                          <VAR1>?p2</VAR1>
                        </Var>
                      </VarOrIRIref>
                    </Verb>
                    <ObjectList>
                      <Object>
                        <GraphNode>
                          <VarOrTerm>
                            <Var>
                              <VAR1>?o2</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>?s3</VAR1>
                    </Var>
                  </VarOrTerm>
                  <PropertyListNotEmpty>
                    <Verb>
                      <VarOrIRIref>
                        <Var>
                          <VAR1>?p3</VAR1>
                        </Var>
                      </VarOrIRIref>
                    </Verb>
                    <ObjectList>
                      <Object>
                        <GraphNode>
                          <VarOrTerm>
                            <Var>
                              <VAR1>?p3</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>
  </AskQuery>
</Query>

Trace:

"ASK" ASK
(BaseDecl)?:
(PrefixDecl)*:
Prologue:(BaseDecl)?(PrefixDecl)*
(DatasetClause)*:
<{> {
("WHERE")?:
"OPTIONAL" OPTIONAL
(TriplesBlock)?:
( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*:
<{> {
VAR1 ?s2
Var:VAR1
?s2
VarOrTerm:Var
?s2
VAR1 ?p2
Var:VAR1
?p2
VarOrIRIref:Var
?p2
Verb:VarOrIRIref
?p2
VAR1 ?o2
Var:VAR1
?o2
VarOrTerm:Var
?o2
GraphNode:VarOrTerm
?o2
Object:GraphNode
?o2
("," Object)*:
<}> }
ObjectList:Object("," Object)*
?o2
( <;> Verb ObjectList? )*:
PropertyListNotEmpty:VerbObjectList( <;> Verb ObjectList? )*
?p2?o2
TriplesSameSubject:VarOrTermPropertyListNotEmpty
?s2?p2 ?o2
( <.> TriplesBlock? )?:
TriplesBlock:TriplesSameSubject( <.> TriplesBlock? )?
?s2 ?p2 ?o2
(TriplesBlock)?:TriplesBlock
?s2 ?p2 ?o2
( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*:
GroupGraphPattern:"{"(TriplesBlock)?( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*"}"
{?s2 ?p2 ?o2}
OptionalGraphPattern:"OPTIONAL"GroupGraphPattern
OPTIONAL{ ?s2 ?p2 ?o2 }
GraphPatternNotTriples:OptionalGraphPattern
OPTIONAL { ?s2 ?p2 ?o2 }
GraphPatternNotTriples | Filter:GraphPatternNotTriples
OPTIONAL { ?s2 ?p2 ?o2 }
"OPTIONAL" OPTIONAL
(".")?:
(TriplesBlock)?:
( GraphPatternNotTriples | QFilter <.>? TriplesBlock? ):GraphPatternNotTriples | Filter(".")?(TriplesBlock)?
OPTIONAL { ?s2 ?p2 ?o2 }
( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*:( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )(3)
OPTIONAL { ?s2 ?p2 ?o2 }
<{> {
VAR1 ?s3
Var:VAR1
?s3
VarOrTerm:Var
?s3
VAR1 ?p3
Var:VAR1
?p3
VarOrIRIref:Var
?p3
Verb:VarOrIRIref
?p3
VAR1 ?p3
Var:VAR1
?p3
VarOrTerm:Var
?p3
GraphNode:VarOrTerm
?p3
Object:GraphNode
?p3
("," Object)*:
<}> }
ObjectList:Object("," Object)*
?p3
( <;> Verb ObjectList? )*:
PropertyListNotEmpty:VerbObjectList( <;> Verb ObjectList? )*
?p3?p3
TriplesSameSubject:VarOrTermPropertyListNotEmpty
?s3?p3 ?p3
( <.> TriplesBlock? )?:
TriplesBlock:TriplesSameSubject( <.> TriplesBlock? )?
?s3 ?p3 ?p3
(TriplesBlock)?:TriplesBlock
?s3 ?p3 ?p3
( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*:
GroupGraphPattern:"{"(TriplesBlock)?( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*"}"
{?s3 ?p3 ?p3}
OptionalGraphPattern:"OPTIONAL"GroupGraphPattern
OPTIONAL{ ?s3 ?p3 ?p3 }
GraphPatternNotTriples:OptionalGraphPattern
OPTIONAL { ?s3 ?p3 ?p3 }
GraphPatternNotTriples | Filter:GraphPatternNotTriples
OPTIONAL { ?s3 ?p3 ?p3 }
<}> }
(".")?:
(TriplesBlock)?:
( GraphPatternNotTriples | QFilter <.>? TriplesBlock? ):GraphPatternNotTriples | Filter(".")?(TriplesBlock)?
OPTIONAL { ?s3 ?p3 ?p3 }
( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*:( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )(3)
OPTIONAL { ?s2 ?p2 ?o2 }OPTIONAL { ?s3 ?p3 ?p3 }
GroupGraphPattern:"{"(TriplesBlock)?( GraphPatternNotTriples | QFilter <.>? TriplesBlock? )*(2)"}"
{OPTIONAL { ?s2 ?p2 ?o2 }OPTIONAL { ?s3 ?p3 ?p3 }}
WhereClause:("WHERE")?GroupGraphPattern
{ OPTIONAL { ?s2 ?p2 ?o2 } OPTIONAL { ?s3 ?p3 ?p3 } }
AskQuery:"ASK"(DatasetClause)*WhereClause
ASK{ OPTIONAL { ?s2 ?p2 ?o2 } OPTIONAL { ?s3 ?p3 ?p3 } }
SelectQuery | ConstructQuery | DescribeQuery | AskQuery:AskQuery
ASK { OPTIONAL { ?s2 ?p2 ?o2 } OPTIONAL { ?s3 ?p3 ?p3 } }
Query:PrologueSelectQuery | ConstructQuery | DescribeQuery | AskQuery
ASK { OPTIONAL { ?s2 ?p2 ?o2 } OPTIONAL { ?s3 ?p3 ?p3 } }

Input some text to test:

make: Entering directory `/usr/local/yacker/W3C/Grammar/bin/uploads/SPARQL'
yapp -v -s -o SPARQL.pm SPARQL.yp
make: Leaving directory `/usr/local/yacker/W3C/Grammar/bin/uploads/SPARQL'

Edit this grammar.

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

Show grammar.


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!