@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc:     <http://purl.org/dc/elements/1.1/> .
@prefix :       <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .

## A Manifest is typically a list (RDF Collection) of manifest entries.
## The :entries property has an object of the list.
## There may be more than one list per file.

:   rdfs:comment     "Manifest vocabulary for test cases" ;
    dc:creator       "Andy Seaborne" ;
    dc:subject       "" ;
    dc:publisher     "W3C RDF Data Access Working Group" ;
    dc:publisher     "W3C SPARQL Working Group" ;
    dc:title         "Test case manifest vocabulary" ;
    dc:description   "Test case manifest vocabulary" ;
    dc:date          "2004-07" ;
    dc:date          "2010-08" ;
    dc:format        "RDF" ;
    dc:identifier    : ;
    .

## ---- Class declarations ----

:Manifest rdf:type rdfs:Class ;
    rdfs:comment "The class of manifests" .

:ManifestEntry rdf:type rdfs:Class ;
    rdfs:comment "One entry in rdf:type list of entries" .

## ---- Property declarations for the manifest ----

:include rdf:type rdf:Property ;
    rdfs:comment "Connects the manifest resource to rdf:type list of manifests" ;
    rdfs:domain	 :Manifest ;
    rdfs:range   rdf:List ;
    .

:entries rdf:type rdf:Property ;
    rdfs:comment "Connects the manifest resource to rdf:type list of entries" ;
    rdfs:domain	 :Manifest ;
    rdfs:range   rdf:List ;
    .
	
## ---- Property declarations for each test ----

:name rdf:type rdf:Property ;
    rdfs:comment "Optional name of this entry" ;
    rdfs:domain	 :ManifestEntry ;
    rdfs:range   rdfs:Literal ;
    .	
    
:action rdf:type rdf:Property ;
    rdfs:comment "Action to perform" ;
    rdfs:domain	 :ManifestEntry ;
    # rdfs:range   ?? ;
    .	

:result rdf:type rdf:Property ;
    rdfs:comment "The expected outcome" ;
    rdfs:domain	 :ManifestEntry ;
    # rdfs:range   ?? ;
    .	

:result rdf:type rdf:Property ;
    rdfs:comment "The test status" ;
    rdfs:domain	 :ManifestEntry ;
    rdfs:range   :TestStatus ;
    .

:requires rdf:type rdf:Property ;
    rdfs:comment "Required functionality for execution of this test" ;
    rdfs:domain :ManifestEntry ;
    rdfs:range	:Requirement .

:notable rdf:type rdf:Property ;
    rdfs:comment "Notable feature of this test (advisory)" ;
    rdfs:domain :ManifestEntry .

## ---- Test Case Type ---

:PositiveSyntaxTest rdf:type rdfs:Class ;
      rdfs:label "Positive Syntax Test" ;
      rdfs:comment """A type of test specifically for syntax testing. Syntax
      tests are not required to have an associated result, only an
      action.""" .

:NegativeSyntaxTest rdf:type rdfs:Class ;
      rdfs:label "Negative Syntax Test" ;
      rdfs:comment """A type of test specifically for syntax testing. Syntax
      tests are not required to have an associated result, only an
      action. Negative syntax tests are tests of which the result should
      be a parser error.""" .

:QueryEvaluationTest rdf:type rdfs:Class ;
      rdfs:label "Query Evaluation Test" ;
      rdfs:comment """A type of test specifically for query evaluation
      testing. Query evaluation tests are required to have an associated
      input dataset, a query, and an expected output dataset.""" .

:ReducedCardinalityTest  rdf:type rdfs:Class ;
      rdfs:label "Query Evaluation Test (REDUCDED)" ;
      rdfs:comment
"""The given mf:result for a mf:ReducedCardinalityTest is the results as 
if the REDUCED keyword were omitted. To pass a 
mf:ReducedCardinalityTest, an implementation must produce a result set 
with each solution in the expected results appearing at least once and 
no more than the number of times it appears in the expected results. Of 
course, there must also be no results produced that are not in the 
expected results.""" .

## ---- Test Statuses ----

:TestStatus rdf:type rdfs:Class ;
    rdfs:comment "Statuses a test can have" ;
    .

:proposed rdf:type :TestStatus ;
    rdfs:label "proposed" ;
    .

:accepted rdf:type :TestStatus ;
    rdfs:label "accepted" ;
    .

:rejected rdf:type :TestStatus ;
    rdfs:label "rejected" ;
    .

## ---- Required functions ----

:Requirement rdf:type rdfs:Class ;
     rdfs:comment "Requirements for a  particular test" .

:Notable rdf:type rdfs:Class ;
     rdfs:comment "Requirements for a  particular test" .


:XsdDateOperations	rdf:type :Requirement ;
    rdfs:comment "Tests that require xsd:date operations" .
	
:StringSimpleLiteralCmp	rdf:type :Requirement ;
    rdfs:comment "Tests that require simple literal is the same value as an xsd:string of the same lexicial form" .
    
:KnownTypesDefault2Neq	rdf:type :Requirement ;
    rdfs:comment "Values in disjoint value spaces are not equal" .
    
:LangTagAwareness	rdf:type :Requirement ;
    rdfs:comment "Tests that require language tag handling in FILTERs" .

## ---- Notable features ----

:IllFormedLiterals	rdf:type :Notable ;
    rdfs:comment "Tests that involve lexical forms which are illegal for the datatype" .