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/08/13 17:32:28 UTC
svn commit: r1372468 - in
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb: solver/ store/
transaction/
Author: andy
Date: Mon Aug 13 15:32:27 2012
New Revision: 1372468
URL: http://svn.apache.org/viewvc?rev=1372468&view=rev
Log:
Clean up graphs-over-datasets in TDB.
Remove unnecessary ties of graphs to implementation of TDB as quad/triple tables.
Modified:
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java
jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/solver/OpExecutorTDB.java Mon Aug 13 15:32:27 2012
@@ -194,7 +194,7 @@ public class OpExecutorTDB extends OpExe
if ( pattern.size() >= 2 )
{
// Must be 2 or triples to reorder.
- ReorderTransformation transform = graph.getReorderTransform() ;
+ ReorderTransformation transform = graph.getDataset().getReorderTransform() ;
if ( transform != null )
{
QueryIterPeek peek = QueryIterPeek.create(input, execCxt) ;
@@ -229,7 +229,7 @@ public class OpExecutorTDB extends OpExe
return optimizeExecuteTriples(ds.getEffectiveDefaultGraph(), input, bgp, exprs, execCxt) ;
// ---- Execute quads+filters
- ReorderTransformation transform = ds.getTransform() ;
+ ReorderTransformation transform = ds.getReorderTransform() ;
if ( transform != null )
{
@@ -309,19 +309,11 @@ public class OpExecutorTDB extends OpExe
// Not default storage graph.
// ---- Union (RDF Merge) of named graphs
+
+ if ( Quad.isUnionGraph(gn) )
+ return Node.ANY ;
boolean doingUnion = false ;
-
-// if ( isUnionDefaultGraph && Quad.isQuadDefaultGraphNode(gn) )
-// // Implicit: default graph is union of named graphs. (rewritten - does not occur).
-// doingUnion = true ;
-
- if ( gn.equals(Quad.unionGraph) )
- // Explicit name of the union of named graphs
- doingUnion = true ;
-
- if ( doingUnion )
- // Set the "any" graph node.
- gn = Node.ANY ;
+
return gn ;
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java Mon Aug 13 15:32:27 2012
@@ -46,7 +46,7 @@ import com.hp.hpl.jena.update.GraphStore
import com.hp.hpl.jena.update.UpdateRequest ;
/** TDB Dataset - this is the class that creates a dataset over the storage via
- * TripleTable, QuadTable and prefixes. Any transactions
+ * TripleTable, QuadTable and prefixes. These may be transactional.
*
* See also:
* <ul>
@@ -235,7 +235,13 @@ public class DatasetGraphTDB extends Dat
// return PropertyUtils.getPropertyAsInteger(config.properties, key, dftValue) ;
// }
//
- public ReorderTransformation getTransform() { return transform ; }
+ /**
+ * @deprecate Use getReorderTransform
+ */
+ @Deprecated
+ public ReorderTransformation getTransform() { return getReorderTransform() ; }
+
+ public ReorderTransformation getReorderTransform() { return transform ; }
public DatasetPrefixesTDB getPrefixes() { return prefixes ; }
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphNamedTDB.java Mon Aug 13 15:32:27 2012
@@ -113,9 +113,9 @@ public class GraphNamedTDB extends Graph
// Explicitly named default graph
if ( isDefaultGraph(graphNode) )
// Default graph.
- return graphBaseFindWorker(getDataset().getTripleTable(), m) ;
+ return graphBaseFindDft(getDataset(), m) ;
// Includes union graph
- return graphBaseFindWorker(getDataset(), graphNode, m) ;
+ return graphBaseFindNG(getDataset(), graphNode, m) ;
}
@Override
@@ -158,15 +158,6 @@ public class GraphNamedTDB extends Graph
}
@Override
- public Tuple<Node> asTuple(Triple triple)
- {
-// if ( getGraphNode() == null )
-// return Tuple.create(triple.getSubject(), triple.getPredicate(), triple.getObject()) ;
-// else
- return Tuple.create(getGraphNode(), triple.getSubject(), triple.getPredicate(), triple.getObject()) ;
- }
-
- @Override
protected final Logger getLog() { return log ; }
@Override
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDB.java Mon Aug 13 15:32:27 2012
@@ -20,21 +20,16 @@ package com.hp.hpl.jena.tdb.store;
import org.openjena.atlas.lib.Closeable ;
import org.openjena.atlas.lib.Sync ;
-import org.openjena.atlas.lib.Tuple ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.shared.Lock ;
-import com.hp.hpl.jena.sparql.engine.optimizer.reorder.Reorderable ;
-import com.hp.hpl.jena.tdb.base.file.Location ;
import com.hp.hpl.jena.tdb.nodetable.NodeTupleTable ;
import com.hp.hpl.jena.tdb.sys.Session ;
-public interface GraphTDB extends Graph, Closeable, Sync, Reorderable, Session
+public interface GraphTDB extends Graph, Closeable, Sync, Session
{
public NodeTupleTable getNodeTupleTable() ;
- public Tuple<Node> asTuple(Triple triple) ;
/** Get a lock that is shared for all graphs from the same dataset (it is the dataset lock) */
public Lock getLock() ;
@@ -45,11 +40,6 @@ public interface GraphTDB extends Graph,
*/
public Node getGraphNode() ;
- /** Return the TDB-backed daatset for this graph.
- * Maybe null - indicating it's a simple graph backed by TDB
- * (and also the concrete default graph)
- */
+ /** Return the TDB-backed dataset for this graph */
public DatasetGraphTDB getDataset() ;
-
- public Location getLocation() ;
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java Mon Aug 13 15:32:27 2012
@@ -25,21 +25,13 @@ import java.util.Iterator ;
import org.openjena.atlas.iterator.Iter ;
import org.slf4j.Logger ;
-import com.hp.hpl.jena.graph.BulkUpdateHandler ;
-import com.hp.hpl.jena.graph.Capabilities ;
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.graph.Reifier ;
-import com.hp.hpl.jena.graph.TransactionHandler ;
-import com.hp.hpl.jena.graph.Triple ;
-import com.hp.hpl.jena.graph.TripleMatch ;
+import com.hp.hpl.jena.graph.* ;
import com.hp.hpl.jena.graph.query.QueryHandler ;
import com.hp.hpl.jena.shared.Lock ;
import com.hp.hpl.jena.sparql.core.Quad ;
-import com.hp.hpl.jena.sparql.engine.optimizer.reorder.ReorderTransformation ;
import com.hp.hpl.jena.sparql.graph.GraphBase2 ;
import com.hp.hpl.jena.sparql.graph.Reifier2 ;
import com.hp.hpl.jena.tdb.TDB ;
-import com.hp.hpl.jena.tdb.base.file.Location ;
import com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB ;
import com.hp.hpl.jena.tdb.graph.QueryHandlerTDB ;
import com.hp.hpl.jena.tdb.graph.TransactionHandlerTDB ;
@@ -65,13 +57,6 @@ public abstract class GraphTDBBase exten
this.graphNode = graphName ;
}
- /** Reorder processor - may be null, for "none" */
- @Override
- public final ReorderTransformation getReorderTransform() { return dataset.getTransform() ; }
-
- @Override
- public final Location getLocation() { return dataset.getLocation() ; }
-
@Override
public final Node getGraphNode() { return graphNode ; }
@@ -121,19 +106,17 @@ public abstract class GraphTDBBase exten
}
}
- protected static ExtendedIterator<Triple> graphBaseFindWorker(TripleTable tripleTable, TripleMatch m)
+ protected static ExtendedIterator<Triple> graphBaseFindDft(DatasetGraphTDB dataset, TripleMatch m)
{
- // See also SolverLib.execute
- Iterator<Triple> iter = tripleTable.find(m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) ;
- if ( iter == null )
+ Iterator<Quad> iterQuads = dataset.find(Quad.defaultGraphIRI, m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) ;
+ if ( iterQuads == null )
return com.hp.hpl.jena.util.iterator.NullIterator.instance() ;
-
- // Look now!
- boolean b = iter.hasNext() ;
- return WrappedIterator.createNoRemove(iter) ;
+ // Can't be duplicates - fixed graph node..
+ Iterator<Triple> iterTriples = new ProjectQuadsToTriples(Quad.defaultGraphIRI , iterQuads) ;
+ return WrappedIterator.createNoRemove(iterTriples) ;
}
- protected static ExtendedIterator<Triple> graphBaseFindWorker(DatasetGraphTDB dataset, Node graphNode, TripleMatch m)
+ protected static ExtendedIterator<Triple> graphBaseFindNG(DatasetGraphTDB dataset, Node graphNode, TripleMatch m)
{
Node gn = graphNode ;
// Explicitly named union graph.
@@ -194,7 +177,7 @@ public abstract class GraphTDBBase exten
{
Quad q = iter.next();
if ( graphNode != null && ! q.getGraph().equals(graphNode))
- throw new InternalError("ProjectQuadsToTriples: Quads from unexpected graph") ;
+ throw new InternalError("ProjectQuadsToTriples: Quads from unexpected graph (expected="+graphNode+", got="+q.getGraph()+")") ;
return q.asTriple() ;
}
@Override
@@ -202,7 +185,7 @@ public abstract class GraphTDBBase exten
}
@Override
- public BulkUpdateHandler getBulkUpdateHandler() {return bulkUpdateHandler ; }
+ public BulkUpdateHandler getBulkUpdateHandler() { return bulkUpdateHandler ; }
@Override
public Capabilities getCapabilities()
@@ -239,8 +222,4 @@ public abstract class GraphTDBBase exten
@Override
public TransactionHandler getTransactionHandler()
{ return transactionHandler ; }
-
-// protected GraphStatisticsHandler createStatisticsHandler()
-// { return null; }
-
}
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/GraphTriplesTDB.java Mon Aug 13 15:32:27 2012
@@ -18,20 +18,19 @@
package com.hp.hpl.jena.tdb.store;
-import java.util.Iterator;
+import java.util.Iterator ;
import org.openjena.atlas.lib.Tuple ;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.slf4j.Logger ;
+import org.slf4j.LoggerFactory ;
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.graph.TripleMatch;
-import com.hp.hpl.jena.shared.PrefixMapping;
+import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.graph.TripleMatch ;
+import com.hp.hpl.jena.shared.PrefixMapping ;
import com.hp.hpl.jena.sparql.core.DatasetPrefixStorage ;
import com.hp.hpl.jena.sparql.util.Utils ;
import com.hp.hpl.jena.tdb.nodetable.NodeTupleTable ;
-import com.hp.hpl.jena.util.iterator.ExtendedIterator;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
/** A graph implementation that uses a triple table - free-standing graph or default graph of dataset */
public class GraphTriplesTDB extends GraphTDBBase
@@ -69,7 +68,7 @@ public class GraphTriplesTDB extends Gra
@Override
protected ExtendedIterator<Triple> graphBaseFind(TripleMatch m)
{
- return graphBaseFindWorker(tripleTable, m) ;
+ return graphBaseFindDft(dataset, m) ;
}
// @Override
@@ -79,12 +78,6 @@ public class GraphTriplesTDB extends Gra
protected final Logger getLog() { return log ; }
@Override
- public Tuple<Node> asTuple(Triple triple)
- {
- return Tuple.create(triple.getSubject(), triple.getPredicate(), triple.getObject()) ;
- }
-
- @Override
protected Iterator<Tuple<NodeId>> countThis()
{
return tripleTable.getNodeTupleTable().findAll() ;
Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java?rev=1372468&r1=1372467&r2=1372468&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetBuilderTxn.java Mon Aug 13 15:32:27 2012
@@ -85,7 +85,7 @@ public class DatasetBuilderTxn
BlockMgrBuilder blockMgrBuilder = new BlockMgrBuilderReadonly() ;
NodeTableBuilder nodeTableBuilder = new NodeTableBuilderReadonly() ;
DatasetBuilderStd x = new DatasetBuilderStd(blockMgrBuilder, nodeTableBuilder) ;
- DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getTransform()) ;
+ DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getReorderTransform()) ;
return dsg2 ;
}
@@ -95,7 +95,7 @@ public class DatasetBuilderTxn
BlockMgrBuilder blockMgrBuilder = new BlockMgrBuilderTx() ;
NodeTableBuilder nodeTableBuilder = new NodeTableBuilderTx() ;
DatasetBuilderStd x = new DatasetBuilderStd(blockMgrBuilder, nodeTableBuilder) ;
- DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getTransform()) ;
+ DatasetGraphTDB dsg2 = x._build(dsg.getLocation(), dsg.getConfig().params, dsg.getReorderTransform()) ;
return dsg2 ;
}