Search in sources :

Example 61 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class OpExecutorTDB2 method execute.

@Override
protected QueryIterator execute(OpDatasetNames dsNames, QueryIterator input) {
    DatasetGraphTDB ds = (DatasetGraphTDB) execCxt.getDataset();
    Predicate<Tuple<NodeId>> filter = QC2.getFilter(execCxt.getContext());
    Node gn = dsNames.getGraphNode();
    if (Var.isVar(gn))
        return SolverLibTDB.graphNames(ds, dsNames.getGraphNode(), input, filter, execCxt);
    else
        return SolverLibTDB.testForGraphName(ds, dsNames.getGraphNode(), input, filter, execCxt);
}
Also used : Node(org.apache.jena.graph.Node) Tuple(org.apache.jena.atlas.lib.tuple.Tuple) DatasetGraphTDB(org.apache.jena.tdb2.store.DatasetGraphTDB)

Example 62 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class SolverRX method accessData.

static Iterator<Quad> accessData(Tuple<Node> patternTuple, NodeTupleTable nodeTupleTable, boolean anyGraph, Predicate<Tuple<NodeId>> filter, ExecutionContext execCxt) {
    NodeTable nodeTable = nodeTupleTable.getNodeTable();
    Function<Tuple<NodeId>, Quad> asQuad = asQuad(nodeTable, nodeTupleTable.getTupleLen(), anyGraph);
    Tuple<NodeId> patternTupleId = TupleLib.tupleNodeIds(nodeTable, patternTuple);
    if (patternTupleId.contains(NodeId.NodeDoesNotExist))
        // Can not match.
        return Iter.nullIterator();
    // -- DRY/StageMatchTuple ??
    Iterator<Tuple<NodeId>> iterMatches = nodeTupleTable.find(patternTupleId);
    // Add filter
    if (filter != null)
        iterMatches = Iter.filter(iterMatches, filter);
    // Add anyGraph
    if (anyGraph) {
        // See StageMatchTuple for discussion.
        iterMatches = Iter.map(iterMatches, quadsToAnyTriples);
        iterMatches = Iter.distinctAdjacent(iterMatches);
    }
    // -- DRY/StageMatchTuple
    Iterator<Quad> qIter = Iter.map(iterMatches, asQuad);
    return qIter;
}
Also used : Quad(org.apache.jena.sparql.core.Quad) NodeId(org.apache.jena.tdb2.store.NodeId) NodeTable(org.apache.jena.tdb2.store.nodetable.NodeTable) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Example 63 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class DatasetGraphTDB method listGraphNodes.

@Override
public Iterator<Node> listGraphNodes() {
    checkNotClosed();
    NodeTupleTable quads = getQuadTable().getNodeTupleTable();
    Iterator<Tuple<NodeId>> x = quads.findAll();
    // XXX Future: Ensure we scan a G??? index and use distinctAdjacent.
    // See TupleTable.chooseScanAllIndex
    Iterator<NodeId> z = Iter.iter(x).map(t -> t.get(0)).distinct();
    Iterator<Node> r = NodeLib.nodes(quads.getNodeTable(), z);
    return r;
}
Also used : DatasetGraphStorage(org.apache.jena.dboe.storage.system.DatasetGraphStorage) Iterator(java.util.Iterator) ReorderTransformation(org.apache.jena.sparql.engine.optimizer.reorder.ReorderTransformation) StoragePrefixes(org.apache.jena.dboe.storage.StoragePrefixes) TDBException(org.apache.jena.tdb2.TDBException) NodeTupleTable(org.apache.jena.tdb2.store.nodetupletable.NodeTupleTable) Graph(org.apache.jena.graph.Graph) StoreParams(org.apache.jena.tdb2.params.StoreParams) Location(org.apache.jena.dboe.base.file.Location) Node(org.apache.jena.graph.Node) Quad(org.apache.jena.sparql.core.Quad) NodeLib(org.apache.jena.tdb2.lib.NodeLib) Iter(org.apache.jena.atlas.iterator.Iter) Tuple(org.apache.jena.atlas.lib.tuple.Tuple) TransactionalSystem(org.apache.jena.dboe.transaction.txn.TransactionalSystem) NodeTupleTable(org.apache.jena.tdb2.store.nodetupletable.NodeTupleTable) Node(org.apache.jena.graph.Node) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Example 64 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class GraphTDB method graphBaseSize.

// Better ways to execute.
@Override
protected final int graphBaseSize() {
    if (isDefaultGraph())
        return (int) getNodeTupleTable().size();
    Node gn = getGraphName();
    boolean unionGraph = isUnionGraph(gn);
    gn = unionGraph ? Node.ANY : gn;
    Iterator<Tuple<NodeId>> iter = getDSG().getQuadTable().getNodeTupleTable().findAsNodeIds(gn, null, null, null);
    if (unionGraph) {
        iter = Iter.map(iter, project4TupleTo3Tuple);
        iter = Iter.distinctAdjacent(iter);
    }
    return (int) Iter.count(iter);
}
Also used : Node(org.apache.jena.graph.Node) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Example 65 with Tuple

use of org.apache.jena.atlas.lib.tuple.Tuple in project jena by apache.

the class LoaderMain method indexPhase.

private static void indexPhase(List<BulkStartFinish> processes, TupleIndex srcIdx, TupleIndex[] indexes, MonitorOutput output) {
    String indexSetLabel = PhasedOps.indexMappings(indexes);
    output.print("Index set:  %s => %s", srcIdx.getName(), indexSetLabel);
    Indexer indexer = new Indexer(output, indexes);
    Destination<Tuple<NodeId>> dest = indexer.index();
    indexer.startBulk();
    TransactionCoordinator coordinator = CoLib.newCoordinator();
    CoLib.add(coordinator, srcIdx);
    CoLib.start(coordinator);
    // READ transaction.
    Transaction transaction = coordinator.begin(TxnType.READ);
    // Add to processes - we can wait later if we do not touched indexes being built.
    processes.add(indexer);
    PhasedOps.ReplayResult result = PhasedOps.replay(srcIdx, dest, output);
    // End read transaction on srcIdx
    transaction.end();
    String timeStr = "---";
    if (result.elapsed != 0) {
        double time = result.elapsed / 1000.0;
        // long AvgRate = (result.items * 1000L) / result.elapsed;
        timeStr = String.format("%,.1f", time);
    }
    output.print("Index set:  %s => %s [%,d items, %s seconds]", srcIdx.getName(), indexSetLabel, result.items, timeStr);
}
Also used : Transaction(org.apache.jena.dboe.transaction.txn.Transaction) TransactionCoordinator(org.apache.jena.dboe.transaction.txn.TransactionCoordinator) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Aggregations

Tuple (org.apache.jena.atlas.lib.tuple.Tuple)75 NodeId (org.apache.jena.tdb.store.NodeId)35 Node (org.apache.jena.graph.Node)22 TupleIndex (org.apache.jena.tdb.store.tupletable.TupleIndex)19 Test (org.junit.Test)19 BaseTest (org.apache.jena.atlas.junit.BaseTest)17 Quad (org.apache.jena.sparql.core.Quad)13 NodeId (org.apache.jena.tdb2.store.NodeId)10 Predicate (java.util.function.Predicate)8 Triple (org.apache.jena.graph.Triple)7 Iterator (java.util.Iterator)6 Binding (org.apache.jena.sparql.engine.binding.Binding)6 ArrayList (java.util.ArrayList)5 Iter (org.apache.jena.atlas.iterator.Iter)5 NodeTable (org.apache.jena.tdb.store.nodetable.NodeTable)5 NodeTupleTable (org.apache.jena.tdb.store.nodetupletable.NodeTupleTable)5 NodeTable (org.apache.jena.tdb2.store.nodetable.NodeTable)5 Function (java.util.function.Function)4 InternalErrorException (org.apache.jena.atlas.lib.InternalErrorException)4 TupleFactory (org.apache.jena.atlas.lib.tuple.TupleFactory)4