@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
@prefix mf:     <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
@prefix mfx:    <http://www.openrdf.org/test-manifest-extensions#> .
@prefix qt:     <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> .

<>  rdf:type mf:Manifest ;
    rdfs:comment "Sesame SeRQL parser test cases" ;
    mf:entries
    ( 
      # basic graph path expression syntax: positive tests
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-000: simple basic path expression with three variables" ;
         rdfs:label "syntax-000" ;
         mf:action  <syntax-000.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-001: simple basic path expression with one resource URI as subject" ;
         rdfs:label "syntax-001" ;
         mf:action  <syntax-001.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-002: simple basic path expression with a plain literal as object" ;
         rdfs:label "syntax-002" ;
         mf:action  <syntax-002.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-003: simple basic path expression with a URI as predicate" ;
         rdfs:label "syntax-003" ;
         mf:action  <syntax-003.serql> ;
         mf:result  mfx:Correct
      ]
      # basic graph path expression syntax: negative tests
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-004: simple basic path expression: no brackets around object" ;
         rdfs:label "syntax-004" ;
         mf:action  <syntax-004.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-005: simple basic path expression: semicolumn without followup" ;
         rdfs:label "syntax-005" ;
         mf:action  <syntax-005.serql> ;
         mf:result  mfx:ParseError
      ]
      # projection syntax: positive tests
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-006: projection using asterisk" ;
         rdfs:label "syntax-006" ;
         mf:action  <syntax-006.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-007: projection of all variables in pattern, in order" ;
         rdfs:label "syntax-007" ;
         mf:action  <syntax-007.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-008: projection of all variables in pattern, reordered" ;
         rdfs:label "syntax-008" ;
         mf:action  <syntax-008.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-009: projection of one variable" ;
         rdfs:label "syntax-009" ;
         mf:action  <syntax-009.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-010: projection using a label function" ;
         rdfs:label "syntax-010" ;
         mf:action  <syntax-010.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-021: projection using an uppercase label function" ;
         rdfs:label "syntax-021" ;
         mf:action  <syntax-021.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-013: empty projection" ;
         rdfs:label "syntax-013" ;
         mf:action  <syntax-013.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-014: projection; alias all variables" ;
         rdfs:label "syntax-014" ;
         mf:action  <syntax-014.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-015: projection; alias datatype function" ;
         rdfs:label "syntax-015" ;
         mf:action  <syntax-015.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-025: projection; string constant" ;
         rdfs:label "syntax-025" ;
         mf:action  <syntax-025.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-026: projection; URI constant" ;
         rdfs:label "syntax-026" ;
         mf:action  <syntax-026.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-019: projection; alias for function duplicates name of other function";
         rdfs:label "syntax-019" ;
         mf:action  <syntax-019.serql> ;
         mf:result  mfx:Correct
      ]
      # projection syntax: negative tests
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-011: projection without commas" ;
         rdfs:label "syntax-011" ;
         mf:action  <syntax-011.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-012: projection combining asterisk and variables" ;
         rdfs:label "syntax-012" ;
         mf:action  <syntax-012.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-016: projection; duplicate variable";
         rdfs:label "syntax-016" ;
         mf:action  <syntax-016.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-017: projection; duplicate alias for variables";
         rdfs:label "syntax-017" ;
         mf:action  <syntax-017.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-018: projection; duplicate alias for function";
         rdfs:label "syntax-018" ;
         mf:action  <syntax-018.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-020: projection; uppercase and lowercase label functions";
         rdfs:label "syntax-020" ;
         mf:action  <syntax-020.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-022: projection of unselected variable";
         rdfs:label "syntax-022" ;
         mf:action  <syntax-022.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-023: projection of function on unselected variable";
         rdfs:label "syntax-023" ;
         mf:action  <syntax-023.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-024: projection lowercase var vs. uppercase var in selection";
         rdfs:label "syntax-024" ;
         mf:action  <syntax-024.serql> ;
         mf:result  mfx:ParseError
      ]
      # chained and branched path expressions; positive tests
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-027: simple chained path expression";
         rdfs:label "syntax-027" ;
         mf:action  <syntax-027.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-028: simple branched path expression";
         rdfs:label "syntax-028" ;
         mf:action  <syntax-028.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-029: chained and branched path expression";
         rdfs:label "syntax-029" ;
         mf:action  <syntax-029.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-030: several path expressions";
         rdfs:label "syntax-030" ;
         mf:action  <syntax-030.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-031: several path expressions with some fixed values";
         rdfs:label "syntax-031" ;
         mf:action  <syntax-031.serql> ;
         mf:result  mfx:Correct
      ]
      # namespace declarations 
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-032: default namespaces need not be declared";
         rdfs:label "syntax-032" ;
         mf:action  <syntax-032.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-033: default namespaces can be overridden";
         rdfs:label "syntax-033" ;
         mf:action  <syntax-033.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-034: USING and NAMESPACE keywords appearing in literal in graph pattern";
         rdfs:label "syntax-034" ;
         mf:action  <syntax-034.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-035: namespace declaration can not be a literal";
         rdfs:label "syntax-035" ;
         mf:action  <syntax-035.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-036: namespace declaration can not be qname itself";
         rdfs:label "syntax-036" ;
         mf:action  <syntax-036.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-037: non-standard namespace prefixes must be declared";
         rdfs:label "syntax-037" ;
         mf:action  <syntax-037.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-038: USING NAMESPACE clause may not be empty";
         rdfs:label "syntax-038" ;
         mf:action  <syntax-038.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-039: empty query";
         rdfs:label "syntax-039" ;
         mf:action  <syntax-039.serql> ;
         mf:result  mfx:ParseError
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-040: only SELECT clause";
         rdfs:label "syntax-040" ;
         mf:action  <syntax-040.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-041: xsd:string cast in SELECT clause";
         rdfs:label "syntax-041" ;
         mf:action  <syntax-041.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-042: xsd:string cast in WHERE clause";
         rdfs:label "syntax-042" ;
         mf:action  <syntax-042.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-043: IN operator with fixed value list";
         rdfs:label "syntax-043" ;
         mf:action  <syntax-043.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-044: SameTerm operator";
         rdfs:label "syntax-044" ;
         mf:action  <syntax-044.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-045: Str function";
         rdfs:label "syntax-045" ;
         mf:action  <syntax-045.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-046: LangMatches function";
         rdfs:label "syntax-046" ;
         mf:action  <syntax-046.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-047: Regex function";
         rdfs:label "syntax-047" ;
         mf:action  <syntax-047.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-048: Select reduced";
         rdfs:label "syntax-048" ;
         mf:action  <syntax-048.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-049: Construct reduced";
         rdfs:label "syntax-049" ;
         mf:action  <syntax-049.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-050: Order by";
         rdfs:label "syntax-050" ;
         mf:action  <syntax-050.serql> ;
         mf:result  mfx:Correct
      ]
      [  rdf:type   mf:TestSyntax ;
         mf:name    "syntax-051: Path expressions union";
         rdfs:label "syntax-051" ;
         mf:action  <syntax-051.serql> ;
         mf:result  mfx:Correct
      ]
     ).
