You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/07/11 10:56:10 UTC
svn commit: r1360076 - in /jena/trunk/jena-fuseki: pages/query-validator.html
src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java
src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java
Author: andy
Date: Wed Jul 11 08:56:10 2012
New Revision: 1360076
URL: http://svn.apache.org/viewvc?rev=1360076&view=rev
Log:
Tidy up the query validator.
Modified:
jena/trunk/jena-fuseki/pages/query-validator.html
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java
Modified: jena/trunk/jena-fuseki/pages/query-validator.html
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/pages/query-validator.html?rev=1360076&r1=1360075&r2=1360076&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/pages/query-validator.html (original)
+++ jena/trunk/jena-fuseki/pages/query-validator.html Wed Jul 11 08:56:10 2012
@@ -41,16 +41,22 @@ SELECT ?book ?title
WHERE
{ ?book dc:title ?title }</textarea>
<br/>
- Input syntax:
+ Input syntax:<br/>
<input type="radio" name="languageSyntax" value="SPARQL" checked="checked"/>SPARQL
<input type="radio" name="languageSyntax" value="ARQ"/>SPARQL extended syntax
<br/>
-Output syntax:
- <input type="checkbox" name="outputFormat" value="sparql" checked="checked"/>SPARQL
- <input type="checkbox" name="outputFormat" value="algebra"/>SPARQL algebra
- <input type="checkbox" name="outputFormat" value="quads"/>SPARQL algebra (quads)
<br/>
-
+Output:<br/>
+ <input type="checkbox" name="outputFormat" value="sparql" checked="checked"/>SPARQL<br/>
+ <input type="checkbox" name="outputFormat" value="algebra"/>SPARQL algebra<br/>
+ <input type="checkbox" name="outputFormat" value="quads"/>SPARQL algebra (quads)<br/>
+ <input type="checkbox" name="outputFormat" value="opt"/>SPARQL algebra
+(general optimizations)<br/>
+<!--
+ <input type="checkbox" name="outputFormat" value="optquads"/>SPARQL algebra
+(quads, general optimizations)<br/>
+-->
+ <br/>
Line numbers:
<input type="radio" name="linenumbers" value="true" checked="checked"/>Yes
<input type="radio" name="linenumbers" value="false"/>No
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java?rev=1360076&r1=1360075&r2=1360076&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java Wed Jul 11 08:56:10 2012
@@ -90,6 +90,8 @@ public class QueryValidator extends Vali
boolean outputPrefix = false ;
boolean outputAlgebra = false ;
boolean outputQuads = false ;
+ boolean outputOptimized = false ;
+ boolean outputOptimizedQuads = false ;
if ( a != null )
{
@@ -103,6 +105,10 @@ public class QueryValidator extends Vali
outputAlgebra = true ;
if ( a[i].equals("quads") )
outputQuads = true ;
+ if ( a[i].equals("opt") )
+ outputOptimized = true ;
+ if ( a[i].equals("optquads") )
+ outputOptimizedQuads = true ;
}
}
@@ -138,9 +144,9 @@ public class QueryValidator extends Vali
}
// Attempt to parse it.
- Query q = null ;
+ Query query = null ;
try {
- q = QueryFactory.create(queryString, "http://example/base/", language) ;
+ query = QueryFactory.create(queryString, "http://example/base/", language) ;
} catch (ARQException ex)
{
// Over generous exception (should be QueryException)
@@ -158,47 +164,25 @@ public class QueryValidator extends Vali
finishFixed(outStream) ;
}
- // Because we pass into anon inner classes
- final Query query = q ;
-
- // OK? Pretty print
- if ( query != null && outputSPARQL )
- {
- outStream.println("<p>Formatted, parsed query:</p>") ;
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- { query.serialize(out) ; }
- } ;
- output(outStream, c, lineNumbers) ;
- }
-
- if ( query != null && outputAlgebra )
+ if ( query != null )
{
- outStream.println("<p>Algebra structure:</p>") ;
- final Op op = Algebra.compile(query) ; // No optimization
- final SerializationContext sCxt = new SerializationContext(query) ;
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- { op.output(out, sCxt) ; }
- } ;
- output(outStream, c , lineNumbers) ;
- }
-
- if ( query != null && outputQuads )
- {
- outStream.println("<p>Quad structure:</p>") ;
- final Op op = Algebra.toQuadForm(Algebra.compile(query)) ;
- final SerializationContext sCxt = new SerializationContext(query) ;
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- { op.output(out, sCxt) ; }
- } ;
- output(outStream, c , lineNumbers) ;
+ if ( outputSPARQL )
+ outputSyntax(outStream, query, lineNumbers) ;
+
+ if ( outputAlgebra )
+ outputAlgebra(outStream, query, lineNumbers) ;
+
+ if ( outputQuads )
+ outputAlgebraQuads(outStream, query, lineNumbers) ;
+
+ if ( outputOptimized )
+ outputAlgebraOpt(outStream, query, lineNumbers) ;
+
+ if ( outputOptimizedQuads )
+ outputAlgebraOptQuads(outStream, query, lineNumbers) ;
}
+ outStream.println("</body>") ;
outStream.println("</html>") ;
} catch (Exception ex)
@@ -209,6 +193,56 @@ public class QueryValidator extends Vali
interface Content { void print(IndentedWriter out) ; }
+ private void outputSyntax(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
+ {
+ outStream.println("<p>Formatted, parsed query:</p>") ;
+ Content c = new Content(){
+ @Override
+ public void print(IndentedWriter out)
+ { query.serialize(out) ; }
+ } ;
+ output(outStream, c, lineNumbers) ;
+ }
+
+ private void outputAlgebra(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
+ {
+ outStream.println("<p>Algebra structure:</p>") ;
+ final Op op = Algebra.compile(query) ; // No optimization
+ output(outStream, query, op, lineNumbers) ;
+ }
+
+ private void outputAlgebraOpt(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
+ {
+ outStream.println("<p>Alebgra, with general triple optimizations:</p>") ;
+ final Op op = Algebra.optimize(Algebra.compile(query)) ;
+ output(outStream, query, op, lineNumbers) ;
+ }
+
+ private void outputAlgebraQuads(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
+ {
+ outStream.println("<p>Quad structure:</p>") ;
+ final Op op = Algebra.toQuadForm(Algebra.compile(query)) ;
+ output(outStream, query, op, lineNumbers) ;
+ }
+
+ private void outputAlgebraOptQuads(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
+ {
+ outStream.println("<p>Alebgra, with general quads optimizations:</p>") ;
+ final Op op = Algebra.optimize(Algebra.toQuadForm(Algebra.compile(query))) ;
+ output(outStream, query, op, lineNumbers) ;
+ }
+
+ private void output(ServletOutputStream outStream, Query query, final Op op, boolean lineNumbers) throws IOException
+ {
+ final SerializationContext sCxt = new SerializationContext(query) ;
+ Content c = new Content(){
+ @Override
+ public void print(IndentedWriter out)
+ { op.output(out, sCxt) ; }
+ } ;
+ output(outStream, c , lineNumbers) ;
+ }
+
private void output(ServletOutputStream outStream, Content content, boolean lineNumbers) throws IOException
{
startFixed(outStream) ;
@@ -220,6 +254,4 @@ public class QueryValidator extends Vali
outStream.write(b) ;
finishFixed(outStream) ;
}
-
-
}
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java?rev=1360076&r1=1360075&r2=1360076&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java Wed Jul 11 08:56:10 2012
@@ -82,29 +82,6 @@ public class UpdateValidator extends Val
// Currently default.
boolean outputSPARQL = true ;
- boolean outputPrefix = false ;
- boolean outputAlgebra = false ;
- boolean outputQuads = false ;
-
- if ( a != null )
- {
- outputSPARQL = false ;
- for ( int i = 0 ; i < a.length ; i++ )
- {
- if ( a[i].equals("sparql") )
- outputSPARQL = true ;
- if ( a[i].equals("prefix") )
- outputPrefix = true ;
- if ( a[i].equals("algebra") )
- outputAlgebra = true ;
- if ( a[i].equals("quads") )
- outputQuads = true ;
- }
- }
-
-// if ( ! outputSPARQL && ! outputPrefix )
-// outputSPARQL = true ;
-
boolean lineNumbers = true ;
if ( lineNumbersArg != null )
@@ -172,6 +149,7 @@ public class UpdateValidator extends Val
} ;
output(outStream, c, lineNumbers) ;
}
+ outStream.println("</body>") ;
outStream.println("</html>") ;
} catch (Exception ex)