|
From: <tho...@us...> - 2014-11-18 15:01:33
|
Revision: 8717
http://sourceforge.net/p/bigdata/code/8717
Author: thompsonbry
Date: 2014-11-18 15:01:18 +0000 (Tue, 18 Nov 2014)
Log Message:
-----------
RDR test suites.
Modified Paths:
--------------
branches/BIGDATA_RELEASE_1_4_0/bigdata/src/releases/RELEASE_1_4_0.txt
branches/BIGDATA_RELEASE_1_4_0/bigdata/src/resources/logging/log4j.properties
branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/java/com/bigdata/rdf/ServiceProviderHook.java
branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-04.ttlx
branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/WorkbenchServlet.java
branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractTestNanoSparqlClient.java
branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager.java
Added Paths:
-----------
branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestRDROperations.java
branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/rdr_01.ttlx
Modified: branches/BIGDATA_RELEASE_1_4_0/bigdata/src/releases/RELEASE_1_4_0.txt
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata/src/releases/RELEASE_1_4_0.txt 2014-11-18 12:03:24 UTC (rev 8716)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata/src/releases/RELEASE_1_4_0.txt 2014-11-18 15:01:18 UTC (rev 8717)
@@ -53,14 +53,17 @@
- http://trac.bigdata.com/ticket/714 (Migrate to openrdf 2.7)
- http://trac.bigdata.com/ticket/745 (BackgroundTupleResult overrides final method close)
+- http://trac.bigdata.com/ticket/751 (explicit bindings get ignored in subselect (duplicate of #714))
- http://trac.bigdata.com/ticket/813 (Documentation on BigData Reasoning)
- http://trac.bigdata.com/ticket/911 (workbench does not display errors well)
- http://trac.bigdata.com/ticket/1035 (DISTINCT PREDICATEs query is slow)
- http://trac.bigdata.com/ticket/1037 (SELECT COUNT(...) (DISTINCT|REDUCED) {single-triple-pattern} is slow)
+- http://trac.bigdata.com/ticket/1038 (RDR RDF parsers are not always discovered)
- http://trac.bigdata.com/ticket/1044 (ORDER_BY ordering not preserved by projection operator)
- http://trac.bigdata.com/ticket/1047 (NQuadsParser hangs when loading latest dbpedia dump.)
- http://trac.bigdata.com/ticket/1052 (ASTComplexOptionalOptimizer did not account for Values clauses)
- http://trac.bigdata.com/ticket/1054 (BigdataGraphFactory create method cannot be invoked from the gremlin command line due to a Boolean vs boolean type mismatch.)
+- http://trac.bigdata.com/ticket/1058 (update RDR documentation on wiki)
- http://trac.bigdata.com/ticket/1061 (Server does not generate RDR aware JSON for RDF/SPARQL RESULTS)
1.3.4:
Modified: branches/BIGDATA_RELEASE_1_4_0/bigdata/src/resources/logging/log4j.properties
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata/src/resources/logging/log4j.properties 2014-11-18 12:03:24 UTC (rev 8716)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata/src/resources/logging/log4j.properties 2014-11-18 15:01:18 UTC (rev 8717)
@@ -10,13 +10,15 @@
log4j.logger.com.bigdata.btree=WARN
log4j.logger.com.bigdata.counters.History=ERROR
log4j.logger.com.bigdata.counters.XMLUtility$MyHandler=ERROR
-log4j.logger.com.bigdata.counters.query.CounterSetQuery=INFO
-log4j.logger.com.bigdata.journal.CompactTask=INFO
+#log4j.logger.com.bigdata.counters.query.CounterSetQuery=INFO
+#log4j.logger.com.bigdata.journal.CompactTask=INFO
log4j.logger.com.bigdata.relation.accesspath.BlockingBuffer=ERROR
log4j.logger.com.bigdata.rdf.load=INFO
log4j.logger.com.bigdata.rdf.store.DataLoader=INFO
log4j.logger.com.bigdata.resources.AsynchronousOverflowTask=INFO
+#log4j.logger.com.bigdata.rdf.ServiceProviderHook=INFO
+
#log4j.logger.com.bigdata.rdf.sparql=ALL
#log4j.logger.com.bigdata.rdf.sail.sparql.BigdataExprBuilder=INFO
#log4j.logger.com.bigdata.rdf.sail.TestProvenanceQuery=ALL
@@ -78,3 +80,36 @@
log4j.appender.queryRunStateLog.BufferedIO=false
log4j.appender.queryRunStateLog.layout=org.apache.log4j.PatternLayout
log4j.appender.queryRunStateLog.layout.ConversionPattern=%m
+
+##
+# Solutions trace (tab delimited file). Uncomment the next line to enable.
+#log4j.logger.com.bigdata.bop.engine.SolutionsLog=INFO,solutionsLog
+log4j.additivity.com.bigdata.bop.engine.SolutionsLog=false
+log4j.appender.solutionsLog=org.apache.log4j.ConsoleAppender
+#log4j.appender.solutionsLog=org.apache.log4j.FileAppender
+log4j.appender.solutionsLog.Threshold=ALL
+#log4j.appender.solutionsLog.File=solutions.csv
+#log4j.appender.solutionsLog.Append=true
+# I find that it is nicer to have this unbuffered since you can see what
+# is going on and to make sure that I have complete rule evaluation logs
+# on shutdown.
+#log4j.appender.solutionsLog.BufferedIO=false
+log4j.appender.solutionsLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.solutionsLog.layout.ConversionPattern=SOLUTION:\t%m
+
+##
+# SPARQL query trace (plain text file). Uncomment 2nd line to enable.
+log4j.logger.com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper=WARN
+#log4j.logger.com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper=INFO,sparqlLog
+log4j.additivity.com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper=false
+log4j.appender.sparqlLog=org.apache.log4j.ConsoleAppender
+#log4j.appender.sparqlLog=org.apache.log4j.FileAppender
+log4j.appender.sparqlLog.Threshold=ALL
+#log4j.appender.sparqlLog.File=sparql.txt
+#log4j.appender.sparqlLog.Append=true
+# I find that it is nicer to have this unbuffered since you can see what
+# is going on and to make sure that I have complete rule evaluation logs
+# on shutdown.
+#log4j.appender.sparqlLog.BufferedIO=false
+log4j.appender.sparqlLog.layout=org.apache.log4j.PatternLayout
+log4j.appender.sparqlLog.layout.ConversionPattern=#----------%d-----------tx=%X{tx}\n%m\n
Modified: branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/java/com/bigdata/rdf/ServiceProviderHook.java
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/java/com/bigdata/rdf/ServiceProviderHook.java 2014-11-18 12:03:24 UTC (rev 8716)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/java/com/bigdata/rdf/ServiceProviderHook.java 2014-11-18 15:01:18 UTC (rev 8717)
@@ -235,7 +235,7 @@
final TupleQueryResultWriterRegistry r = TupleQueryResultWriterRegistry.getInstance();
- // add our custom RDR-enabled JSON writer
+ // add our custom RDR-enabled JSON writer for SPARQL result sets.
r.add(new BigdataSPARQLResultsJSONWriterFactory());
}
@@ -244,7 +244,7 @@
final TupleQueryResultParserRegistry r = TupleQueryResultParserRegistry.getInstance();
- // add our custom RDR-enabled JSON parser
+ // add our custom RDR-enabled JSON parser for SPARQL result sets.
r.add(new BigdataSPARQLResultsJSONParserFactory());
}
Modified: branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-04.ttlx
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-04.ttlx 2014-11-18 12:03:24 UTC (rev 8716)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/eval/reif/rdr-04.ttlx 2014-11-18 15:01:18 UTC (rev 8717)
@@ -1,5 +1,4 @@
@prefix : <http://example.com/> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
:a1 :b :c .
:a2 :b :c .
Modified: branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/WorkbenchServlet.java
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/WorkbenchServlet.java 2014-11-18 12:03:24 UTC (rev 8716)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/WorkbenchServlet.java 2014-11-18 15:01:18 UTC (rev 8717)
@@ -87,8 +87,9 @@
private void doConvert(final HttpServletRequest req,
final HttpServletResponse resp) throws IOException {
- final String baseURI = req.getRequestURL().toString();
+ final String baseURI = req.getRequestURL().toString();
+ // The content type of the request.
final String contentType = req.getContentType();
if (log.isInfoEnabled())
@@ -155,6 +156,10 @@
*/
rdfParser.parse(req.getInputStream(), baseURI);
+ /*
+ * Send back the graph using CONNEG to decide the MIME Type of the
+ * response.
+ */
sendGraph(req, resp, g);
} catch (Throwable t) {
Modified: branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractTestNanoSparqlClient.java
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractTestNanoSparqlClient.java 2014-11-18 12:03:24 UTC (rev 8716)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractTestNanoSparqlClient.java 2014-11-18 15:01:18 UTC (rev 8717)
@@ -26,7 +26,6 @@
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
-import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.Reader;
@@ -392,32 +391,61 @@
}
- protected String getStreamContents(final InputStream inputStream)
- throws IOException {
+// protected String getStreamContents(final InputStream inputStream)
+// throws IOException {
+//
+// final Reader rdr = new InputStreamReader(inputStream);
+//
+// final StringBuffer sb = new StringBuffer();
+//
+// final char[] buf = new char[512];
+//
+// while (true) {
+//
+// final int rdlen = rdr.read(buf);
+//
+// if (rdlen == -1)
+// break;
+//
+// sb.append(buf, 0, rdlen);
+//
+// }
+//
+// return sb.toString();
+//
+// }
- final Reader rdr = new InputStreamReader(inputStream);
-
- final StringBuffer sb = new StringBuffer();
-
- final char[] buf = new char[512];
-
- while (true) {
-
- final int rdlen = rdr.read(buf);
-
- if (rdlen == -1)
- break;
-
- sb.append(buf, 0, rdlen);
-
- }
-
- return sb.toString();
+ /**
+ * Counts the #of results in a SPARQL result set.
+ *
+ * @param result
+ * The connection from which to read the results.
+ *
+ * @return The #of results.
+ *
+ * @throws Exception
+ * If anything goes wrong.
+ */
+ protected long countResults(final TupleQueryResult result) throws Exception {
+ long count = 0;
+
+ while(result.hasNext()) {
+
+ result.next();
+
+ count++;
+
+ }
+
+ result.close();
+
+ return count;
+
}
/**
- * Counts the #of results in a SPARQL result set.
+ * Counts the #of results in a GRAPH result set.
*
* @param result
* The connection from which to read the results.
@@ -427,7 +455,7 @@
* @throws Exception
* If anything goes wrong.
*/
- protected long countResults(final TupleQueryResult result) throws Exception {
+ protected long countResults(final GraphQueryResult result) throws Exception {
long count = 0;
@@ -914,6 +942,16 @@
}
+ /**
+ * Read a graph from a file.
+ *
+ * @param file
+ * The file.
+ * @return The contents as a {@link Graph}.
+ * @throws RDFParseException
+ * @throws RDFHandlerException
+ * @throws IOException
+ */
protected static Graph readGraphFromFile(final File file) throws RDFParseException, RDFHandlerException, IOException {
final RDFFormat format = RDFFormat.forFileName(file.getName());
Modified: branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager.java
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager.java 2014-11-18 12:03:24 UTC (rev 8716)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlServerWithProxyIndexManager.java 2014-11-18 15:01:18 UTC (rev 8717)
@@ -270,6 +270,7 @@
break;
case sids:
// TODO SIDS mode UPDATE test suite.
+ suite.addTestSuite(TestRDROperations.class);
break;
case quads:
// QUADS mode UPDATE test suite.
Added: branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestRDROperations.java
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestRDROperations.java (rev 0)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestRDROperations.java 2014-11-18 15:01:18 UTC (rev 8717)
@@ -0,0 +1,219 @@
+/**
+Copyright (C) SYSTAP, LLC 2006-2007. All rights reserved.
+
+Contact:
+ SYSTAP, LLC
+ 4501 Tower Road
+ Greensboro, NC 27410
+ lic...@bi...
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; version 2 of the License.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+package com.bigdata.rdf.sail.webapp;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+import junit.framework.Test;
+
+import com.bigdata.journal.IIndexManager;
+import com.bigdata.rdf.ServiceProviderHook;
+import com.bigdata.rdf.sail.webapp.client.IPreparedBooleanQuery;
+import com.bigdata.rdf.sail.webapp.client.IPreparedGraphQuery;
+import com.bigdata.rdf.sail.webapp.client.IPreparedTupleQuery;
+import com.bigdata.rdf.sail.webapp.client.RemoteRepository.AddOp;
+
+/**
+ * Test of RDR specific data interchange and query.
+ *
+ * @author bryan
+ *
+ * @param <S>
+ */
+public class TestRDROperations<S extends IIndexManager> extends
+ AbstractTestNanoSparqlClient<S> {
+
+ public TestRDROperations() {
+
+ }
+
+ public TestRDROperations(final String name) {
+
+ super(name);
+
+ }
+
+ public static Test suite() {
+
+ return ProxySuiteHelper.suiteWhenStandalone(TestRDROperations.class,
+ "test.*", TestMode.sids);
+
+ }
+
+ public void test_POST_INSERT_withBody_TURTLE_RDR() throws Exception {
+
+ final long ntriples = 3L;
+
+ InputStream is = null;
+ try {
+ is = new FileInputStream(new File(packagePath + "rdr_01.ttlx"));
+ final AddOp add = new AddOp(is, ServiceProviderHook.TURTLE_RDR);
+ assertEquals(ntriples, m_repo.add(add));
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
+
+ /*
+ * Verify normal ground triple is present.
+ */
+ {
+
+ final String queryStr = "ASK {<x:a1> <x:b1> <x:c1>}";
+
+ final IPreparedBooleanQuery query = m_repo.prepareBooleanQuery(queryStr);
+
+ assertTrue(query.evaluate());
+
+ }
+
+ // false positive test (not found).
+ {
+
+ final String queryStr = "ASK {<x:a1> <x:b1> <x:c2>}";
+
+ final IPreparedBooleanQuery query = m_repo.prepareBooleanQuery(queryStr);
+
+ assertFalse(query.evaluate());
+
+ }
+
+ /*
+ * Verify RDR ground triple is present.
+ */
+ {
+
+ final String queryStr = "ASK {<x:a> <x:b> <x:c>}";
+
+ final IPreparedBooleanQuery query = m_repo.prepareBooleanQuery(queryStr);
+
+ assertTrue(query.evaluate());
+
+ }
+
+ // RDR false positive test (not found).
+ {
+
+ final String queryStr = "ASK {<x:a> <x:b> <x:c2>}";
+
+ final IPreparedBooleanQuery query = m_repo.prepareBooleanQuery(queryStr);
+
+ assertFalse(query.evaluate());
+
+ }
+
+
+ /*
+ * Verify RDR triple is present.
+ */
+ {
+
+ final String queryStr = "ASK {<<<x:a> <x:b> <x:c>>> <x:d> <x:e>}";
+
+ final IPreparedBooleanQuery query = m_repo.prepareBooleanQuery(queryStr);
+
+ assertTrue(query.evaluate());
+
+ }
+
+ // false positive test for RDR triple NOT present.
+ {
+
+ final String queryStr = "ASK {<<<x:a> <x:b> <x:c>>> <x:d> <x:e2>}";
+
+ final IPreparedBooleanQuery query = m_repo.prepareBooleanQuery(queryStr);
+
+ assertFalse(query.evaluate());
+
+ }
+
+ /*
+ * Verify the expected #of statements in the store using a SPARQL result
+ * set.
+ */
+ {
+
+ final String queryStr = "SELECT * where {?s ?p ?o}";
+
+ final IPreparedTupleQuery query = m_repo.prepareTupleQuery(queryStr);
+
+ assertEquals(ntriples, countResults(query.evaluate()));
+
+ }
+
+ /*
+ * Verify the RDR data can be recovered using a CONSTRUCT query.
+ */
+ {
+
+ final String queryStr = "CONSTRUCT where {?s ?p ?o}";
+
+ final IPreparedGraphQuery query = m_repo.prepareGraphQuery(queryStr);
+
+ assertEquals(ntriples, countResults(query.evaluate()));
+
+ }
+
+ /*
+ * Verify the RDR data can be recovered using a DESCRIBE query.
+ */
+ {
+
+ final String queryStr = "DESCRIBE * {?s ?p ?o}";
+
+ final IPreparedGraphQuery query = m_repo.prepareGraphQuery(queryStr);
+
+ assertEquals(ntriples, countResults(query.evaluate()));
+
+ }
+
+ }
+
+ /**
+ * FIXME We need to verify export for this case. It relies on access to a
+ * Bigdata specific ValueFactoryImpl to handle the RDR mode statements.
+ */
+ public void test_EXPORT_TURTLE_RDR() throws Exception {
+
+
+ final long ntriples = 3L;
+
+ InputStream is = null;
+ try {
+ is = new FileInputStream(new File(packagePath + "rdr_01.ttlx"));
+ final AddOp add = new AddOp(is, ServiceProviderHook.TURTLE_RDR);
+ assertEquals(ntriples, m_repo.add(add));
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
+
+ fail("write export test for TURTLE-RDR");
+
+ }
+
+}
\ No newline at end of file
Added: branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/rdr_01.ttlx
===================================================================
--- branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/rdr_01.ttlx (rev 0)
+++ branches/BIGDATA_RELEASE_1_4_0/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/rdr_01.ttlx 2014-11-18 15:01:18 UTC (rev 8717)
@@ -0,0 +1,3 @@
+<x:a1> <x:b1> <x:c1> .
+
+<<<x:a> <x:b> <x:c>>> <x:d> <x:e> .
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|