Search in sources :

Example 41 with Node

use of org.apache.jena.graph.Node in project jena by apache.

the class RdfTypesTest method node_writable_literal_07.

/**
     * Basic node writable round tripping test
     * 
     * @throws IOException
     * @throws InstantiationException
     * @throws IllegalAccessException
     * @throws ClassNotFoundException
     */
@Test
public void node_writable_literal_07() throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException {
    Node n = NodeFactory.createLiteral("true", XSDDatatype.XSDboolean);
    NodeWritable nw = new NodeWritable(n);
    testWriteRead(nw, nw);
}
Also used : NodeWritable(org.apache.jena.hadoop.rdf.types.NodeWritable) Node(org.apache.jena.graph.Node) Test(org.junit.Test)

Example 42 with Node

use of org.apache.jena.graph.Node in project jena by apache.

the class RdfTypesTest method node_writable_literal_04.

/**
     * Basic node writable round tripping test
     * 
     * @throws IOException
     * @throws InstantiationException
     * @throws IllegalAccessException
     * @throws ClassNotFoundException
     */
@Test
public void node_writable_literal_04() throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException {
    Node n = NodeFactory.createLiteral("1234", XSDDatatype.XSDinteger);
    NodeWritable nw = new NodeWritable(n);
    testWriteRead(nw, nw);
}
Also used : NodeWritable(org.apache.jena.hadoop.rdf.types.NodeWritable) Node(org.apache.jena.graph.Node) Test(org.junit.Test)

Example 43 with Node

use of org.apache.jena.graph.Node in project jena by apache.

the class SolverLib method execute.

// The worker.  Callers choose the NodeTupleTable.  
//     graphNode may be Node.ANY, meaning we should make triples unique.
//     graphNode may be null, meaning default graph
private static QueryIterator execute(NodeTupleTable nodeTupleTable, Node graphNode, BasicPattern pattern, QueryIterator input, Predicate<Tuple<NodeId>> filter, ExecutionContext execCxt) {
    if (Quad.isUnionGraph(graphNode))
        graphNode = Node.ANY;
    if (Quad.isDefaultGraph(graphNode))
        graphNode = null;
    List<Triple> triples = pattern.getList();
    boolean anyGraph = (graphNode == null ? false : (Node.ANY.equals(graphNode)));
    int tupleLen = nodeTupleTable.getTupleTable().getTupleLen();
    if (graphNode == null) {
        if (3 != tupleLen)
            throw new TDBException("SolverLib: Null graph node but tuples are of length " + tupleLen);
    } else {
        if (4 != tupleLen)
            throw new TDBException("SolverLib: Graph node specified but tuples are of length " + tupleLen);
    }
    // Convert from a QueryIterator (Bindings of Var/Node) to BindingNodeId
    NodeTable nodeTable = nodeTupleTable.getNodeTable();
    Iterator<BindingNodeId> chain = Iter.map(input, SolverLib.convFromBinding(nodeTable));
    List<Abortable> killList = new ArrayList<>();
    for (Triple triple : triples) {
        Tuple<Node> tuple = null;
        if (graphNode == null)
            // 3-tuples
            tuple = tuple(triple.getSubject(), triple.getPredicate(), triple.getObject());
        else
            // 4-tuples.
            tuple = tuple(graphNode, triple.getSubject(), triple.getPredicate(), triple.getObject());
        chain = solve(nodeTupleTable, tuple, anyGraph, chain, filter, execCxt);
        chain = makeAbortable(chain, killList);
    }
    // DEBUG POINT
    if (false) {
        if (chain.hasNext())
            chain = Iter.debug(chain);
        else
            System.out.println("No results");
    }
    // Timeout wrapper ****
    // QueryIterTDB gets called async.
    // Iter.abortable?
    // Or each iterator has a place to test.
    // or pass in a thing to test?
    // Need to make sure the bindings here point to parent.
    Iterator<Binding> iterBinding = convertToNodes(chain, nodeTable);
    // "killList" will be aborted on timeout.
    return new QueryIterTDB(iterBinding, killList, input, execCxt);
}
Also used : Binding(org.apache.jena.sparql.engine.binding.Binding) TDBException(org.apache.jena.tdb.TDBException) Node(org.apache.jena.graph.Node) Triple(org.apache.jena.graph.Triple) NodeTable(org.apache.jena.tdb.store.nodetable.NodeTable)

Example 44 with Node

use of org.apache.jena.graph.Node in project jena by apache.

the class SolverLib method graphNames.

/** Find all the graph names in the quads table. */
public static QueryIterator graphNames(DatasetGraphTDB ds, Node graphNode, QueryIterator input, Predicate<Tuple<NodeId>> filter, ExecutionContext execCxt) {
    List<Abortable> killList = new ArrayList<>();
    Iterator<Tuple<NodeId>> iter1 = ds.getQuadTable().getNodeTupleTable().find(NodeId.NodeIdAny, NodeId.NodeIdAny, NodeId.NodeIdAny, NodeId.NodeIdAny);
    if (filter != null)
        iter1 = Iter.filter(iter1, filter);
    Iterator<NodeId> iter2 = Iter.map(iter1, (t) -> t.get(0));
    iter2 = makeAbortable(iter2, killList);
    Iterator<NodeId> iter3 = Iter.distinct(iter2);
    iter3 = makeAbortable(iter3, killList);
    Iterator<Node> iter4 = NodeLib.nodes(ds.getQuadTable().getNodeTupleTable().getNodeTable(), iter3);
    final Var var = Var.alloc(graphNode);
    Iterator<Binding> iterBinding = Iter.map(iter4, node -> BindingFactory.binding(var, node));
    // Not abortable.
    return new QueryIterTDB(iterBinding, killList, input, execCxt);
}
Also used : Binding(org.apache.jena.sparql.engine.binding.Binding) Var(org.apache.jena.sparql.core.Var) Node(org.apache.jena.graph.Node) NodeId(org.apache.jena.tdb.store.NodeId) Tuple(org.apache.jena.atlas.lib.tuple.Tuple)

Example 45 with Node

use of org.apache.jena.graph.Node in project jena by apache.

the class SolverLib method convertToNodeIds.

public static Set<NodeId> convertToNodeIds(Collection<Node> nodes, DatasetGraphTDB dataset) {
    Set<NodeId> graphIds = new HashSet<>();
    NodeTable nt = dataset.getQuadTable().getNodeTupleTable().getNodeTable();
    for (Node n : nodes) graphIds.add(nt.getNodeIdForNode(n));
    return graphIds;
}
Also used : Node(org.apache.jena.graph.Node) NodeId(org.apache.jena.tdb.store.NodeId) NodeTable(org.apache.jena.tdb.store.nodetable.NodeTable)

Aggregations

Node (org.apache.jena.graph.Node)1250 Test (org.junit.Test)440 Triple (org.apache.jena.graph.Triple)201 Var (org.apache.jena.sparql.core.Var)164 Graph (org.apache.jena.graph.Graph)121 ArrayList (java.util.ArrayList)104 Binding (org.apache.jena.sparql.engine.binding.Binding)80 Quad (org.apache.jena.sparql.core.Quad)73 GeometryWrapper (org.apache.jena.geosparql.implementation.GeometryWrapper)64 RDFNode (org.apache.jena.rdf.model.RDFNode)64 DatasetGraph (org.apache.jena.sparql.core.DatasetGraph)62 Literal (org.apache.jena.rdf.model.Literal)61 PropFuncArg (org.apache.jena.sparql.pfunction.PropFuncArg)56 SpatialArguments (org.apache.jena.geosparql.spatial.property_functions.SpatialArguments)51 SearchEnvelope (org.apache.jena.geosparql.spatial.SearchEnvelope)46 HashMap (java.util.HashMap)44 TriplePath (org.apache.jena.sparql.core.TriplePath)36 Model (org.apache.jena.rdf.model.Model)33 NodeValue (org.apache.jena.sparql.expr.NodeValue)31 WhereValidator (org.apache.jena.arq.querybuilder.WhereValidator)30