Search in sources :

Example 71 with Node

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

the class PathEngineSPARQL method doFixedLengthPath.

@Override
protected void doFixedLengthPath(Path pathStep, Node node, long fixedLength, Collection<Node> output) {
    // Not SPARQL
    if (fixedLength == 0) {
        output.add(node);
        return;
    }
    // P_Mod(path, count, count)
    // One step.
    Iterator<Node> iter = eval(pathStep, node);
    // Build a path for all remaining steps.
    long count2 = dec(fixedLength);
    P_FixedLength nextPath = new P_FixedLength(pathStep, count2);
    // Accumulate across everything from first step.
    for (; iter.hasNext(); ) {
        Node n2 = iter.next();
        Iterator<Node> iter2 = eval(nextPath, n2);
        fill(iter2, output);
    }
}
Also used : Node(org.apache.jena.graph.Node) P_FixedLength(org.apache.jena.sparql.path.P_FixedLength)

Example 72 with Node

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

the class PathEngineSPARQL method doOneOrMoreN.

@Override
protected void doOneOrMoreN(Path pathStep, Node node, Collection<Node> output) {
    Set<Node> visited = new HashSet<>();
    // Do one step without including.
    Iterator<Node> iter1 = eval(pathStep, node);
    for (; iter1.hasNext(); ) {
        Node n1 = iter1.next();
        ALP_N(n1, pathStep, visited, output);
    }
}
Also used : Node(org.apache.jena.graph.Node)

Example 73 with Node

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

the class PropFuncArg method asExprList.

public ExprList asExprList() {
    ExprList exprList = new ExprList();
    if (isNode()) {
        Node n = getArg();
        Expr expr = ExprUtils.nodeToExpr(n);
        exprList.add(expr);
        return exprList;
    }
    for (Node n : getArgList()) {
        Expr expr = ExprUtils.nodeToExpr(n);
        exprList.add(expr);
    }
    return exprList;
}
Also used : Expr(org.apache.jena.sparql.expr.Expr) ExprList(org.apache.jena.sparql.expr.ExprList) Node(org.apache.jena.graph.Node)

Example 74 with Node

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

the class PathLib method evalGroundedPath.

// Subject and object are nodes.
private static QueryIterator evalGroundedPath(Binding binding, Graph graph, Node subject, Path path, Node object, ExecutionContext execCxt) {
    Iterator<Node> iter = PathEval.eval(graph, subject, path, execCxt.getContext());
    // Now count the number of matches.
    int count = 0;
    for (; iter.hasNext(); ) {
        Node n = iter.next();
        if (n.sameValueAs(object))
            count++;
    }
    return new QueryIterYieldN(count, binding, execCxt);
}
Also used : Node(org.apache.jena.graph.Node) QueryIterYieldN(org.apache.jena.sparql.engine.iterator.QueryIterYieldN)

Example 75 with Node

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

the class listIndex method execOneList.

@Override
protected QueryIterator execOneList(Binding binding, Node listNode, Node predicate, List<Node> objectArgs, ExecutionContext execCxt) {
    if (Var.isVar(listNode))
        throw new ExprEvalException("ListIndex : subject not a list or variable bound to a list");
    if (objectArgs.size() != 2)
        throw new ExprEvalException("ListIndex : object not a list of length 2");
    Node indexNode = objectArgs.get(0);
    Node memberNode = objectArgs.get(1);
    Graph graph = execCxt.getActiveGraph();
    if (Var.isVar(indexNode) && !Var.isVar(memberNode))
        return findIndex(graph, binding, listNode, Var.alloc(indexNode), memberNode, execCxt);
    if (!Var.isVar(indexNode) && Var.isVar(memberNode))
        return getByIndex(graph, binding, listNode, indexNode, Var.alloc(memberNode), execCxt);
    if (!Var.isVar(indexNode) && !Var.isVar(memberNode))
        return testSlotValue(graph, binding, listNode, indexNode, memberNode, execCxt);
    return findIndexMember(graph, binding, listNode, Var.alloc(indexNode), Var.alloc(memberNode), execCxt);
}
Also used : Graph(org.apache.jena.graph.Graph) Node(org.apache.jena.graph.Node) GNode(org.apache.jena.sparql.util.graph.GNode) ExprEvalException(org.apache.jena.sparql.expr.ExprEvalException)

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