This is an automated email from the ASF dual-hosted git repository. afs pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 44572a007732e6efef4bc75d6ab411f282999d62 Author: Andy Seaborne <[email protected]> AuthorDate: Fri Jun 19 23:26:41 2026 +0100 GH-4012: Adjust to rdf-tests changes --- .../riot/system/streammgr/JenaIOEnvironment.java | 5 +- .../sparql/vocabulary/ResultSetGraphVocab.java | 93 +++-- .../apache/jena/sparql/vocabulary/TestDAWG.java | 158 ++++---- .../sparql/vocabulary/TestManifestUpdate_11.java | 90 ++--- .../jena/sparql/vocabulary/TestManifestX.java | 68 ++-- .../jena/sparql/vocabulary/TestManifest_11.java | 60 +-- .../jena/sparql/vocabulary/TestManifest_12.java | 10 +- .../src/main/java/org/apache/jena/system/G.java | 8 + .../org/apache/jena/arq/junit/OmittedTest.java | 3 +- .../apache/jena/arq/junit/manifest/Manifest.java | 32 +- .../jena/arq/junit/manifest/ManifestEntry.java | 94 ++++- .../org/apache/jena/arq/junit/riot/RiotTests.java | 7 +- .../apache/jena/arq/junit/riot/VocabLangRDF.java | 5 +- .../SparqlSpecVersion.java} | 39 +- .../apache/jena/arq/junit/sparql/SparqlTests.java | 159 +++++--- .../jena/arq/junit/sparql/tests/QueryEvalTest.java | 28 +- .../arq/junit/sparql/tests/SerializationTest.java | 2 +- .../jena/arq/junit/sparql/tests/SparqlTestLib.java | 4 - .../arq/junit/sparql/tests/UpdateEvalTest.java | 10 +- .../org/apache/jena/sparql/Scripts_SPARQL.java | 2 +- .../testing/ARQ/PropertyFunctions/manifest.ttl | 346 +++++++++------- jena-arq/testing/ARQ/Scripting/manifest.ttl | 44 ++- jena-arq/testing/ARQ/ValueTesting/manifest.ttl | 101 +++-- .../java/org/apache/jena/util/LocationMapper.java | 440 +++++++++------------ .../org/apache/jena/vocabulary/TestManifest.java | 118 +++--- 25 files changed, 1026 insertions(+), 900 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/JenaIOEnvironment.java b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/JenaIOEnvironment.java index 5b43234823..e0d51dc929 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/JenaIOEnvironment.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/system/streammgr/JenaIOEnvironment.java @@ -35,8 +35,9 @@ import org.apache.jena.vocabulary.LocationMappingVocab; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** Code for using the general facilities of the location mapper/ filemanager subsystem - * and set up for Jena usage. e.g. find a location mapper with RDf description. +/** + * Code for using the general facilities of the location mapper/ filemanager subsystem + * and set up for Jena usage. e.g. find a location mapper with RDf description. */ public class JenaIOEnvironment { diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/ResultSetGraphVocab.java b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/ResultSetGraphVocab.java index 2a4d1c8a5c..f986ad34c9 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/ResultSetGraphVocab.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/ResultSetGraphVocab.java @@ -21,63 +21,58 @@ package org.apache.jena.sparql.vocabulary ; -import org.apache.jena.rdf.model.Model ; -import org.apache.jena.rdf.model.ModelFactory ; import org.apache.jena.rdf.model.Property ; import org.apache.jena.rdf.model.Resource ; - +import org.apache.jena.rdf.model.ResourceFactory; + /** - * Vocabulary definitions from result-set.n3 - * @author Auto-generated by schemagen on 10 Jun 2006 18:47 + * Vocabulary definitions from result-set.n3 */ public class ResultSetGraphVocab { - /** <p>The RDF model that holds the vocabulary terms</p> */ - private static Model m_model = ModelFactory.createDefaultModel(); - - /** <p>The namespace of the vocabulary as a string</p> */ + /** The namespace of the vocabulary as a string */ public static final String NS = "http://www.w3.org/2001/sw/DataAccess/tests/result-set#"; - - /** <p>The namespace of the vocabulary as a string</p> + + /** The namespace of the vocabulary as a string * @see #NS */ public static String getURI() {return NS;} - - /** <p>The namespace of the vocabulary as a resource</p> */ - public static final Resource NAMESPACE = m_model.createResource( NS ); - - /** <p>Boolean result</p> */ - public static final Property p_boolean = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#boolean" ); - - /** <p>Variable name</p> */ - public static final Property value = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#value" ); - - /** <p>Variable name</p> */ - public static final Property variable = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#variable" ); - - /** <p>Index for ordered result sets</p> */ - public static final Property index = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#index" ); - - /** <p>Multi-occurrence property associating a result solution (row) resource to - * a single (variable, value) binding</p> + + /** The namespace of the vocabulary as a resource */ + public static final Resource NAMESPACE = ResourceFactory.createResource( NS ); + + /** Boolean result */ + public static final Property p_boolean = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#boolean" ); + + /** Variable name */ + public static final Property value = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#value" ); + + /** Variable name */ + public static final Property variable = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#variable" ); + + /** Index for ordered result sets */ + public static final Property index = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#index" ); + + /** Multi-occurrence property associating a result solution (row) resource to + * a single (variable, value) binding */ - public static final Property binding = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#binding" ); - - /** <p>MultivaluedName of a variable used in the result set</p> */ - public static final Property resultVariable = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#resultVariable" ); - - /** <p>Number of rows in the result table</p> */ - public static final Property size = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#size" ); - - public static final Property solution = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#solution" ); - - /** <p>Class of things that represent a single (variable, value) pairing</p> */ - public static final Resource ResultBinding = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#ResultBinding" ); - - /** <p>Class of things that represent a row in the result table - one solution to - * the query</p> + public static final Property binding = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#binding" ); + + /** MultivaluedName of a variable used in the result set */ + public static final Property resultVariable = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#resultVariable" ); + + /** Number of rows in the result table */ + public static final Property size = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#size" ); + + public static final Property solution = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#solution" ); + + /** Class of things that represent a single (variable, value) pairing */ + public static final Resource ResultBinding = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#ResultBinding" ); + + /** Class of things that represent a row in the result table - one solution to + * the query */ - public static final Resource ResultSolution = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#ResultSolution" ); - - /** <p>Class of things that represent the result set</p> */ - public static final Resource ResultSet = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#ResultSet" ); - + public static final Resource ResultSolution = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#ResultSolution" ); + + /** Class of things that represent the result set */ + public static final Resource ResultSet = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/result-set#ResultSet" ); + } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestDAWG.java b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestDAWG.java index 6ede12a362..8ef6ff1fcb 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestDAWG.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestDAWG.java @@ -21,96 +21,90 @@ package org.apache.jena.sparql.vocabulary; -/* CVS $Id: TestDAWG.java,v 1.1 2005/02/09 14:59:46 andy_seaborne Exp $ */ - -import org.apache.jena.rdf.model.Model ; -import org.apache.jena.rdf.model.ModelFactory ; import org.apache.jena.rdf.model.Property ; import org.apache.jena.rdf.model.Resource ; - +import org.apache.jena.rdf.model.ResourceFactory; + /** - * Vocabulary definitions from test-dawg.n3 - * @author Auto-generated by schemagen on 26 Jul 2004 15:01 + * Vocabulary definitions from test-dawg.n3 + * @author Auto-generated by schemagen on 26 Jul 2004 15:01 */ public class TestDAWG { - /** <p>The RDF model that holds the vocabulary terms</p> */ - private static Model m_model = ModelFactory.createDefaultModel(); - - /** <p>The namespace of the vocabulary as a string ({@value})</p> */ + /** The namespace of the vocabulary as a string ({@value}) */ public static final String NS = "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#"; - - /** <p>The namespace of the vocabulary as a string</p> + + /** The namespace of the vocabulary as a string * @see #NS */ public static String getURI() {return NS;} - - /** <p>The namespace of the vocabulary as a resource</p> */ - public static final Resource NAMESPACE = m_model.createResource( NS ); - - public static final Property queryForm = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryForm" ); - - /** <p>Indicates that while the test should pass, it may generate a warning.</p> */ - public static final Property warning = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#warning" ); - - /** <p>Contains a pointer to the associated issue on the RDF Data Access Working - * Group Tracking document.</p> + + /** The namespace of the vocabulary as a resource */ + public static final Resource NAMESPACE = ResourceFactory.createResource( NS ); + + public static final Property queryForm = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryForm" ); + + /** Indicates that while the test should pass, it may generate a warning. */ + public static final Property warning = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#warning" ); + + /** Contains a pointer to the associated issue on the RDF Data Access Working + * Group Tracking document. */ - public static final Property issue = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#issue" ); - - /** <p>Contains a reference to the minutes of the RDF Data Access Working Group where - * the test case status was last changed.</p> + public static final Property issue = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#issue" ); + + /** Contains a reference to the minutes of the RDF Data Access Working Group where + * the test case status was last changed. */ - public static final Property approval = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#approval" ); - - public static final Property resultForm = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#resultForm" ); - - /** <p>A human-readable summary of the test case.</p> */ - public static final Property description = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#description" ); - - public static final Property status = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#status" ); - - /** <p>Super class of all test status classes</p> */ - public static final Resource Status = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Status" ); - - /** <p>Super class of all result forms</p> */ - public static final Resource ResultForm = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#ResultForm" ); - - /** <p>Super class of all query forms</p> */ - public static final Resource QueryForm = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#QueryForm" ); - - /** <p>Class of result expected to be from a SELECT query</p> */ - public static final Resource resultResultSet = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#resultResultSet" ); - - /** <p>Class of queries that are seeking a constructed graph</p> */ - public static final Resource queryConstruct = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryConstruct" ); - - /** <p>Class of queries that are seeking a yes/no question</p> */ - public static final Resource queryAsk = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryAsk" ); - - /** <p>Class of result expected to be a graph</p> */ - public static final Resource resultGraph = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#resultGraph" ); - - /** <p>Class of tests that have not been classified</p> */ - public static final Resource NotClassified = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#NotClassified" ); - - /** <p>Class of result expected to be a boolean</p> */ - public static final Resource booleanResult = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#booleanResult" ); - - /** <p>Class of tests that are Approved</p> */ - public static final Resource Approved = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Approved" ); - - /** <p>Class of tests that have been Withdrawn</p> */ - public static final Resource Withdrawn = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Withdrawn" ); - - /** <p>Class of tests that are Obsolete</p> */ - public static final Resource Obsoleted = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Obsoleted" ); - - /** <p>Class of queries that are seeking a descriptive graph</p> */ - public static final Resource queryDescribe = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryDescribe" ); - - /** <p>Class of queries that are seeking variable bindings</p> */ - public static final Resource querySelect = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#querySelect" ); - - /** <p>Class of tests that are Rejected</p> */ - public static final Resource Rejected = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Rejected" ); - + public static final Property approval = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#approval" ); + + public static final Property resultForm = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#resultForm" ); + + /** A human-readable summary of the test case. */ + public static final Property description = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#description" ); + + public static final Property status = ResourceFactory.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#status" ); + + /** Super class of all test status classes */ + public static final Resource Status = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Status" ); + + /** Super class of all result forms */ + public static final Resource ResultForm = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#ResultForm" ); + + /** Super class of all query forms */ + public static final Resource QueryForm = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#QueryForm" ); + + /** Class of result expected to be from a SELECT query */ + public static final Resource resultResultSet = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#resultResultSet" ); + + /** Class of queries that are seeking a constructed graph */ + public static final Resource queryConstruct = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryConstruct" ); + + /** Class of queries that are seeking a yes/no question */ + public static final Resource queryAsk = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryAsk" ); + + /** Class of result expected to be a graph */ + public static final Resource resultGraph = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#resultGraph" ); + + /** Class of tests that have not been classified */ + public static final Resource NotClassified = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#NotClassified" ); + + /** Class of result expected to be a boolean */ + public static final Resource booleanResult = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#booleanResult" ); + + /** Class of tests that are Approved */ + public static final Resource Approved = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Approved" ); + + /** Class of tests that have been Withdrawn */ + public static final Resource Withdrawn = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Withdrawn" ); + + /** Class of tests that are Obsolete */ + public static final Resource Obsoleted = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Obsoleted" ); + + /** Class of queries that are seeking a descriptive graph */ + public static final Resource queryDescribe = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#queryDescribe" ); + + /** Class of queries that are seeking variable bindings */ + public static final Resource querySelect = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#querySelect" ); + + /** Class of tests that are Rejected */ + public static final Resource Rejected = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#Rejected" ); + } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestUpdate_11.java b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestUpdate_11.java index 8bafb96c2d..60bd8cccf5 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestUpdate_11.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestUpdate_11.java @@ -22,63 +22,47 @@ package org.apache.jena.sparql.vocabulary ; /* CVS $Id: $ */ - + import org.apache.jena.rdf.model.* ; - + /** - * Vocabulary definitions from test-update.n3 - * @author Auto-generated by schemagen on 29 Oct 2010 17:36 + * Vocabulary definitions from test-update.n3 */ public class TestManifestUpdate_11 { - /** <p>The RDF model that holds the vocabulary terms</p> */ - private static Model m_model = ModelFactory.createDefaultModel(); - - /** <p>The namespace of the vocabulary as a string</p> */ - public static final String NS = "http://www.w3.org/2009/sparql/tests/test-update#"; - - /** <p>The namespace of the vocabulary as a string</p> - * @see #NS */ - public static String getURI() {return NS;} - - /** <p>The namespace of the vocabulary as a resource</p> */ - public static final Resource NAMESPACE = m_model.createResource( NS ); - - /** <p>Optional: data for the update test (i.e. default graph in the graph store - * prior or after the update, depending on whether used within mf:action or within - * mf:result)</p> + + /** Optional: data for the update test (i.e. default graph in the graph store + * prior or after the update, depending on whether used within mf:action or within + * mf:result) */ - public static final Property data = m_model.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#data" ); - - public static final Property graph = m_model.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#graph" ); - - /** <p>Optional: named-graph only data for the update test (i.e. named graph in the - * graph store prior or after the update, depending on whether used within mf:action - * or within mf:result)</p> + public static final Property data = ResourceFactory.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#data" ); + + public static final Property graph = ResourceFactory.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#graph" ); + + /** Optional: named-graph only data for the update test (i.e. named graph in the + * graph store prior or after the update, depending on whether used within mf:action + * or within mf:result) */ - public static final Property graphData = m_model.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#graphData" ); - - /** <p>The update query to ask</p> */ - public static final Property request = m_model.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#request" ); - - /** <p>The class of all SPARQL 1.1 Update results</p> */ - public static final Resource Result = m_model.createResource( "http://www.w3.org/2009/sparql/tests/test-update#Result" ); - - /** <p>The class of all SPARQL 1.1 Update evaluation tests</p> */ - public static final Resource UpdateEvaluationTest = m_model.createResource( "http://www.w3.org/2009/sparql/tests/test-update#UpdateEvaluationTest" ); - - /** <p>test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages</p> */ - public static final Resource graph_already_exists = m_model.createResource( "http://www.w3.org/2009/sparql/tests/test-update#graph-already-exists" ); - - /** <p>test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages</p> */ - public static final Resource graph_does_not_exist = m_model.createResource( "http://www.w3.org/2009/sparql/tests/test-update#graph-does-not-exist" ); - - /** <p>test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages</p> */ - public static final Resource malformed_update = m_model.createResource( "http://www.w3.org/2009/sparql/tests/test-update#malformed-update" ); - - /** <p>test shall pass without failure</p> */ - public static final Resource success = m_model.createResource( "http://www.w3.org/2009/sparql/tests/test-update#success" ); - - /** <p>test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages</p> */ - public static final Resource update_request_refused = m_model.createResource( "http://www.w3.org/2009/sparql/tests/test-update#update-request-refused" ); - + public static final Property graphData = ResourceFactory.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#graphData" ); + + /** The update query to ask */ + public static final Property request = ResourceFactory.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#request" ); + + /** The class of all SPARQL 1.1 Update results */ + public static final Resource Result = ResourceFactory.createProperty( "http://www.w3.org/2009/sparql/tests/test-update#Result" ); + + /** test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages */ + public static final Resource graph_already_exists = ResourceFactory.createResource( "http://www.w3.org/2009/sparql/tests/test-update#graph-already-exists" ); + + /** test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages */ + public static final Resource graph_does_not_exist = ResourceFactory.createResource( "http://www.w3.org/2009/sparql/tests/test-update#graph-does-not-exist" ); + + /** test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages */ + public static final Resource malformed_update = ResourceFactory.createResource( "http://www.w3.org/2009/sparql/tests/test-update#malformed-update" ); + + /** test shall pass without failure */ + public static final Resource success = ResourceFactory.createResource( "http://www.w3.org/2009/sparql/tests/test-update#success" ); + + /** test failure, cf. http://www.w3.org/TR/sparql11-protocol/#update-fault-messages */ + public static final Resource update_request_refused = ResourceFactory.createResource( "http://www.w3.org/2009/sparql/tests/test-update#update-request-refused" ); + } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestX.java b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestX.java index 6fcec73634..f8b3f3232b 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestX.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifestX.java @@ -21,63 +21,61 @@ package org.apache.jena.sparql.vocabulary ; -import org.apache.jena.rdf.model.Model ; -import org.apache.jena.rdf.model.ModelFactory ; +import org.apache.jena.rdf.model.ResourceFactory; import org.apache.jena.rdf.model.Property ; import org.apache.jena.rdf.model.Resource ; /** More TestManifest */ public class TestManifestX { - /** <p>The RDF model that holds the vocabulary terms</p> */ - private static Model m_model = ModelFactory.createDefaultModel(); - - /** <p>The namespace of the vocabulary as a string</p> */ + /** The namespace of the vocabulary as a string */ public static final String NS = "http://jena.hpl.hp.com/2005/05/test-manifest-extra#"; - /** <p>The namespace of the vocabulary as a string</p> + /** The namespace of the vocabulary as a strings * @see #NS */ public static String getURI() {return NS;} - /** <p>The namespace of the vocabulary as a resource</p> */ - public static final Resource NAMESPACE = m_model.createResource( NS ); + /** The namespace of the vocabulary as a resource */ + public static final Resource NAMESPACE = ResourceFactory.createResource( NS ); - /** <p>Syntax of the query</p> */ - public static final Property dataSyntax = m_model.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#dataSyntax" ); + /** Syntax of the query */ + public static final Property dataSyntax = ResourceFactory.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#dataSyntax" ); - /** <p>Default type of a test</p> */ - public static final Property defaultTestType = m_model.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#defaultTestType" ); + /** Default type of a test */ + public static final Property defaultTestType = ResourceFactory.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#defaultTestType" ); - /** <p>Include another manifest file.</p> */ - public static final Property include = m_model.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#include" ); + /** Include another manifest file. */ + public static final Property include = ResourceFactory.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#include" ); - /** <p>Option for an action</p> */ - public static final Property option = m_model.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#option" ); + /** Option for an action */ + public static final Property option = ResourceFactory.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#option" ); - /** <p>Syntax of the query</p> */ - public static final Property querySyntax = m_model.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#querySyntax" ); + /** Syntax of the query */ + public static final Property querySyntax = ResourceFactory.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#querySyntax" ); - /** <p>Whether to create a text index</p> */ - public static final Property textIndex = m_model.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#textIndex" ); + /** Whether to create a text index */ + public static final Property textIndex = ResourceFactory.createProperty( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#textIndex" ); - /** <p>Syntax tests which expect a parse failure</p> */ - public static final Resource NegativeSyntaxTestARQ = m_model.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#NegativeSyntaxTestARQ" ); + /** Syntax tests which expect a parse failure */ + public static final Resource NegativeSyntaxTestARQ = ResourceFactory.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#NegativeSyntaxTestARQ" ); - /** <p>Syntax tests (query)</p> */ - public static final Resource PositiveSyntaxTestARQ = m_model.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#PositiveSyntaxTestARQ" ); + /** Syntax tests (query) */ + public static final Resource PositiveSyntaxTestARQ = ResourceFactory.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#PositiveSyntaxTestARQ" ); - /** <p>Syntax tests which expect a parse failure</p> */ - public static final Resource NegativeUpdateSyntaxTestARQ = m_model.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#NegativeUpdateSyntaxTestARQ" ); + /** Syntax tests which expect a parse failure */ + public static final Resource NegativeUpdateSyntaxTestARQ = ResourceFactory.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#NegativeUpdateSyntaxTestARQ" ); - /** <p>Syntax tests (query)</p> */ - public static final Resource PositiveUpdateSyntaxTestARQ = m_model.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#PositiveUpdateSyntaxTestARQ" ); + /** Syntax tests (query) */ + public static final Resource PositiveUpdateSyntaxTestARQ = ResourceFactory.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#PositiveUpdateSyntaxTestARQ" ); - /** <p>The class of test that are Query tests (query, data, results)</p> */ - public static final Resource TestQuery = m_model.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#TestQuery" ); + /** The class of test that are Query tests (query, data, results) */ + public static final Resource TestQuery = ResourceFactory.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#TestQuery" ); - /** <p>Query serialization tests</p> */ - public static final Resource TestSerialization = m_model.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#TestSerialization" ); + /** Query serialization tests */ + public static final Resource TestSerialization = ResourceFactory.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#TestSerialization" ); - /** <p>Query test not to be run</p> */ - public static final Resource TestSurpressed = m_model.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#TestSurpressed" ); + /** Query test not to be run */ + public static final Resource TestSurpressed = ResourceFactory.createResource( "http://jena.hpl.hp.com/2005/05/test-manifest-extra#TestSurpressed" ); + /** CSV Test (i.e query, with results in CSV) - an extension */ + public static final Resource CSVResultFormatTest = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#CSVResultFormatTest" ); } diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_11.java b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_11.java index 7942933e05..d2b68f73b9 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_11.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_11.java @@ -24,48 +24,30 @@ package org.apache.jena.sparql.vocabulary ; import org.apache.jena.rdf.model.* ; /** - * Vocabulary definitions from test-manifest-1_1.ttl - * @author Auto-generated by schemagen on 24 May 2012 18:37 + * Vocabulary definitions from test-manifest-1_1.ttl */ +@Deprecated(forRemoval = true) public class TestManifest_11 { - /** <p>The RDF model that holds the vocabulary terms</p> */ - private static Model m_model = ModelFactory.createDefaultModel(); - - /** <p>The namespace of the vocabulary as a string</p> */ - public static final String NS = "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#"; - - /** <p>The namespace of the vocabulary as a string</p> - * @see #NS */ - public static String getURI() {return NS;} - - /** <p>The namespace of the vocabulary as a resource</p> */ - public static final Resource NAMESPACE = m_model.createResource( NS ); - - /** <p>CSV Test</p> */ - public static final Resource CSVResultFormatTest = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#CSVResultFormatTest" ); - - /** <p>A type of test specifically for syntax testing for SPARQL 1.1.</p> */ - public static final Resource NegativeSyntaxTest11 = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#NegativeSyntaxTest11" ); - - /** <p>A type of test specifically for syntax testing of SPARQL Update. 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.</p> - */ - public static final Resource NegativeUpdateSyntaxTest11 = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#NegativeUpdateSyntaxTest11" ); - - /** <p>A type of test specifically for syntax testing for SPARQL 1.1.</p> */ - public static final Resource PositiveSyntaxTest11 = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#PositiveSyntaxTest11" ); - - /** <p>A type of test specifically for syntax testing of SPARQL Update. Syntax tests - * are not required to have an associated result, only an action.</p> + /** A type of test specifically for syntax testing for SPARQL 1.1. */ + @Deprecated(forRemoval = true) + public static final Resource NegativeSyntaxTest11 = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#NegativeSyntaxTest11" ); + + /** A type of test specifically for syntax testing of SPARQL Update. 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. */ - public static final Resource PositiveUpdateSyntaxTest11 = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#PositiveUpdateSyntaxTest11" ); - - /** <p>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.</p> + @Deprecated(forRemoval = true) + public static final Resource NegativeUpdateSyntaxTest11 = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#NegativeUpdateSyntaxTest11" ); + + /** A type of test specifically for syntax testing for SPARQL 1.1. */ + @Deprecated(forRemoval = true) + public static final Resource PositiveSyntaxTest11 = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#PositiveSyntaxTest11" ); + + /** A type of test specifically for syntax testing of SPARQL Update. Syntax tests + * are not required to have an associated result, only an action. */ - public static final Resource UpdateEvaluationTest = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#UpdateEvaluationTest" ); - } + @Deprecated(forRemoval = true) + public static final Resource PositiveUpdateSyntaxTest11 = ResourceFactory.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#PositiveUpdateSyntaxTest11" ); +} diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_12.java b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_12.java index 92ec0facff..9fe90122f4 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_12.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/vocabulary/TestManifest_12.java @@ -27,17 +27,15 @@ import org.apache.jena.rdf.model.ResourceFactory; /** * Additional or changed vocabulary for rdf-tests SPARQL area. */ +@Deprecated(forRemoval = true) public class TestManifest_12 { - /** <p>The namespace of the vocabulary as a string</p> */ + /** The namespace of the vocabulary as a string */ public static final String NS = "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#"; + @Deprecated(forRemoval = true) public static final Resource PositiveSyntaxTest12 = ResourceFactory.createResource(NS+"PositiveSyntaxTest12"); + @Deprecated(forRemoval = true) public static final Resource NegativeSyntaxTest12 = ResourceFactory.createResource(NS+"NegativeSyntaxTest12"); - - public static final Resource PositiveUpdateSyntaxTest = ResourceFactory.createResource(NS+"PositiveUpdateSyntaxTest"); - - public static final Resource NegativeUpdateSyntaxTest = ResourceFactory.createResource(NS+"NegativeUpdateSyntaxTest"); - } diff --git a/jena-arq/src/main/java/org/apache/jena/system/G.java b/jena-arq/src/main/java/org/apache/jena/system/G.java index da96d5d472..a9671b7f97 100644 --- a/jena-arq/src/main/java/org/apache/jena/system/G.java +++ b/jena-arq/src/main/java/org/apache/jena/system/G.java @@ -167,6 +167,14 @@ public class G { return x.getLiteralLexicalForm(); } + /** Get a string, or null, assuming the node is an xsd:string literal. */ + public static String asOptionalString(Node x) { + if ( x == null ) + return null; + return asString(x); + } + + /** Does the graph match the s/p/o pattern? */ public static boolean contains(Graph graph, Node subject, Node predicate, Node object) { Objects.requireNonNull(graph, "graph"); diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/OmittedTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/OmittedTest.java index c8259fd127..a30baf1ba9 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/OmittedTest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/OmittedTest.java @@ -30,8 +30,7 @@ public class OmittedTest extends SkipTest { public final boolean verbose; public OmittedTest(ManifestEntry entry) { - super(entry); - this.verbose = false; + this(entry, false); } public OmittedTest(ManifestEntry entry, boolean verbose) { diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java index 1d9d4958f4..cd27a444e9 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/Manifest.java @@ -67,12 +67,13 @@ public class Manifest log.error("Error reading manifest: "+filenameOrURI); throw new TestSetupException("Error reading manifest: "+filenameOrURI); } - Manifest manifest = new Manifest(manifestRDF); + Manifest manifest = new Manifest(manifestRDF, filenameOrURI); return manifest; } - private Manifest(Graph manifestRDF) { - manifestGraph = manifestRDF; + private Manifest(Graph manifestRDF, String filenameOrURI) { + this.manifestGraph = manifestRDF; + this.filenameOrURI = filenameOrURI; manifest = getManifestNode(manifestGraph, filenameOrURI); parseManifest(); parseIncludes(); @@ -128,9 +129,10 @@ public class Manifest items.forEach(entry->{ String testName = getLiteral(entry, TestManifest.name.asNode()); Node testType = G.getZeroOrOneSP(manifestGraph, entry, RDF.Nodes.type); - Node action = G.getZeroOrOneSP(manifestGraph, entry, TestManifest.action.asNode()); - Node result = G.getZeroOrOneSP(manifestGraph, entry, TestManifest.result.asNode()); - ManifestEntry manifestEntry = new ManifestEntry(this, entry, testName, testType, action, result); + String specVersion = G.asOptionalString(G.getZeroOrOneSP(manifestGraph, entry, TestManifest.specVersion.asNode())); + Node action = G.getZeroOrOneSP(manifestGraph, entry, TestManifest.action.asNode()); + Node result = G.getZeroOrOneSP(manifestGraph, entry, TestManifest.result.asNode()); + ManifestEntry manifestEntry = new ManifestEntry(this, entry, testName, testType, specVersion, action, result); entries.add(manifestEntry); }); } @@ -150,8 +152,7 @@ public class Manifest }); } - private void parseOneIncludesList(Node r) - { + private void parseOneIncludesList(Node r) { if ( r == null ) return; if ( r.equals(RDF.Nodes.nil) ) @@ -164,7 +165,7 @@ public class Manifest includedFiles.add(r.getURI()); return; } - if ( ! r.isBlank() ) + if ( !r.isBlank() ) return; // Blank node - assumed to be a list. List<Node> includes = G.listMembers(manifestGraph, r); @@ -173,25 +174,28 @@ public class Manifest parseOneIncludesList(inc); continue; } - log.warn("Include: not a URI or blank node: "+inc); + log.warn("Include: not a URI or blank node: " + inc); } } + /** + * Get a string. + * Return null if not found or if the resource (first argument) is null or if the + * resource does not have that property. + * Return the lexical form of the literal. + */ private String getLiteral(Node r, Node p) { if ( r == null ) return null; Node n = G.getZeroOrOneSP(manifestGraph, r, p); if ( n == null ) return null; - if ( n.isLiteral() ) return n.getLiteralLexicalForm(); - throw new TestSetupException("Manifest problem (not a Literal): " + r + " => " + p); } - private String getLiteralOrURI(Node r, Node p) - { + private String getLiteralOrURI(Node r, Node p) { if ( r == null ) return null; Node n = G.getZeroOrOneSP(manifestGraph, r, p); diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/ManifestEntry.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/ManifestEntry.java index 531210bf23..000f219312 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/ManifestEntry.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/manifest/ManifestEntry.java @@ -21,38 +21,116 @@ package org.apache.jena.arq.junit.manifest; +import static org.apache.jena.system.G.isBlank; +import static org.apache.jena.system.G.isLiteral; +import static org.apache.jena.system.G.isURI; + +import java.util.HashSet; +import java.util.Set; + import org.apache.jena.graph.Graph; import org.apache.jena.graph.Node; +import org.apache.jena.riot.out.NodeFmtLib; +import org.apache.jena.system.G; +import org.apache.jena.system.RDFDataException; public class ManifestEntry { private final Manifest manifest; private final Node entry; private final String name; private final Node testType; + private final String specVersion; private final Node action; private final Node result; - public ManifestEntry(Manifest manifest, Node entry, String name, Node testType, Node action, Node result) { + static Set<Object> onceNoType = new HashSet<>(); + static Set<Object> onceWithVersion = new HashSet<>(); + + public ManifestEntry(Manifest manifest, Node entry, String name, Node testType, String specVersion, Node action, Node result) { super(); + this.manifest = manifest; - this.entry = entry; + this.entry = requireResource(entry, "entry"); this.name = name; + + // Legacy - some local tests are written short-hand with no - assumes a SPARQL eval test. + // See SPARQLTests. + //this.testType = requireResource(testType, "testType"); this.testType = testType; - this.action = action; - this.result = result; + this.specVersion = specVersion; + this.action = requireResource(action, "action"); + this.result = optionalResource(result, "result"); + } + + private static void runOnce(Set<Object> once, Object key, Runnable msg) { + if ( ! once.contains(key) ) { + once.add(key); + msg.run(); + } + } + + // --> G + // Check for URI or blank node. + private static Node requireResource(Node n, String role) { + if ( n == null ) + throw new RDFDataException(role+ ": null"); + if ( isURI(n) ) + return n; + if ( isBlank(n) ) + return n; + throw new RDFDataException(role+": Not a resource: "+NodeFmtLib.displayStr(n)); + } + + private static Node optionalResource(Node n, String role) { + if ( n == null ) + return n; + return requireResource(n, role); + } + + // Check for URI or blank node. + private static String requireString(Node n, String role) { + if ( n == null ) + throw new RDFDataException(role+ ": null"); + if ( ! isLiteral(n) ) + throw new RDFDataException(role+": Not a string: "+NodeFmtLib.displayStr(n)); + return G.asString(n); // xsd:string. + //return n.getLiteralLexicalForm(); + } + + private static String optionalString(Node n, String role) { + if ( n == null ) + return null; + return requireString(n, role); } /** * Return a ManifestEntry with different type/action/result. * This is used to replace rdf-tests-cg where test behaviour is expected to be different. */ - public static ManifestEntry alter(ManifestEntry entry, Node testType, Node action, Node result) { + public static ManifestEntry alter(ManifestEntry entry, Node testType, String specVersion, Node action, Node result) { return new ManifestEntry(entry.getManifest(), entry.getEntry(), entry.getName(), - testType, action, result); + testType, + specVersion, + action, + result); + } + + /** + * Return a ManifestEntry with different name. + */ + public static ManifestEntry alter(ManifestEntry entry, String altName) { + return new ManifestEntry(entry.getManifest(), + entry.getEntry(), + altName, + entry.getTestType(), + entry.getSpecVersion(), + entry.getAction(), + entry.getResult()); } + public Manifest getManifest() { return manifest; } @@ -81,6 +159,10 @@ public class ManifestEntry { return testType; } + public String getSpecVersion() { + return specVersion; + } + public Node getAction() { return action; } diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotTests.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotTests.java index 8e64d5587c..e565564a52 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotTests.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/RiotTests.java @@ -39,7 +39,7 @@ import org.apache.jena.vocabulary.TestManifest; public class RiotTests { /** Create a RIOT language test - or return null for "unrecognized" */ - @SuppressWarnings("deprecation") + @SuppressWarnings("removal") public static Runnable makeRIOTTest(ManifestEntry entry) { //Resource manifest = entry.getManifest(); Node item = entry.getEntry(); @@ -51,6 +51,7 @@ public class RiotTests Node testType = entry.getTestType(); if ( testType == null ) return null; + String specVersion = entry.getSpecVersion(); try { String labelPrefix = "[RIOT]"; @@ -77,7 +78,6 @@ public class RiotTests if ( equalsType(testType, VocabLangRDF.TestNegativeSyntaxTTL) ) return new RiotSyntaxTest(entry, RDFLanguages.TURTLE, false); - // XXX Remove of rdf-test update // These are parse errors if ( equalsType(testType, VocabLangRDF.TestNegativeEvalTTL) ) return new RiotSyntaxTest(entry, RDFLanguages.TURTLE, false); @@ -127,6 +127,7 @@ public class RiotTests String base = rebase(input, assumedBase); return new RiotEvalTest(entry, base, RDFLanguages.TURTLE, true); } + if ( equalsType(testType, VocabLangRDF.TestEvalTriG) ) { String base = rebase(input, assumedBase); return new RiotEvalTest(entry, base, RDFLanguages.TRIG, true); @@ -172,7 +173,7 @@ public class RiotTests String resultURI = result.getURI().replaceAll("/rdf-tests-cg/rdf/rdf11/rdf-xml/xml-canon/", "/RIOT/Lang/rdf-xml/xml-canon/"); Node action2 = NodeFactory.createURI(actionURI); Node result2 = NodeFactory.createURI(resultURI); - entry = ManifestEntry.alter(entry, testType, action2, result2); + entry = ManifestEntry.alter(entry, testType, specVersion, action2, result2); } String fn = entry.getAction().getURI(); // Adjust to changes in rdf-tests-cg layout. diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/VocabLangRDF.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/VocabLangRDF.java index f65f8a5439..ba5e2b5015 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/VocabLangRDF.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/riot/VocabLangRDF.java @@ -47,7 +47,8 @@ public class VocabLangRDF public static final Resource TestPositiveSyntaxTTL = m_model.createResource( NS+"TestTurtlePositiveSyntax" ); public static final Resource TestNegativeSyntaxTTL = m_model.createResource( NS+"TestTurtleNegativeSyntax" ); public static final Resource TestEvalTTL = m_model.createResource( NS+"TestTurtleEval" ); - @Deprecated + // Legacy + @Deprecated(forRemoval = true) public static final Resource TestNegativeEvalTTL = m_model.createResource( NS+"TestTurtleNegativeEval" ); public static final Resource TestPositiveSyntaxNT = m_model.createResource( NS+"TestNTriplesPositiveSyntax" ); @@ -68,7 +69,7 @@ public class VocabLangRDF public static final Resource TestPositiveSyntaxTriG = m_model.createResource( NS+"TestTrigPositiveSyntax" ); public static final Resource TestNegativeSyntaxTriG = m_model.createResource( NS+"TestTrigNegativeSyntax" ); public static final Resource TestEvalTriG = m_model.createResource( NS+"TestTrigEval" ); - @Deprecated + @Deprecated(forRemoval = true) public static final Resource TestNegativeEvalTriG = m_model.createResource( NS+"TestTrigNegativeEval" ); public static final Resource TestPositiveSyntaxRDFXML = m_model.createResource( NS+"TestXMLPositiveSyntax" ); diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/OmittedTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/SparqlSpecVersion.java similarity index 53% copy from jena-arq/src/test/java/org/apache/jena/arq/junit/OmittedTest.java copy to jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/SparqlSpecVersion.java index c8259fd127..a44c85edea 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/OmittedTest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/SparqlSpecVersion.java @@ -19,29 +19,32 @@ * SPDX-License-Identifier: Apache-2.0 */ -package org.apache.jena.arq.junit; +package org.apache.jena.arq.junit.sparql; -import org.apache.jena.arq.junit.manifest.ManifestEntry; +import org.apache.jena.shared.JenaException; -/** - * Omitted test = not marked as "suppressed" but not run. - */ -public class OmittedTest extends SkipTest { - public final boolean verbose; +public enum SparqlSpecVersion { + SPARQL_10("sparql-1.0"), + SPARQL_11("sparql-1.1"), + SPARQL_12("sparql-1.2"), + ARQ("ARQ") + ; - public OmittedTest(ManifestEntry entry) { - super(entry); - this.verbose = false; - } + private final String specVersion; - public OmittedTest(ManifestEntry entry, boolean verbose) { - super(entry); - this.verbose = verbose; + SparqlSpecVersion(String string) { + this.specVersion = string; } - @Override - public void runTest() { - if ( verbose ) - System.err.println("Omitted test: " + manifestEntry.getName()); + static SparqlSpecVersion get(String label) { + if ( label == null ) + return null; + return switch(label) { + case "sparql-1.0" -> SPARQL_10; + case "sparql-1.1" -> SPARQL_11; + case "sparql-1.2" -> SPARQL_12; + case "ARQ", "arq" -> ARQ; + default -> { throw new JenaException("Unrecognized version label: "+label); } + }; } } diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/SparqlTests.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/SparqlTests.java index beab6fb7da..e5da56401e 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/SparqlTests.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/SparqlTests.java @@ -35,7 +35,6 @@ import org.apache.jena.graph.Node; import org.apache.jena.query.Dataset; import org.apache.jena.query.Syntax; import org.apache.jena.rdf.model.Resource; -import org.apache.jena.sparql.vocabulary.TestManifestUpdate_11; import org.apache.jena.sparql.vocabulary.TestManifestX; import org.apache.jena.sparql.vocabulary.TestManifest_11; import org.apache.jena.sparql.vocabulary.TestManifest_12; @@ -56,49 +55,97 @@ public class SparqlTests { return null; } - Syntax querySyntax = defaultForSyntaxTests; + Syntax sparqlSyntax = defaultForSyntaxTests; - // Syntax to use for tests where the file extension .rq/.ru applies. - Syntax querySyntax11 = querySyntax; - Syntax updateSyntax11 = querySyntax; - Syntax querySyntax12 = querySyntax; - - if ( querySyntax != null ) { - if ( ! querySyntax.equals(Syntax.syntaxARQ) && - ! querySyntax.equals(Syntax.syntaxSPARQL_10) && - ! querySyntax.equals(Syntax.syntaxSPARQL_11) && - ! querySyntax.equals(Syntax.syntaxSPARQL_12) ) - throw new TestSetupException("Unknown syntax: "+querySyntax); + if ( sparqlSyntax != null ) { + if ( ! sparqlSyntax.equals(Syntax.syntaxARQ) && + ! sparqlSyntax.equals(Syntax.syntaxSPARQL_10) && + ! sparqlSyntax.equals(Syntax.syntaxSPARQL_11) && + ! sparqlSyntax.equals(Syntax.syntaxSPARQL_12) ) + throw new TestSetupException("Unknown syntax: "+sparqlSyntax); } Node testType = entry.getTestType(); - if ( testType == null ) + SparqlSpecVersion specVersion = SparqlSpecVersion.get(entry.getSpecVersion()); + + if ( testType == null ) { + System.err.println("No type: "+entry.getManifest().getFileName()+ (entry.getName()==null?"": " : "+entry.getName()) ); + testType = TestManifest.QueryEvaluationTest.asNode(); + if ( specVersion == null ) { + specVersion = SparqlSpecVersion.ARQ; + } + } - // ---- Query syntax tests - if ( equalsType(testType, TestManifest.PositiveSyntaxTest) ) { - return new QuerySyntaxTest(entry, querySyntax, true); + return adaptDispatch(entry, testType, specVersion, sparqlSyntax); + } + + // Allows us to isolate the places where deprecation warnings occur. + @SuppressWarnings("removal") + private static Runnable adaptDispatch(ManifestEntry entry, Node testType , SparqlSpecVersion specVersion, Syntax sparqlSyntax) { + + // Legacy test type conversion. + if ( equalsType(testType, TestManifest_11.PositiveSyntaxTest11) ) { + testType = TestManifest.PositiveSyntaxTest.asNode(); + specVersion = SparqlSpecVersion.SPARQL_11; + } + else if ( equalsType(testType, TestManifest_11.NegativeSyntaxTest11) ) { + testType = TestManifest.NegativeSyntaxTest.asNode(); + specVersion = SparqlSpecVersion.SPARQL_11; + + } + else if ( equalsType(testType, TestManifest_12.PositiveSyntaxTest12) ) { + testType = TestManifest.PositiveSyntaxTest.asNode(); + specVersion = SparqlSpecVersion.SPARQL_12; + } + else if ( equalsType(testType, TestManifest_12.NegativeSyntaxTest12) ) { + testType = TestManifest.NegativeSyntaxTest.asNode(); + specVersion = SparqlSpecVersion.SPARQL_12; + } + + if ( specVersion == null ) { + if ( Scripts.entryContainsSubstring(entry, "testing/ARQ") ) + specVersion = SparqlSpecVersion.ARQ; + else if ( Scripts.entryContainsSubstring(entry, "testing/SPARQL-CDTs") ) + specVersion = SparqlSpecVersion.ARQ; } - if ( equalsType(testType, TestManifest_11.PositiveSyntaxTest11) ) - return new QuerySyntaxTest(entry, querySyntax11, true); - if ( equalsType(testType, TestManifest_12.PositiveSyntaxTest12) ) - return new QuerySyntaxTest(entry, querySyntax12, true); - if ( equalsType(testType, TestManifestX.PositiveSyntaxTestARQ) ) { - return new QuerySyntaxTest(entry, Syntax.syntaxARQ, true); + + if ( specVersion != null ) { + switch (specVersion) { + case SPARQL_10 -> sparqlSyntax = Syntax.syntaxSPARQL_10; + case SPARQL_11 -> sparqlSyntax = Syntax.syntaxSPARQL_11; + case SPARQL_12 -> sparqlSyntax = Syntax.syntaxSPARQL_12; + case ARQ -> sparqlSyntax = Syntax.syntaxARQ; + } } + // -- + + // Now dispatch on testType, with setting by syntax. + // Split so the adaptions can be isolated and warnings ignored. + + return dispatch(entry, testType, sparqlSyntax); + } + + private static Runnable dispatch(ManifestEntry entry, Node testType , Syntax sparqlSyntax) { + // ---- Query syntax tests + if ( equalsType(testType, TestManifest.PositiveSyntaxTest) ) + return new QuerySyntaxTest(entry, sparqlSyntax, true); + // == Bad if ( equalsType(testType, TestManifest.NegativeSyntaxTest) ) { - return new QuerySyntaxTest(entry, querySyntax, false); - } - if ( equalsType(testType, TestManifest_11.NegativeSyntaxTest11) ) { - // Special override - Syntax syn = querySyntax11; - // Some of these are things that ARQ deals with but aren't SPARQL 1.1 so force SPARQL 1.1 - if ( Scripts.entryContainsSubstring(entry, "/Syntax-SPARQL_11/syn-bad-") ) - syn = Syntax.syntaxSPARQL_11; - return new QuerySyntaxTest(entry, syn, false); + return new QuerySyntaxTest(entry, sparqlSyntax, false); } + // XXX [rdf-tests] +// if ( equalsType(testType, TestManifest_11.NegativeSyntaxTest11) ) { +// // XXX [specVersion] Checking as expected - then migrate +// // Special override +// Syntax syn = querySyntax11; +// // Some of these are things that ARQ deals with but aren't SPARQL 1.1 so force SPARQL 1.1 +// if ( Scripts.entryContainsSubstring(entry, "/Syntax-SPARQL_11/syn-bad-") ) +// syn = Syntax.syntaxSPARQL_11; +// return new QuerySyntaxTest(entry, syn, false); +// } if ( equalsType(testType, TestManifestX.NegativeSyntaxTestARQ) ) return new QuerySyntaxTest(entry, Syntax.syntaxARQ, false); @@ -107,7 +154,6 @@ public class SparqlTests { if ( equalsType(testType, TestManifest.QueryEvaluationTest) ) { // Locally not supported. // Omitted tests. - // Two BNODE in the SELECT if ( entryContainsSubstring(entry, "functions/manifest#bnode01") ) return new OmittedTest(entry); @@ -116,32 +162,37 @@ public class SparqlTests { return new OmittedTest(entry); // Query evaluation tests. - return new QueryEvalTest(entry); + return new QueryEvalTest(entry, sparqlSyntax); } if ( equalsType(testType, TestManifestX.TestQuery) ) - return new QueryEvalTest(entry); + return new QueryEvalTest(entry, sparqlSyntax); // ---- Update syntax tests - if ( equalsType(testType, TestManifest_11.PositiveUpdateSyntaxTest11) ) - return new UpdateSyntaxTest(entry, updateSyntax11, true); +// if ( equalsType(testType, TestManifest_11.PositiveUpdateSyntaxTest11) ) +// return new UpdateSyntaxTest(entry, sparqlSyntax, true); + if ( equalsType(testType, TestManifestX.PositiveUpdateSyntaxTestARQ) ) return new UpdateSyntaxTest(entry, Syntax.syntaxARQ, true); - if ( equalsType(testType, TestManifest_11.NegativeUpdateSyntaxTest11) ) - return new UpdateSyntaxTest(entry, querySyntax11, false); +// if ( equalsType(testType, TestManifest_11.NegativeUpdateSyntaxTest11) ) +// return new UpdateSyntaxTest(entry, sparqlSyntax, false); + if ( equalsType(testType, TestManifestX.NegativeUpdateSyntaxTestARQ) ) return new UpdateSyntaxTest(entry, Syntax.syntaxARQ, false); - if ( equalsType(testType, TestManifest_12.PositiveUpdateSyntaxTest) ) - return new UpdateSyntaxTest(entry, Syntax.syntaxARQ, true); - if ( equalsType(testType, TestManifest_12.NegativeUpdateSyntaxTest) ) - return new UpdateSyntaxTest(entry, Syntax.syntaxARQ, false); + if ( equalsType(testType, TestManifest.PositiveUpdateSyntaxTest) ) + return new UpdateSyntaxTest(entry, sparqlSyntax, true); + if ( equalsType(testType, TestManifest.PositiveUpdateSyntaxTest11) ) + return new UpdateSyntaxTest(entry, sparqlSyntax, true); + + if ( equalsType(testType, TestManifest.NegativeUpdateSyntaxTest) ) + return new UpdateSyntaxTest(entry, sparqlSyntax, false); + if ( equalsType(testType, TestManifest.NegativeUpdateSyntaxTest11) ) + return new UpdateSyntaxTest(entry, sparqlSyntax, false); // ---- Update evaluation tests - if ( equalsType(testType, TestManifestUpdate_11.UpdateEvaluationTest) ) - return new UpdateEvalTest(entry); - if ( equalsType(testType, TestManifest_11.UpdateEvaluationTest) ) - return new UpdateEvalTest(entry); + if ( equalsType(testType, TestManifest.UpdateEvaluationTest) ) + return new UpdateEvalTest(entry, sparqlSyntax); // ---- Other @@ -150,14 +201,14 @@ public class SparqlTests { // Reduced is funny. if ( equalsType(testType, TestManifest.ReducedCardinalityTest) ) - return new QueryEvalTest(entry); + return new QueryEvalTest(entry, sparqlSyntax); if ( equalsType(testType, TestManifestX.TestSurpressed) ) return new SurpressedTest(entry); - if ( equalsType(testType, TestManifest_11.CSVResultFormatTest) ) { - Log.warn("Tests", "Skip CSV test: "+entry.getName()); - return null; + if ( equalsType(testType, TestManifestX.CSVResultFormatTest) ) { + Log.warn("Tests", "Skip CSV query for test: "+entry.getName()); + return new OmittedTest(entry); } return null; @@ -167,7 +218,7 @@ public class SparqlTests { return typeNode.equals(typeResource.asNode()); } - /** Make tests, execution only */ + /** Make tests, execution only, any syntax version */ static public Runnable makeSPARQLTestExecOnly(ManifestEntry entry, Creator<Dataset> maker) { Node testType = entry.getTestType(); if ( testType == null ) @@ -176,9 +227,9 @@ public class SparqlTests { if ( testType != null ) { // -- Query Evaluation Tests if ( equalsType(testType, TestManifest.QueryEvaluationTest) ) - return new QueryEvalTest(entry, maker); + return new QueryEvalTest(entry, null, maker); if ( equalsType(testType, TestManifestX.TestQuery) ) - return new QueryEvalTest(entry, maker); + return new QueryEvalTest(entry, null, maker); // // -- Update Evaluation tests // if ( equalsType(testType, TestManifestUpdate_11.UpdateEvaluationTest) ) diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java index a094fd3d9e..7e94d5211a 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/QueryEvalTest.java @@ -68,6 +68,7 @@ public class QueryEvalTest extends AbstractManifestTest { private final SPARQLResult results; private final QueryTestItem testItem; private final Creator<Dataset> creator; + private final Syntax syntax; /** * Whether to test result sets "by value" or "by term". * <p> @@ -79,15 +80,16 @@ public class QueryEvalTest extends AbstractManifestTest { */ public static boolean compareResultSetsByValue = true; - public QueryEvalTest(ManifestEntry entry, Creator<Dataset> maker) { - super(entry); - testItem = QueryTestItem.create(entry, TestManifest.QueryEvaluationTest.asNode()); - results = testItem.getResults(); - creator = maker; + public QueryEvalTest(ManifestEntry entry, Syntax syntax) { + this(entry, syntax, ()->DatasetFactory.createGeneral()); } - public QueryEvalTest(ManifestEntry entry) { - this(entry, ()->DatasetFactory.createGeneral()); + public QueryEvalTest(ManifestEntry entry, Syntax syntax, Creator<Dataset> maker) { + super(entry); + this.syntax = syntax; + this.testItem = QueryTestItem.create(entry, TestManifest.QueryEvaluationTest.asNode()); + this.results = testItem.getResults(); + this.creator = maker; } @Override @@ -95,10 +97,9 @@ public class QueryEvalTest extends AbstractManifestTest { Query query; try { try { - query = SparqlTestLib.queryFromEntry(manifestEntry); + query = SparqlTestLib.queryFromEntry(manifestEntry, syntax); } catch (QueryParseException qEx) { - System.err.println("Parse failure in eval test: " + qEx.getMessage()); - //setupFailure("Parse failure: " + qEx.getMessage()); + setupFailure("Parse failure: " + qEx.getMessage()); fail("Parse failure: " + qEx.getMessage()); // Keep Java quiet! throw qEx; @@ -143,9 +144,12 @@ public class QueryEvalTest extends AbstractManifestTest { protected Dataset setUpDataset(Query query, QueryTestItem testItem) { try { if ( doesQueryHaveDataset(query) && doesTestItemHaveDataset(testItem) ) { - // known case - constructwhere04 + // known cases where there is a dataset and FROM/FROM NAMED + // sparql11/construct/constructwhere04 + // sparql/sparql10/datasets // otherwise maybe a test error. - if ( ! entryContainsSubstring(testItem.getManifestEntry(), "manifest#constructwhere04") ) { + if ( ! entryContainsSubstring(testItem.getManifestEntry(), "/construct/manifest#constructwhere04") + && ! entryContainsSubstring(testItem.getManifestEntry(), "/dataset/manifest#") ) { // Only warn if there are results to test // Syntax tests may have FROM etc and a manifest data file. if ( testItem.getResultFile() != null ) diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SerializationTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SerializationTest.java index 8cb9553b8a..83cad573d3 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SerializationTest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SerializationTest.java @@ -46,7 +46,7 @@ public class SerializationTest extends AbstractManifestTest @Override public void runTest() { - Query query = SparqlTestLib.queryFromEntry(manifestEntry); + Query query = SparqlTestLib.queryFromEntry(manifestEntry, null); // Whatever was read in. runTestWorker(query, query.getSyntax()) ; } diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java index 47a1fac50e..28dd185b34 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/SparqlTestLib.java @@ -106,10 +106,6 @@ class SparqlTestLib { throw new TestSetupException("Can't determine the query. Not a blank node or a URI. "+entry.getAction()); } - static Query queryFromEntry(ManifestEntry entry) { - return queryFromEntry(entry, null); - } - /** read a query, forcing syntax */ static Query queryFromEntry(ManifestEntry entry, Syntax syntax) { if ( queryFile(entry) == null ) { diff --git a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateEvalTest.java b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateEvalTest.java index 501911f0b8..ee8daba1dd 100644 --- a/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateEvalTest.java +++ b/jena-arq/src/test/java/org/apache/jena/arq/junit/sparql/tests/UpdateEvalTest.java @@ -48,13 +48,15 @@ import org.apache.jena.vocabulary.RDFS ; public class UpdateEvalTest extends AbstractManifestTest { private final Creator<Dataset> creator; + private final Syntax syntax; - public UpdateEvalTest(ManifestEntry entry) { - this(entry, ()->DatasetFactory.create()); + public UpdateEvalTest(ManifestEntry entry, Syntax syntax) { + this(entry, syntax, ()->DatasetFactory.create()); } - public UpdateEvalTest(ManifestEntry entry, Creator<Dataset> maker) { + public UpdateEvalTest(ManifestEntry entry, Syntax syntax, Creator<Dataset> maker) { super(entry); + this.syntax = syntax; this.creator = maker; } @@ -64,7 +66,7 @@ public class UpdateEvalTest extends AbstractManifestTest Dataset output = getDataset(DatasetFactory.create(), manifestEntry.getGraph(), manifestEntry.getResult()) ; String updateFile = G.getOneSP(manifestEntry.getGraph(), manifestEntry.getAction(), TestManifestUpdate_11.request.asNode()).getURI(); - UpdateRequest request = UpdateFactory.read(updateFile, Syntax.syntaxARQ) ; + UpdateRequest request = UpdateFactory.read(updateFile, syntax) ; UpdateAction.execute(request, input) ; boolean b = datasetSame(input, output, false) ; if ( ! b ) diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/Scripts_SPARQL.java b/jena-arq/src/test/java/org/apache/jena/sparql/Scripts_SPARQL.java index 9d4f0ca66b..5dc5c7046f 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/Scripts_SPARQL.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/Scripts_SPARQL.java @@ -60,7 +60,7 @@ public class Scripts_SPARQL { @DisplayName("SPARQL 1.1") public Stream<DynamicNode> testFactorySPARQL_11() { return all(TestConsts.SPARQL11_TESTS_DIR+"manifest-sparql11-query.ttl", - // Not CSV tests - no comparision supported. + // No CSV tests - no comparision supported. // No XML results - part of SPARQL 1.0. TestConsts.SPARQL11_TESTS_DIR+"json-res/manifest.ttl", TestConsts.SPARQL11_TESTS_DIR+"manifest-sparql11-update.ttl"); diff --git a/jena-arq/testing/ARQ/PropertyFunctions/manifest.ttl b/jena-arq/testing/ARQ/PropertyFunctions/manifest.ttl index 6452891a6a..7caf6fd57d 100644 --- a/jena-arq/testing/ARQ/PropertyFunctions/manifest.ttl +++ b/jena-arq/testing/ARQ/PropertyFunctions/manifest.ttl @@ -23,307 +23,355 @@ mf:entries # data-0 is a zero triple graph. ( - [ mf:name "Property Function - list 1" ; - mf:action - [ qt:query <list-1.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 1" ; + mf:action + [ qt:query <list-1.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-1.srx> ] - [ mf:name "Property Function - list 2" ; - mf:action - [ qt:query <list-2.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 2" ; + mf:action + [ qt:query <list-2.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-2.srx> ] - [ mf:name "Property Function - list 3" ; - mf:action - [ qt:query <list-3.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 3" ; + mf:action + [ qt:query <list-3.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-3.srx> ] - [ mf:name "Property Function - list 4" ; - mf:action - [ qt:query <list-4.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 4" ; + mf:action + [ qt:query <list-4.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-4.srx> ] - [ mf:name "Property Function - list 5" ; - mf:action - [ qt:query <list-5.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 5" ; + mf:action + [ qt:query <list-5.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-5.srx> ] - [ mf:name "Property Function - list 6" ; - mf:action - [ qt:query <list-6.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 6" ; + mf:action + [ qt:query <list-6.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-6.srx> ] - [ mf:name "Property Function - list 7" ; - mf:action - [ qt:query <list-7.rq> ; - qt:data <data-1.ttl> ] ; - mf:result <list-7.srx> + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 7" ; + mf:action + [ qt:query <list-7.rq> ; + qt:data <data-1.ttl> ] ; + mf:result <list-7.srx> ] - [ mf:name "Property Function - list 8" ; - mf:action - [ qt:query <list-8.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 8" ; + mf:action + [ qt:query <list-8.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-8.srx> ] - [ mf:name "Property Function - list 9" ; - mf:action - [ qt:query <list-9.rq> ; - qt:data <data-1.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list 9" ; + mf:action + [ qt:query <list-9.rq> ; + qt:data <data-1.ttl> ] ; mf:result <list-9.srx> ] - [ mf:name "Property Function - list length 1" ; - mf:action - [ qt:query <list-length-1.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list length 1" ; + mf:action + [ qt:query <list-length-1.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-length-1.srx> ] - [ mf:name "Property Function - list length 2" ; - mf:action - [ qt:query <list-length-2.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list length 2" ; + mf:action + [ qt:query <list-length-2.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-length-2.srx> ] - [ mf:name "Property Function - list length 3" ; - mf:action - [ qt:query <list-length-3.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list length 3" ; + mf:action + [ qt:query <list-length-3.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-length-3.srx> ] - [ mf:name "Property Function - list index 1" ; - mf:action - [ qt:query <list-index-1.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 1" ; + mf:action + [ qt:query <list-index-1.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-1.srx> ] - [ mf:name "Property Function - list index 2" ; - mf:action - [ qt:query <list-index-2.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 2" ; + mf:action + [ qt:query <list-index-2.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-2.srx> ] - [ mf:name "Property Function - list index 3" ; - mf:action - [ qt:query <list-index-3.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 3" ; + mf:action + [ qt:query <list-index-3.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-3.srx> ] - [ mf:name "Property Function - list index 4" ; - mf:action - [ qt:query <list-index-4.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 4" ; + mf:action + [ qt:query <list-index-4.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-4.srx> ] - [ mf:name "Property Function - list index 5" ; - mf:action - [ qt:query <list-index-5.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 5" ; + mf:action + [ qt:query <list-index-5.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-5.srx> ] - [ mf:name "Property Function - list index 6" ; - mf:action - [ qt:query <list-index-6.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 6" ; + mf:action + [ qt:query <list-index-6.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-6.srx> ] - [ mf:name "Property Function - list index 7" ; - mf:action - [ qt:query <list-index-7.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 7" ; + mf:action + [ qt:query <list-index-7.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-7.srx> ] - [ mf:name "Property Function - list index 8" ; - mf:action - [ qt:query <list-index-8.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 8" ; + mf:action + [ qt:query <list-index-8.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-8.srx> ] - [ mf:name "Property Function - list index 9" ; - mf:action - [ qt:query <list-index-9.rq> ; - qt:data <data-5.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - list index 9" ; + mf:action + [ qt:query <list-index-9.rq> ; + qt:data <data-5.ttl> ] ; mf:result <list-index-9.srx> ] - [ mf:name "Property Function - container 1" ; - mf:action - [ qt:query <container-1.rq> ; - qt:data <data-2.ttl> ] ; - mf:result <container-1.srx> - ] - [ mf:name "Property Function - container 2" ; - mf:action - [ qt:query <container-2.rq> ; - qt:data <data-2.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 1" ; + mf:action + [ qt:query <container-1.rq> ; + qt:data <data-2.ttl> ] ; + mf:result <container-1.srx> + ] + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 2" ; + mf:action + [ qt:query <container-2.rq> ; + qt:data <data-2.ttl> ] ; mf:result <container-2.srx> ] - [ mf:name "Property Function - container 3" ; - mf:action - [ qt:query <container-3.rq> ; - qt:data <data-2.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 3" ; + mf:action + [ qt:query <container-3.rq> ; + qt:data <data-2.ttl> ] ; mf:result <container-3.srx> ] - [ mf:name "Property Function - container 4" ; - mf:action - [ qt:query <container-4.rq> ; - qt:data <data-2.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 4" ; + mf:action + [ qt:query <container-4.rq> ; + qt:data <data-2.ttl> ] ; mf:result <container-4.srx> ] - [ mf:name "Property Function - container 5" ; - mf:action - [ qt:query <container-5.rq> ; - qt:data <data-4.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 5" ; + mf:action + [ qt:query <container-5.rq> ; + qt:data <data-4.ttl> ] ; mf:result <container-5.srx> ] - [ mf:name "Property Function - container 6" ; - mf:action - [ qt:query <container-6.rq> ; - qt:data <data-4.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 6" ; + mf:action + [ qt:query <container-6.rq> ; + qt:data <data-4.ttl> ] ; mf:result <container-6.srx> ] - [ mf:name "Property Function - container 7" ; - mf:action - [ qt:query <container-7.rq> ; - qt:data <data-4.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 7" ; + mf:action + [ qt:query <container-7.rq> ; + qt:data <data-4.ttl> ] ; mf:result <container-7.srx> ] - [ mf:name "Property Function - container 8" ; - mf:action - [ qt:query <container-8.rq> ; - qt:data <data-4.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 8" ; + mf:action + [ qt:query <container-8.rq> ; + qt:data <data-4.ttl> ] ; mf:result <container-8.srx> ] - [ mf:name "Property Function - container 9" ; - mf:action - [ qt:query <container-9.rq> ; - qt:data <data-6.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - container 9" ; + mf:action + [ qt:query <container-9.rq> ; + qt:data <data-6.ttl> ] ; mf:result <container-9.srx> ] - [ mf:name "Property Function - sequence 1" ; - mf:action - [ qt:query <seq-1.rq> ; - qt:data <data-2.ttl> ] ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - sequence 1" ; + mf:action + [ qt:query <seq-1.rq> ; + qt:data <data-2.ttl> ] ; mf:result <seq-1.ttl> ] - [ mf:name "Property Function - splitIRI 1" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 1" ; mf:action [ qt:query <splitIRI-1.rq> ; qt:data <data-3.ttl> ] ; - mf:result <splitIRI-1.srx> + mf:result <splitIRI-1.srx> ] - [ mf:name "Property Function - splitIRI 2" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 2" ; mf:action [ qt:query <splitIRI-2.rq> ; qt:data <data-3.ttl> ] ; - mf:result <splitIRI-2.srx> + mf:result <splitIRI-2.srx> ] - [ mf:name "Property Function - splitIRI 3" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 3" ; mf:action [ qt:query <splitIRI-3.rq> ; qt:data <data-3.ttl> ] ; mf:result <splitIRI-3.srx> ] - [ mf:name "Property Function - splitIRI 4" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 4" ; mf:action [ qt:query <splitIRI-4.rq> ; qt:data <data-3.ttl> ] ; - mf:result <splitIRI-4.srx> + mf:result <splitIRI-4.srx> ] - [ mf:name "Property Function - splitIRI 5" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 5" ; mf:action [ qt:query <splitIRI-5.rq> ; qt:data <data-3.ttl> ] ; mf:result <splitIRI-5.ttl> ] - [ mf:name "Property Function - splitIRI 6" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 6" ; mf:action [ qt:query <splitIRI-6.rq> ; qt:data <data-3.ttl> ] ; - mf:result <splitIRI-6.srx> + mf:result <splitIRI-6.srx> ] - [ mf:name "Property Function - splitIRI 7" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 7" ; mf:action [ qt:query <splitIRI-7.rq> ; qt:data <data-3.ttl> ] ; mf:result <splitIRI-7.srx> ] - [ mf:name "Property Function - splitIRI 8" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 8" ; mf:action [ qt:query <splitIRI-8.rq> ; qt:data <data-3.ttl> ] ; mf:result <splitIRI-8.srx> ] - [ mf:name "Property Function - splitIRI 9" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - splitIRI 9" ; mf:action [ qt:query <splitIRI-9.rq> ; qt:data <data-3.ttl> ] ; mf:result <splitIRI-9.srx> ] - [ mf:name "Property Function - Assign 1" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - Assign 1" ; mf:action [ qt:query <assign-1.rq> ; qt:data <data-3.ttl> ] ; mf:result <assign-1.srx> ] - [ mf:name "Property Function - Assign 2" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - Assign 2" ; mf:action [ qt:query <assign-2.rq> ; qt:data <data-3.ttl> ] ; mf:result <assign-2.srx> ] - [ mf:name "Property Function - Assign 3" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - Assign 3" ; mf:action [ qt:query <assign-3.rq> ; qt:data <data-3.ttl> ] ; mf:result <assign-3.srx> ] - [ mf:name "Property Function - Assign 4" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - Assign 4" ; mf:action [ qt:query <assign-4.rq> ; qt:data <data-3.ttl> ] ; mf:result <assign-4.srx> ] - [ mf:name "Property Function - Assign 5" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - Assign 5" ; mf:action [ qt:query <assign-5.rq> ; qt:data <data-3.ttl> ] ; mf:result <assign-5.srx> ] - [ mf:name "Property Function - Assign 6 (via java:)" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - Assign 6 (via java:)" ; mf:action [ qt:query <assign-6.rq> ; qt:data <data-3.ttl> ] ; mf:result <assign-6.srx> ] - [ mf:name "Property Function - str" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - str" ; mf:action [ qt:query <str-1.rq> ; qt:data <data-0.ttl> ] ; mf:result <str-1.srx> - ] - [ mf:name "Property Function - concat" ; + ] + [ rdf:type mf:QueryEvaluationTest ; + mf:name "Property Function - concat" ; mf:action [ qt:query <concat-1.rq> ; qt:data <data-3.ttl> ] ; diff --git a/jena-arq/testing/ARQ/Scripting/manifest.ttl b/jena-arq/testing/ARQ/Scripting/manifest.ttl index aea79e4e84..f8bcec64fb 100644 --- a/jena-arq/testing/ARQ/Scripting/manifest.ttl +++ b/jena-arq/testing/ARQ/Scripting/manifest.ttl @@ -23,29 +23,33 @@ rdfs:comment "JavaScript function" ; mf:entries ( - [ mf:name "JS Call: file-defined function - js:identity" ; - mf:action - [ qt:query <js-query-1.rq> ; - qt:data <data.ttl> ] ; - mf:result <js-query-1.srj> + [ rdf:type mf:QueryEvaluationTest ; + mf:name "JS Call: file-defined function - js:identity" ; + mf:action + [ qt:query <js-query-1.rq> ; + qt:data <data.ttl> ] ; + mf:result <js-query-1.srj> ] - [ mf:name "JS Call: string-defined function - js:inc" ; - mf:action - [ qt:query <js-query-2.rq> ; - qt:data <data.ttl> ] ; - mf:result <js-query-2.srj> + [ rdf:type mf:QueryEvaluationTest ; + mf:name "JS Call: string-defined function - js:inc" ; + mf:action + [ qt:query <js-query-2.rq> ; + qt:data <data.ttl> ] ; + mf:result <js-query-2.srj> ] - [ mf:name "JS Call: nested functions - js:inc(js:inc)" ; - mf:action - [ qt:query <js-query-3.rq> ; - qt:data <data.ttl> ] ; - mf:result <js-query-3.srj> + [ rdf:type mf:QueryEvaluationTest ; + mf:name "JS Call: nested functions - js:inc(js:inc)" ; + mf:action + [ qt:query <js-query-3.rq> ; + qt:data <data.ttl> ] ; + mf:result <js-query-3.srj> ] - [ mf:name "JS Call: FILTER functions - multiple calls" ; - mf:action - [ qt:query <js-query-4.rq> ; - qt:data <data.ttl> ] ; - mf:result <js-query-4.srj> + [ rdf:type mf:QueryEvaluationTest ; + mf:name "JS Call: FILTER functions - multiple calls" ; + mf:action + [ qt:query <js-query-4.rq> ; + qt:data <data.ttl> ] ; + mf:result <js-query-4.srj> ] ## js-query-5 is an error and run separately. ). diff --git a/jena-arq/testing/ARQ/ValueTesting/manifest.ttl b/jena-arq/testing/ARQ/ValueTesting/manifest.ttl index f447384aff..d344866e21 100644 --- a/jena-arq/testing/ARQ/ValueTesting/manifest.ttl +++ b/jena-arq/testing/ARQ/ValueTesting/manifest.ttl @@ -13,162 +13,156 @@ # See the License for the specific language governing permissions and # limitations under the License. -# $Id: manifest.n3,v 1.3 2006/07/14 15:59:33 andy_seaborne Exp $ - @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix dawgt: <http://www.w3.org/2001/sw/DataAccess/tests/test-dawg#> . @prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> . @prefix qt: <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> . <> rdf:type mf:Manifest ; rdfs:comment "Value Testing Tests" ; mf:entries - ([ mf:name "extendedType-eq-pass" ; - rdfs:comment + ([ rdf:type mf:QueryEvaluationTest ; + mf:name "extendedType-eq-pass" ; + rdfs:comment "Only extended types with identical lexical and datatypes can be tested for = ." ; - mf:action + mf:action [ qt:data <extendedType-0.n3> ; qt:query <extendedType-eq-pass.rq> ] ; - mf:result <extendedType-eq-pass-result.n3> ; - dawgt:approval dawgt:Approved ; - dawgt:approvedBy <http://lists.w3.org/Archives/Public/public-rdf-dawg/2005JulSep/0175> - ] + mf:result <extendedType-eq-pass-result.n3> ; + ] - [ mf:name "extendedType-ne-fail" ; - rdfs:comment + [ rdf:type mf:QueryEvaluationTest ; + mf:name "extendedType-ne-fail" ; + rdfs:comment "Opaque types can not be tested for != ." ; - rdfs:seeAlso - <http://www.w3.org/2005/04/26-dawg-irc#T15-21-30> ; - mf:action + mf:action [ qt:data <extendedType-0.n3> ; qt:query <extendedType-ne-fail.rq> ] ; - mf:result <extendedType-ne-fail-result.n3> ; - dawgt:approval dawgt:Approved ; - dawgt:approvedBy <http://lists.w3.org/Archives/Public/public-rdf-dawg/2005JulSep/0175> + mf:result <extendedType-ne-fail-result.n3> ; ] - [ mf:name "extendedType-literal-eq" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "extendedType-literal-eq" ; rdfs:comment "Test FILTER match on extended type." ; mf:action [ qt:data <extendedType-0.n3> ; qt:query <extendedType-literal-eq.rq> ] ; mf:result <extendedType-literal-eq-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "extendedType-literal-ne" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "extendedType-literal-ne" ; rdfs:comment "Test FILTER negative match on extended type." ; mf:action [ qt:data <extendedType-0.n3> ; qt:query <extendedType-literal-ne.rq> ] ; mf:result <extendedType-literal-ne-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "extendedType-graph" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "extendedType-graph" ; rdfs:comment "Test graph match on extended type." ; mf:action [ qt:data <extendedType-0.n3> ; qt:query <extendedType-graph.rq> ] ; mf:result <extendedType-graph-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "typePromotion-decimal-decimal-pass" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "typePromotion-decimal-decimal-pass" ; rdfs:comment "Positive test: product of type promotion within the xsd:decimal type tree." ; mf:action [ qt:data <typePromotion-0.n3> ; qt:query <typePromotion-decimal-decimal-pass.rq> ] ; mf:result <typePromotion-decimal-decimal-pass-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ - mf:name "typePromotion-decimal-decimal-fail" ; - rdfs:comment - "Negative test: product of type promotion within the xsd:decimal type tree." ; - mf:action - [ qt:data <typePromotion-0.n3> ; - qt:query <typePromotion-decimal-decimal-fail.rq> ] ; - mf:result <typePromotion-decimal-decimal-fail-result.n3> ; - dawgt:approval dawgt:NotApproved + [ rdf:type mf:QueryEvaluationTest ; + mf:name "typePromotion-decimal-decimal-fail" ; + rdfs:comment + "Negative test: product of type promotion within the xsd:decimal type tree." ; + mf:action + [ qt:data <typePromotion-0.n3> ; + qt:query <typePromotion-decimal-decimal-fail.rq> ] ; + mf:result <typePromotion-decimal-decimal-fail-result.n3> ; ] - [ mf:name "boolean-equiv-FALSE" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "boolean-equiv-FALSE" ; rdfs:comment "FALSE = legal boolean values." ; mf:action [ qt:data <boolean-0.n3> ; qt:query <boolean-equiv-FALSE.rq> ] ; mf:result <boolean-equiv-FALSE-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "boolean-equiv-TRUE" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "boolean-equiv-TRUE" ; rdfs:comment "TRUE = legal boolean values." ; mf:action [ qt:data <boolean-0.n3> ; qt:query <boolean-equiv-TRUE.rq> ] ; mf:result <boolean-equiv-TRUE-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "boolean-equiv-xsdType" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "boolean-equiv-xsdType" ; rdfs:comment "Various lexical forms of xsd:boolean equal each other." ; mf:action [ qt:data <boolean-0.n3> ; qt:query <boolean-equiv-xsdType.rq> ] ; mf:result <boolean-equiv-xsdType-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "boolean-logical-OR" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "boolean-logical-OR" ; rdfs:comment "Various lexical forms of xsd:boolean equal an EBV." ; mf:action [ qt:data <boolean-0.n3> ; qt:query <boolean-logical-OR.rq> ] ; mf:result <boolean-logical-OR-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "boolean-false-canonical" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "boolean-false-canonical" ; rdfs:comment "Lexical form of FALSE" ; mf:action [ qt:data <boolean-0.n3> ; qt:query <boolean-false-canonical.rq> ] ; mf:result <boolean-false-canonical-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "boolean-true-canonical" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "boolean-true-canonical" ; rdfs:comment "Lexical form of TRUE" ; mf:action [ qt:data <boolean-0.n3> ; qt:query <boolean-true-canonical.rq> ] ; mf:result <boolean-true-canonical-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "boolean-EBV-canonical" ; + [ rdf:type mf:QueryEvaluationTest ; + mf:name "boolean-EBV-canonical" ; rdfs:comment "Lexical form of EBV" ; mf:action [ qt:data <boolean-0.n3> ; qt:query <boolean-EBV-canonical.rq> ] ; mf:result <boolean-EBV-canonical-result.n3> ; - dawgt:approval dawgt:NotApproved ] - [ mf:name "xsd-string-lt" ; + + [ rdf:type mf:QueryEvaluationTest ; + mf:name "xsd-string-lt" ; rdfs:comment "FILTER with < on xsd:string" ; mf:action @@ -176,7 +170,9 @@ qt:query <xsd-string-lt.rq> ] ; mf:result <xsd-string-lt-result.rdf> ] - [ mf:name "xsd-string-gt" ; + + [ rdf:type mf:QueryEvaluationTest ; + mf:name "xsd-string-gt" ; rdfs:comment "FILTER with > on xsd:string" ; mf:action @@ -184,7 +180,4 @@ qt:query <xsd-string-gt.rq> ] ; mf:result <xsd-string-gt-result.rdf> ] - - - # End of tests ). diff --git a/jena-core/src/main/java/org/apache/jena/util/LocationMapper.java b/jena-core/src/main/java/org/apache/jena/util/LocationMapper.java index 5d8c2256c6..268f417626 100644 --- a/jena-core/src/main/java/org/apache/jena/util/LocationMapper.java +++ b/jena-core/src/main/java/org/apache/jena/util/LocationMapper.java @@ -30,17 +30,17 @@ import org.apache.jena.vocabulary.LocationMappingVocab ; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** +/** * Alternative locations for URIs. Maintains two maps: * single item alternatives and alternative prefixes. * To suggest an alternative location, first check the single items, * then check the prefixes. - * + * * A LocationMapper can be configured by an RDF file. The default for this * is "etc/location-mapping.n3". - * + * * There is a default LocationMapper which is used by the global @link{FileManager}. - * + * * @see FileManager */ public class LocationMapper @@ -53,27 +53,24 @@ public class LocationMapper "file:etc/location-mapping.ttl" ; public static final String GlobalMapperSystemProperty1 = "http://jena.hpl.hp.com/2004/08/LocationMap" ; public static final String GlobalMapperSystemProperty2 = "LocationMap" ; - - static String s_globalMapperPath = null ; - + + static String s_globalMapperPath = null ; + Map<String, String> altLocations = new HashMap<>() ; Map<String, String> altPrefixes = new HashMap<>() ; - + static LocationMapper theMapper = null ; - + /** For use within Jena libraries only. */ - public static LocationMapper getInternal() - { - if ( theMapper == null ) - { - theMapper = new LocationMapper() ; + public static LocationMapper getInternal() { + if ( theMapper == null ) { + theMapper = new LocationMapper(); if ( getGlobalConfigPath() != null ) - theMapper.initFromPath(getGlobalConfigPath(), false) ; + theMapper.initFromPath(getGlobalConfigPath(), false); } - return theMapper ; + return theMapper; } - - + /** * Get the global LocationMapper. * @deprecated Use {@code StreamManager} and {@code LocationMapper} from {@code org.apache.jena.riot.system.stream}. @@ -81,340 +78,297 @@ public class LocationMapper @Deprecated public static LocationMapper get() { return getInternal(); } - /** Set the global location mapper. (as returned by {@link #get()}) - * If called before any call to get(), then the usual default global location mapper is not created + * If called before any call to get(), then the usual default global location mapper is not created * @param globalLocationMapper */ - public static void setGlobalLocationMapper(LocationMapper globalLocationMapper) - { - theMapper = globalLocationMapper ; + public static void setGlobalLocationMapper(LocationMapper globalLocationMapper) { + theMapper = globalLocationMapper; } - /** Make a location mapper from the path settings */ - static public LocationMapper makeGlobal() - { - LocationMapper lMap = new LocationMapper() ; + /** Make a location mapper from the path settings */ + static public LocationMapper makeGlobal() { + LocationMapper lMap = new LocationMapper(); if ( getGlobalConfigPath() != null ) - lMap.initFromPath(getGlobalConfigPath(), false) ; - return lMap ; + lMap.initFromPath(getGlobalConfigPath(), false); + return lMap; } - + /** * Create a LocationMapper with no mapping yet * @deprecated Use {@code StreamManager} and {@code LocationMapper} from {@code org.apache.jena.riot.system.stream}. */ @Deprecated public LocationMapper() { } - + /** * Create a LocationMapper made like another one - * This is a deep copy of the location and prefix maps. + * This is a deep copy of the location and prefix maps. * @deprecated Use {@code StreamManager} and {@code LocationMapper} from {@code org.apache.jena.riot.system.stream}. */ @Deprecated - public LocationMapper(LocationMapper locMapper) - { - altLocations.putAll(locMapper.altLocations) ; - altPrefixes.putAll(locMapper.altPrefixes) ; + public LocationMapper(LocationMapper locMapper) { + altLocations.putAll(locMapper.altLocations); + altPrefixes.putAll(locMapper.altPrefixes); } - + /** Create a LocationMapper from an existing model * @see org.apache.jena.vocabulary.LocationMappingVocab * @deprecated Use {@code StreamManager} and {@code LocationMapper} from {@code org.apache.jena.riot.system.stream}. */ @Deprecated - public LocationMapper(Model model) - { - processConfig(model) ; + public LocationMapper(Model model) { + processConfig(model); } - + /** - * Create a LocationMapper from a config file - * @deprecated Use {@code StreamManager} and {@code LocationMapper} from {@code org.apache.jena.riot.system.stream}. + * Create a LocationMapper from a config file + * + * @deprecated Use {@code StreamManager} and {@code LocationMapper} from + * {@code org.apache.jena.riot.system.stream}. */ @Deprecated - public LocationMapper(String config) - { - initFromPath(config, true) ; + public LocationMapper(String config) { + initFromPath(config, true); } - - private void initFromPath(String configPath, boolean configMustExist) - { - if ( configPath == null || configPath.length() == 0 ) - { - log.warn("Null configuration") ; - return ; + + private void initFromPath(String configPath, boolean configMustExist) { + if ( configPath == null || configPath.length() == 0 ) { + log.warn("Null configuration"); + return; } - + // Make a file manager to look for the location mapping file - FileManager fm = new FileManagerImpl() ; - fm.addLocatorFile() ; - fm.addLocatorClassLoader(fm.getClass().getClassLoader()) ; - + FileManager fm = new FileManagerImpl(); + fm.addLocatorFile(); + fm.addLocatorClassLoader(fm.getClass().getClassLoader()); + try { - String uriConfig = null ; - InputStream in = null ; - - StringTokenizer pathElems = new StringTokenizer( configPath, FileManager.PATH_DELIMITER ); + String uriConfig = null; + InputStream in = null; + + StringTokenizer pathElems = new StringTokenizer(configPath, FileManager.PATH_DELIMITER); while (pathElems.hasMoreTokens()) { String uri = pathElems.nextToken(); if ( uri == null || uri.length() == 0 ) - break ; - - in = fm.openNoMap(uri) ; - if ( in != null ) - { - uriConfig = uri ; - break ; + break; + + in = fm.openNoMap(uri); + if ( in != null ) { + uriConfig = uri; + break; } } - if ( in == null ) - { - if ( ! configMustExist ) - log.debug("Failed to find configuration: "+configPath) ; - return ; + if ( in == null ) { + if ( !configMustExist ) + log.debug("Failed to find configuration: " + configPath); + return; } - String syntax = FileUtils.guessLang(uriConfig) ; - Model model = ModelFactory.createDefaultModel() ; - model.read(in, uriConfig, syntax) ; - processConfig(model) ; - } catch (JenaException ex) - { - LoggerFactory.getLogger(LocationMapper.class).warn("Error in configuration file: "+ex.getMessage()) ; + String syntax = FileUtils.guessLang(uriConfig); + Model model = ModelFactory.createDefaultModel(); + model.read(in, uriConfig, syntax); + processConfig(model); + } catch (JenaException ex) { + LoggerFactory.getLogger(LocationMapper.class).warn("Error in configuration file: " + ex.getMessage()); } } - - public String altMapping(String uri) - { - return altMapping(uri, uri) ; + + public String altMapping(String uri) { + return altMapping(uri, uri); } - /** Apply mappings: first try for an exact alternative location, then - * try to remap by prefix, finally, try the special case of filenames - * in a specific base directory. + /** + * Apply mappings: first try for an exact alternative location, then try to remap + * by prefix, finally, try the special case of filenames in a specific base + * directory. + * * @param uri * @param otherwise * @return The alternative location chosen */ - public String altMapping(String uri, String otherwise) - { - if ( altLocations.containsKey(uri)) - return altLocations.get(uri) ; - String newStart = null ; - String oldStart = null ; - for ( String prefix : altPrefixes.keySet() ) - { - if ( uri.startsWith( prefix ) ) - { - String s = altPrefixes.get( prefix ); - if ( newStart == null || newStart.length() < s.length() ) - { + public String altMapping(String uri, String otherwise) { + if ( altLocations.containsKey(uri) ) + return altLocations.get(uri); + String newStart = null; + String oldStart = null; + for ( String prefix : altPrefixes.keySet() ) { + if ( uri.startsWith(prefix) ) { + String s = altPrefixes.get(prefix); + if ( newStart == null || newStart.length() < s.length() ) { oldStart = prefix; newStart = s; } } } - + if ( newStart != null ) - return newStart+uri.substring(oldStart.length()) ; - - return otherwise ; + return newStart + uri.substring(oldStart.length()); + + return otherwise; + } + + public void addAltEntry(String uri, String alt) { + altLocations.put(uri, alt); + } + + public void addAltPrefix(String uriPrefix, String altPrefix) { + altPrefixes.put(uriPrefix, altPrefix); } - - public void addAltEntry(String uri, String alt) - { - altLocations.put(uri, alt) ; + /** Iterate over all the entries registered */ + public Iterator<String> listAltEntries() { + return altLocations.keySet().iterator(); } - public void addAltPrefix(String uriPrefix, String altPrefix) - { - altPrefixes.put(uriPrefix, altPrefix) ; + /** Iterate over all the prefixes registered */ + public Iterator<String> listAltPrefixes() { + return altPrefixes.keySet().iterator(); } - /** Iterate over all the entries registered */ - public Iterator<String> listAltEntries() { return altLocations.keySet().iterator() ; } - /** Iterate over all the prefixes registered */ - public Iterator<String> listAltPrefixes() { return altPrefixes.keySet().iterator() ; } - - public void removeAltEntry(String uri) - { - altLocations.remove(uri) ; + public void removeAltEntry(String uri) { + altLocations.remove(uri); } - public void removeAltPrefix(String uriPrefix) - { - altPrefixes.remove(uriPrefix) ; + public void removeAltPrefix(String uriPrefix) { + altPrefixes.remove(uriPrefix); } - public String getAltEntry(String uri) - { - return altLocations.get(uri) ; + + public String getAltEntry(String uri) { + return altLocations.get(uri); } - public String getAltPrefix(String uriPrefix) - { - return altPrefixes.get(uriPrefix) ; + public String getAltPrefix(String uriPrefix) { + return altPrefixes.get(uriPrefix); } - - - static private String getGlobalConfigPath() - { + + static private String getGlobalConfigPath() { if ( s_globalMapperPath == null ) - s_globalMapperPath = SystemUtils.getSystemProperty(GlobalMapperSystemProperty1,null) ; + s_globalMapperPath = SystemUtils.getSystemProperty(GlobalMapperSystemProperty1, null); if ( s_globalMapperPath == null ) - s_globalMapperPath = SystemUtils.getSystemProperty(GlobalMapperSystemProperty2,null) ; + s_globalMapperPath = SystemUtils.getSystemProperty(GlobalMapperSystemProperty2, null); if ( s_globalMapperPath == null ) - s_globalMapperPath = DEFAULT_PATH ; - return s_globalMapperPath ; + s_globalMapperPath = DEFAULT_PATH; + return s_globalMapperPath; } - + @Override - public int hashCode() - { - int x = 0 ; + public int hashCode() { + int x = 0; - for ( String k : altLocations.keySet() ) - { - String v = altLocations.get( k ); + for ( String k : altLocations.keySet() ) { + String v = altLocations.get(k); x = x ^ k.hashCode() ^ v.hashCode(); } - for ( String k : altPrefixes.keySet() ) - { - String v = altPrefixes.get( k ); + for ( String k : altPrefixes.keySet() ) { + String v = altPrefixes.get(k); x = x ^ k.hashCode() ^ v.hashCode(); } - return x ; + return x; } - + @Override - public boolean equals(Object obj) - { - if ( ! ( obj instanceof LocationMapper ) ) - return false ; - LocationMapper other = (LocationMapper)obj ; - + public boolean equals(Object obj) { + if ( !(obj instanceof LocationMapper) ) + return false; + LocationMapper other = (LocationMapper)obj; + if ( altLocations.size() != other.altLocations.size() ) - return false ; - + return false; + if ( altPrefixes.size() != other.altPrefixes.size() ) - return false ; + return false; - for ( String k : altLocations.keySet() ) - { - String v = altLocations.get( k ); - if ( !other.altLocations.get( k ).equals( v ) ) - { + for ( String k : altLocations.keySet() ) { + String v = altLocations.get(k); + if ( !other.altLocations.get(k).equals(v) ) { return false; } } - for ( String k : altPrefixes.keySet() ) - { - String v = altPrefixes.get( k ); - if ( !other.altPrefixes.get( k ).equals( v ) ) - { + for ( String k : altPrefixes.keySet() ) { + String v = altPrefixes.get(k); + if ( !other.altPrefixes.get(k).equals(v) ) { return false; } } - return true ; + return true; } - + @Override - public String toString() - { - String s = "" ; - for ( String k : altLocations.keySet() ) - { - String v = altLocations.get( k ); + public String toString() { + String s = ""; + for ( String k : altLocations.keySet() ) { + String v = altLocations.get(k); s = s + "(Loc:" + k + "=>" + v + ") "; } - for ( String k : altPrefixes.keySet() ) - { - String v = altPrefixes.get( k ); + for ( String k : altPrefixes.keySet() ) { + String v = altPrefixes.get(k); s = s + "(Prefix:" + k + "=>" + v + ") "; } - return s ; + return s; } - - public Model toModel() - { - Model m = ModelFactory.createDefaultModel() ; - m.setNsPrefix("lmap", "http://jena.hpl.hp.com/2004/08/location-mapping#") ; - toModel(m) ; - return m ; + + public Model toModel() { + Model m = ModelFactory.createDefaultModel(); + m.setNsPrefix("lmap", "http://jena.hpl.hp.com/2004/08/location-mapping#"); + toModel(m); + return m; } - - public void toModel(Model model) - { - for ( String s1 : altLocations.keySet() ) - { + public void toModel(Model model) { + + for ( String s1 : altLocations.keySet() ) { Resource r = model.createResource(); Resource e = model.createResource(); - model.add( r, LocationMappingVocab.mapping, e ); + model.add(r, LocationMappingVocab.mapping, e); String k = s1; - String v = altLocations.get( k ); - model.add( e, LocationMappingVocab.name, k ); - model.add( e, LocationMappingVocab.altName, v ); + String v = altLocations.get(k); + model.add(e, LocationMappingVocab.name, k); + model.add(e, LocationMappingVocab.altName, v); } - for ( String s : altPrefixes.keySet() ) - { + for ( String s : altPrefixes.keySet() ) { Resource r = model.createResource(); Resource e = model.createResource(); - model.add( r, LocationMappingVocab.mapping, e ); + model.add(r, LocationMappingVocab.mapping, e); String k = s; - String v = altPrefixes.get( k ); - model.add( e, LocationMappingVocab.prefix, k ); - model.add( e, LocationMappingVocab.altPrefix, v ); + String v = altPrefixes.get(k); + model.add(e, LocationMappingVocab.prefix, k); + model.add(e, LocationMappingVocab.altPrefix, v); } } - - public void processConfig(Model m) - { - StmtIterator mappings = - m.listStatements(null, LocationMappingVocab.mapping, (RDFNode)null) ; - - for (; mappings.hasNext();) - { - Statement s = mappings.nextStatement() ; - Resource mapping = s.getResource() ; - - if ( mapping.hasProperty(LocationMappingVocab.name) ) - { - try - { - String name = mapping.getRequiredProperty(LocationMappingVocab.name) - .getString() ; - String altName = mapping.getRequiredProperty(LocationMappingVocab.altName) - .getString() ; - addAltEntry(name, altName) ; - log.debug("Mapping: "+name+" => "+altName) ; - } catch (JenaException ex) - { - log.warn("Error processing name mapping: "+ex.getMessage()) ; - return ; + + public void processConfig(Model m) { + StmtIterator mappings = m.listStatements(null, LocationMappingVocab.mapping, (RDFNode)null); + + for ( ; mappings.hasNext() ; ) { + Statement s = mappings.nextStatement(); + Resource mapping = s.getResource(); + + if ( mapping.hasProperty(LocationMappingVocab.name) ) { + try { + String name = mapping.getRequiredProperty(LocationMappingVocab.name).getString(); + String altName = mapping.getRequiredProperty(LocationMappingVocab.altName).getString(); + addAltEntry(name, altName); + log.debug("Mapping: " + name + " => " + altName); + } catch (JenaException ex) { + log.warn("Error processing name mapping: " + ex.getMessage()); + return; } - + } - - if ( mapping.hasProperty(LocationMappingVocab.prefix) ) - { - try - { - String prefix = mapping.getRequiredProperty(LocationMappingVocab.prefix) - .getString() ; - String altPrefix = mapping.getRequiredProperty(LocationMappingVocab.altPrefix) - .getString() ; - addAltPrefix(prefix, altPrefix) ; - log.debug("Prefix mapping: "+prefix+" => "+altPrefix) ; - } catch (JenaException ex) - { - log.warn("Error processing prefix mapping: "+ex.getMessage()) ; - return ; + + if ( mapping.hasProperty(LocationMappingVocab.prefix) ) { + try { + String prefix = mapping.getRequiredProperty(LocationMappingVocab.prefix).getString(); + String altPrefix = mapping.getRequiredProperty(LocationMappingVocab.altPrefix).getString(); + addAltPrefix(prefix, altPrefix); + log.debug("Prefix mapping: " + prefix + " => " + altPrefix); + } catch (JenaException ex) { + log.warn("Error processing prefix mapping: " + ex.getMessage()); + return; } } } diff --git a/jena-core/src/main/java/org/apache/jena/vocabulary/TestManifest.java b/jena-core/src/main/java/org/apache/jena/vocabulary/TestManifest.java index 9e11992527..51a8406359 100644 --- a/jena-core/src/main/java/org/apache/jena/vocabulary/TestManifest.java +++ b/jena-core/src/main/java/org/apache/jena/vocabulary/TestManifest.java @@ -19,78 +19,102 @@ * SPDX-License-Identifier: Apache-2.0 */ -package org.apache.jena.vocabulary ; +package org.apache.jena.vocabulary; -import org.apache.jena.rdf.model.* ; +import org.apache.jena.rdf.model.Property; +import org.apache.jena.rdf.model.Resource; +import org.apache.jena.rdf.model.ResourceFactory; public class TestManifest { - /** <p>The RDF model that holds the vocabulary terms</p> */ - private static final Model m_model = ModelFactory.createDefaultModel(); - /** <p>The namespace of the vocabulary as a string</p> */ + /** The namespace of the vocabulary as a string */ public static final String NS = "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#"; - /** <p>The namespace of the vocabulary as a string</p> - * @see #NS */ - public static String getURI() {return NS;} + /** + * The namespace of the vocabulary as a string + */ + public static String getURI() { return NS; } + + /** The namespace of the vocabulary as a resource */ + public static final Resource NAMESPACE = ResourceFactory.createResource(NS); - /** <p>The namespace of the vocabulary as a resource</p> */ - public static final Resource NAMESPACE = m_model.createResource( NS ); + /** Spec Version label */ + public static final Property specVersion = ResourceFactory.createProperty(NS+"specVersion"); - /** <p>The expected outcome</p> */ - public static final Property result = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#result" ); + /** The expected outcome */ + public static final Property result = ResourceFactory.createProperty(NS+"result"); - /** <p>Action to perform</p> */ - public static final Property action = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#action" ); + /** Action to perform */ + public static final Property action = ResourceFactory.createProperty(NS+"action"); - /** <p>Optional name of this entry</p> */ - public static final Property name = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#name" ); + /** Optional name of this entry */ + public static final Property name = ResourceFactory.createProperty(NS+"name"); - /** <p>Connects the manifest resource to rdf:type list of entries</p> */ - public static final Property entries = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#entries" ); + /** Connects the manifest resource to rdf:type list of entries */ + public static final Property entries = ResourceFactory.createProperty(NS+"entries"); - /** <p>Connects the manifest resource to rdf:type list of manifests</p> */ - public static final Property include = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#include" ); + /** Connects the manifest resource to rdf:type list of manifests */ + public static final Property include = ResourceFactory.createProperty(NS+"include"); /** Assumed base for the tests in the manifest */ - public static final Property assumedTestBase = m_model.createProperty( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#assumedTestBase" ); - - /** <p>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.</p> + public static final Property assumedTestBase = ResourceFactory.createProperty(NS+"assumedTestBase"); + + /** + * 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. + */ + public static final Resource ReducedCardinalityTest = ResourceFactory.createResource(NS+"ReducedCardinalityTest"); + + /** + * 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. */ - public static final Resource ReducedCardinalityTest = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#ReducedCardinalityTest" ); + public static final Resource QueryEvaluationTest = ResourceFactory.createResource(NS+"QueryEvaluationTest"); - /** <p>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.</p> + /** + * 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. */ - public static final Resource QueryEvaluationTest = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#QueryEvaluationTest" ); + public static final Resource NegativeSyntaxTest = ResourceFactory.createResource(NS+"NegativeSyntaxTest"); - /** <p>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.</p> + /** + * A type of test specifically for syntax testing. Syntax tests are not required + * to have an associated result, only an action. */ - public static final Resource NegativeSyntaxTest = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#NegativeSyntaxTest" ); + public static final Resource PositiveSyntaxTest = ResourceFactory.createResource(NS+"PositiveSyntaxTest"); - /** <p>A type of test specifically for syntax testing. Syntax tests are not required - * to have an associated result, only an action.</p> + /** + * A type of test specifically for update syntax testing. */ - public static final Resource PositiveSyntaxTest = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#PositiveSyntaxTest" ); + public static final Resource PositiveUpdateSyntaxTest = ResourceFactory.createResource(NS+"PositiveUpdateSyntaxTest"); + public static final Resource PositiveUpdateSyntaxTest11 = ResourceFactory.createResource(NS+"PositiveUpdateSyntaxTest11"); + + /** + * A type of test specifically for update syntax testing. + * Negative syntax tests are tests of which the result should be a parser error. + */ + public static final Resource NegativeUpdateSyntaxTest = ResourceFactory.createResource(NS+"NegativeUpdateSyntaxTest"); + public static final Resource NegativeUpdateSyntaxTest11 = ResourceFactory.createResource(NS+"NegativeUpdateSyntaxTest11"); + + /** The class of all SPARQL Update evaluation tests */ + public static final Resource UpdateEvaluationTest = ResourceFactory.createResource( NS+"UpdateEvaluationTest" ); - /** <p>One entry in rdf:type list of entries</p> */ - public static final Resource ManifestEntry = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#ManifestEntry" ); + /** One entry in rdf:type list of entries */ + public static final Resource ManifestEntry = ResourceFactory.createResource(NS+"ManifestEntry"); - /** <p>The class of manifests</p> */ - public static final Resource Manifest = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#Manifest" ); + /** The class of manifests */ + public static final Resource Manifest = ResourceFactory.createResource(NS+"Manifest"); - public static final Resource accepted = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#accepted" ); + public static final Resource accepted = ResourceFactory.createResource(NS+"accepted"); - public static final Resource proposed = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#proposed" ); + public static final Resource proposed = ResourceFactory.createResource(NS+"proposed"); - public static final Resource rejected = m_model.createResource( "http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#rejected" ); + public static final Resource rejected = ResourceFactory.createResource(NS+"rejected"); }
