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/05/02 21:38:07 UTC
svn commit: r1333167 - in
/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql:
algebra/ algebra/table/ expr/ serializer/ sse/ sse/builders/ sse/writers/
Author: andy
Date: Wed May 2 19:38:06 2012
New Revision: 1333167
URL: http://svn.apache.org/viewvc?rev=1333167&view=rev
Log:
Reader and writer support for recording declared variables for (table)s.
Modified:
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/TableFactory.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/table/TableN.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/FormatterElement.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializer.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/Tags.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderLib.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderNode.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderTable.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterNode.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterOp.java
incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterTable.java
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java Wed May 2 19:38:06 2012
@@ -592,7 +592,7 @@ public class AlgebraGenerator
// ---- BINDINGS
if ( query.hasBindings() )
{
- Table table = TableFactory.create() ;
+ Table table = TableFactory.create(query.getBindingsVariables()) ;
for ( Binding binding : query.getBindingsData() )
table.addBinding(binding) ;
OpTable opTable = OpTable.create(table) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/TableFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/TableFactory.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/TableFactory.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/TableFactory.java Wed May 2 19:38:06 2012
@@ -18,6 +18,8 @@
package com.hp.hpl.jena.sparql.algebra;
+import java.util.List ;
+
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.sparql.algebra.table.Table1 ;
import com.hp.hpl.jena.sparql.algebra.table.TableEmpty ;
@@ -38,6 +40,9 @@ public class TableFactory
public static Table create()
{ return new TableN() ; }
+ public static Table create(List<Var> vars)
+ { return new TableN(vars) ; }
+
public static Table create(QueryIterator queryIterator)
{
if ( queryIterator instanceof QueryIterRoot )
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/table/TableN.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/table/TableN.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/table/TableN.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/algebra/table/TableN.java Wed May 2 19:38:06 2012
@@ -39,6 +39,12 @@ public class TableN extends TableBase
public TableN() {}
+ public TableN(List<Var> vars)
+ {
+ if ( vars != null )
+ this.vars = vars ;
+ }
+
public TableN(QueryIterator qIter)
{
materialize(qIter) ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java Wed May 2 19:38:06 2012
@@ -974,7 +974,7 @@ public abstract class NodeValue extends
{
LiteralLabel lit = node.getLiteral() ;
- // 50% of the time of this method is in isValidLiteral and the lexcial form parsing.
+ // 50% of the time of this method is in isValidLiteral and the lexical form parsing.
try { // DatatypeFormatException - should not happen
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/FormatterElement.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/FormatterElement.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/FormatterElement.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/FormatterElement.java Wed May 2 19:38:06 2012
@@ -234,7 +234,7 @@ public class FormatterElement extends Fo
// QuerySrializer.outputDataBlock.
List<Var> variables = el.getVars() ;
- out.print("DATA ") ;
+ out.print("VALUES ") ;
if ( variables.size() == 1 )
{
// Short form.
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializer.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializer.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializer.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializer.java Wed May 2 19:38:06 2012
@@ -66,8 +66,6 @@ public class QuerySerializer implements
fmtExpr = formatterExpr ;
}
-
-
@Override
public void startVisit(Query query) {}
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/Tags.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/Tags.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/Tags.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/Tags.java Wed May 2 19:38:06 2012
@@ -35,6 +35,7 @@ public class Tags
public static final String tagDefault = "default" ;
public static final String tagExec = "exec" ;
public static final String tagRow = "row" ;
+ public static final String tagVars = "vars" ;
// RDF
public static final String tagGraph = "graph" ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderLib.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderLib.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderLib.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderLib.java Wed May 2 19:38:06 2012
@@ -172,4 +172,14 @@ public class BuilderLib
msg = location.location()+": "+msg ;
return msg ;
}
+
+ public static ItemList skipTag(ItemList list, String tag)
+ {
+ if ( list.size() > 0 )
+ {
+ if ( list.get(0).isSymbol(tag) )
+ list = list.cdr() ;
+ }
+ return list ;
+ }
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderNode.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderNode.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderNode.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderNode.java Wed May 2 19:38:06 2012
@@ -28,6 +28,7 @@ import com.hp.hpl.jena.sparql.expr.NodeV
import com.hp.hpl.jena.sparql.graph.NodeConst ;
import com.hp.hpl.jena.sparql.sse.Item ;
import com.hp.hpl.jena.sparql.sse.ItemList ;
+import com.hp.hpl.jena.sparql.sse.Tags ;
public class BuilderNode
{
@@ -97,6 +98,8 @@ public class BuilderNode
public static List<Var> buildVars(ItemList list)
{
+ list = BuilderLib.skipTag(list, Tags.tagVars) ;
+
List<Var> x = new ArrayList<Var>() ;
for ( int i = 0 ; i < list.size() ; i++ )
{
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderTable.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderTable.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderTable.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderTable.java Wed May 2 19:38:06 2012
@@ -18,8 +18,11 @@
package com.hp.hpl.jena.sparql.sse.builders;
+import java.util.List ;
+
import com.hp.hpl.jena.sparql.algebra.Table ;
import com.hp.hpl.jena.sparql.algebra.TableFactory ;
+import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
import com.hp.hpl.jena.sparql.sse.Item ;
import com.hp.hpl.jena.sparql.sse.ItemList ;
@@ -37,6 +40,18 @@ public class BuilderTable
// Null table;
return TableFactory.createEmpty() ;
+ // Maybe vars.
+ List<Var> vars = null ;
+ if ( list.size() > 1 )
+ {
+ Item item0 = list.get(1) ;
+ if ( item0.isTagged(Tags.tagVars) )
+ {
+ vars = BuilderNode.buildVarList(item0) ;
+ list = list.cdr() ;
+ }
+ }
+
if ( list.size() == 2 && list.get(1).isSymbol() )
{
// Short hand for well known tables
@@ -48,7 +63,7 @@ public class BuilderTable
BuilderLib.broken(list, "Don't recognized table symbol") ;
}
- Table table = TableFactory.create() ;
+ Table table = TableFactory.create(vars) ;
int count = 0 ;
Binding lastBinding = null ;
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterNode.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterNode.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterNode.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterNode.java Wed May 2 19:38:06 2012
@@ -25,6 +25,7 @@ import org.openjena.atlas.io.IndentedWri
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.sparql.core.Var ;
import com.hp.hpl.jena.sparql.serializer.SerializationContext ;
import com.hp.hpl.jena.sparql.sse.Tags ;
import com.hp.hpl.jena.sparql.util.FmtUtils ;
@@ -88,4 +89,16 @@ public class WriterNode
}
out.print(")") ;
}
+
+ public static void outputVars(IndentedWriter out, List<Var> vars, SerializationContext sContext)
+ {
+ WriterLib.start(out, Tags.tagVars, WriterLib.NoSP) ;
+ for ( Var v : vars )
+ {
+ out.print(" ?") ;
+ out.print(v.getVarName()) ;
+ }
+ WriterLib.finish(out, Tags.tagVars) ;
+ }
+
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterOp.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterOp.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterOp.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterOp.java Wed May 2 19:38:06 2012
@@ -360,7 +360,9 @@ public class WriterOp
return ;
}
- start(opTable, NL) ;
+ start(opTable, NoNL) ;
+ WriterNode.outputVars(out, opTable.getTable().getVars(), sContext) ;
+ out.println() ;
WriterTable.outputPlain(out, opTable.getTable(), sContext);
finish(opTable) ;
}
Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterTable.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterTable.java?rev=1333167&r1=1333166&r2=1333167&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterTable.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/sse/writers/WriterTable.java Wed May 2 19:38:06 2012
@@ -35,7 +35,9 @@ public class WriterTable
{
public static void output(IndentedWriter out, Table table, SerializationContext sCxt)
{
- WriterLib.start(out, Tags.tagTable, WriterLib.NL) ;
+ WriterLib.start(out, Tags.tagTable, WriterLib.NoNL) ;
+ WriterNode.outputVars(out, table.getVars(), sCxt) ;
+ out.println() ;
outputPlain(out, table, sCxt) ;
WriterLib.finish(out, Tags.tagTable) ;
}