Search in sources :

Example 61 with Node

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

the class ListBase method execEvaluated.

/** If the subject is a list (well, at least not an unbound variable), dispatch to execOneList
     *  else dispatch to one of object a var, a list or a node.
     */
@Override
public final QueryIterator execEvaluated(Binding binding, PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
    Node listNode = argSubject.getArg();
    if (!Var.isVar(listNode))
        // Subject bound or constant
        return execOneList(binding, listNode, predicate, argObject, execCxt);
    // Subject unbound.
    Var listVar = Var.alloc(listNode);
    return listUnboundSubject(binding, listVar, predicate, argObject, execCxt);
}
Also used : Var(org.apache.jena.sparql.core.Var) Node(org.apache.jena.graph.Node)

Example 62 with Node

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

the class concat method execEvaluated.

@Override
public QueryIterator execEvaluated(Binding binding, Node subject, Node predicate, PropFuncArg object, ExecutionContext execCxt) {
    if (!Var.isVar(subject))
        throw new ExprEvalException("Subject is not a variable (" + subject + ")");
    String x = "";
    for (Node node : object.getArgList()) {
        if (Var.isVar(node))
            return IterLib.noResults(execCxt);
        String str = NodeFunctions.str(node);
        x = x + str;
    }
    return IterLib.oneResult(binding, Var.alloc(subject), NodeFactory.createLiteral(x), execCxt);
}
Also used : Node(org.apache.jena.graph.Node) ExprEvalException(org.apache.jena.sparql.expr.ExprEvalException)

Example 63 with Node

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

the class container method findContainers.

private static void findContainers(Collection<Node> acc, Graph graph, Node typeNode) {
    ExtendedIterator<Triple> iter = graph.find(Node.ANY, RDF.type.asNode(), typeNode);
    while (iter.hasNext()) {
        Triple t = iter.next();
        Node containerNode = t.getSubject();
        acc.add(containerNode);
    }
}
Also used : Triple(org.apache.jena.graph.Triple) Node(org.apache.jena.graph.Node)

Example 64 with Node

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

the class container method execEvaluatedCalc.

// Ask by finding all the rdf:_N + rdf:type  
private QueryIterator execEvaluatedCalc(Binding binding, Node containerNode, Node predicate, Node member, ExecutionContext execCxt) {
    Graph graph = execCxt.getActiveGraph();
    if (!containerNode.isVariable()) {
        // Container a ground term.
        if (!GraphContainerUtils.isContainer(execCxt.getActiveGraph(), containerNode, typeNode))
            return IterLib.noResults(execCxt);
        return oneContainer(binding, containerNode, member, execCxt);
    }
    // Container a variable. 
    Collection<Node> c = null;
    if (member.isVariable())
        c = findContainers(graph, typeNode);
    else
        c = findContainingContainers(graph, typeNode, member);
    QueryIterConcat cIter = new QueryIterConcat(execCxt);
    Var cVar = Var.alloc(containerNode);
    for (Node cn : c) {
        //Binding the container node. 
        Binding b = BindingFactory.binding(binding, cVar, cn);
        Node m = member;
        // Special case of ?x rdfs:member ?x
        if (Var.isVar(member) && member.equals(cVar)) {
            m = cn;
        }
        cIter.add(oneContainer(b, cn, m, execCxt));
    }
    return cIter;
//throw new QueryFatalException(Utils.className(this)+": Arg 1 is too hard : "+containerNode) ;
}
Also used : Binding(org.apache.jena.sparql.engine.binding.Binding) Graph(org.apache.jena.graph.Graph) Var(org.apache.jena.sparql.core.Var) Node(org.apache.jena.graph.Node)

Example 65 with Node

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

the class listIndex method getByIndex.

private static QueryIterator getByIndex(Graph graph, Binding binding, Node listNode, Node indexNode, Var varMember, ExecutionContext execCxt) {
    int i = NodeFactoryExtra.nodeToInt(indexNode);
    if (i < 0)
        return IterLib.noResults(execCxt);
    Node n = GraphList.get(new GNode(graph, listNode), i);
    if (n == null)
        return IterLib.noResults(execCxt);
    return IterLib.oneResult(binding, varMember, n, execCxt);
}
Also used : GNode(org.apache.jena.sparql.util.graph.GNode) Node(org.apache.jena.graph.Node) GNode(org.apache.jena.sparql.util.graph.GNode)

Aggregations

Node (org.apache.jena.graph.Node)681 Test (org.junit.Test)191 Triple (org.apache.jena.graph.Triple)98 BaseTest (org.apache.jena.atlas.junit.BaseTest)85 Var (org.apache.jena.sparql.core.Var)84 ArrayList (java.util.ArrayList)55 Graph (org.apache.jena.graph.Graph)46 Binding (org.apache.jena.sparql.engine.binding.Binding)40 DatasetGraph (org.apache.jena.sparql.core.DatasetGraph)36 Quad (org.apache.jena.sparql.core.Quad)35 LabelToNode (org.apache.jena.riot.lang.LabelToNode)28 RDFNode (org.apache.jena.rdf.model.RDFNode)25 HashMap (java.util.HashMap)22 Model (org.apache.jena.rdf.model.Model)18 BindingMap (org.apache.jena.sparql.engine.binding.BindingMap)18 NodeId (org.apache.jena.tdb.store.NodeId)18 NodeWritable (org.apache.jena.hadoop.rdf.types.NodeWritable)16 Token (org.apache.jena.riot.tokens.Token)16 BasicPattern (org.apache.jena.sparql.core.BasicPattern)16 NodeValue (org.apache.jena.sparql.expr.NodeValue)16