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)