org.apache.jena.sparql.engine.ExecutionContext.getDataset()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(12.0k)|赞(0)|评价(0)|浏览(62)

本文整理了Java中org.apache.jena.sparql.engine.ExecutionContext.getDataset()方法的一些代码示例,展示了ExecutionContext.getDataset()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ExecutionContext.getDataset()方法的具体详情如下:
包路径:org.apache.jena.sparql.engine.ExecutionContext
类名称:ExecutionContext
方法名:getDataset

ExecutionContext.getDataset介绍

暂无

代码示例

代码示例来源:origin: apache/jena

public FunctionEnvBase(ExecutionContext execCxt)
{ 
  this(execCxt.getContext(), execCxt.getActiveGraph(), execCxt.getDataset()) ;
  execContext = execCxt ;
}

代码示例来源:origin: apache/jena

@Override
public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
  super.build(argSubject, predicate, argObject, execCxt);
  DatasetGraph dsg = execCxt.getDataset();
  server = chooseTextIndex(execCxt,dsg);
}

代码示例来源:origin: org.apache.jena/jena-spatial

@Override
public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
  super.build(argSubject, predicate, argObject, execCxt);
  DatasetGraph dsg = execCxt.getDataset();
  server = chooseTextIndex(execCxt,dsg);
}

代码示例来源:origin: apache/jena

@Override
protected QueryIterator execute(OpQuadPattern quadPattern, QueryIterator input)
{
  if ( ! isForTDB )
    return super.execute(quadPattern, input) ;
    
//        DatasetGraph dg = execCxt.getDataset() ;
//        if ( ! ( dg instanceof DatasetGraphTDB ) )
//            throw new InternalErrorException("Not a TDB backed dataset in quad pattern execution") ;
  
  DatasetGraphTDB ds = (DatasetGraphTDB)execCxt.getDataset() ;
  BasicPattern bgp = quadPattern.getBasicPattern() ;
  Node gn = quadPattern.getGraphNode() ;
  return optimizeExecuteQuads(ds, input, gn, bgp, null, execCxt) ;
}

代码示例来源:origin: apache/jena

private QueryIterator specialcase(Node gn, Op subOp, QueryIterator input) {
  // This is a placeholder for code to specially handle explicitly named
  // default graph and union graph.
  if (Quad.isDefaultGraph(gn)) {
    ExecutionContext cxt2 = new ExecutionContext(execCxt, execCxt.getDataset().getDefaultGraph()) ;
    return execute(subOp, input, cxt2) ;
  }
  // Bad news -- if ( Lib.equals(gn, Quad.tripleInQuad) ) {}
  return null ;
}

代码示例来源:origin: apache/jena

@Override
protected QueryIterator execute(OpQuadPattern quadPattern, QueryIterator input)
{
  if ( ! isForTDB )
    return super.execute(quadPattern, input) ;
    
//        DatasetGraph dg = execCxt.getDataset() ;
//        if ( ! ( dg instanceof DatasetGraphTDB ) )
//            throw new InternalErrorException("Not a TDB backed dataset in quad pattern execution") ;
  
  DatasetGraphTDB ds = (DatasetGraphTDB)execCxt.getDataset() ;
  BasicPattern bgp = quadPattern.getBasicPattern() ;
  Node gn = quadPattern.getGraphNode() ;
  return optimizeExecuteQuads(ds, input, gn, bgp, null, execCxt) ;
}

代码示例来源:origin: apache/jena

@Override
  protected QueryIterator nextStage(Binding outerBinding) {
    DatasetGraph ds = getExecContext().getDataset() ;
    // Is this closed?
    Iterator<Node> graphNameNodes = makeSources(ds, outerBinding, opGraph.getNode());
    
//        List<Node> x = Iter.toList(graphNameNodes) ;
//        graphNameNodes = x.iterator() ;
//        System.out.println(x) ;
    
    QueryIterator current = new QueryIterGraphInner(outerBinding, graphNameNodes, opGraph, getExecContext()) ;
    return current ;
  }

代码示例来源:origin: apache/jena

protected static QueryIterator buildIterator(Binding binding, Node graphNode, Op opExec, ExecutionContext outerCxt) {
  if ( !graphNode.isURI() && !graphNode.isBlank() )
    // e.g. variable bound to a literal or blank node.
    throw new ARQInternalErrorException("QueryIterGraphInner.buildIterator: Not a URI or blank node: "+graphNode) ;
  
  // We can't just use DatasetGraph.getGraph because it may 
  // "auto-create" graphs. Use the containsGraph function.
  boolean syntheticGraph = ( Quad.isDefaultGraph(graphNode) || Quad.isUnionGraph(graphNode) ) ;
  if ( ! syntheticGraph && ! outerCxt.getDataset().containsGraph(graphNode) )
    return null ;
  Graph g = outerCxt.getDataset().getGraph(graphNode) ;
  // And the contains was true??!!!!!!
  if ( g == null )
    return null ;
    //throw new ARQInternalErrorException(".containsGraph was true but .getGraph is null") ;
  
  ExecutionContext cxt2 = new ExecutionContext(outerCxt, g) ;
  QueryIterator subInput = QueryIterSingleton.create(binding, cxt2) ;
  return QC.execute(opExec, subInput, cxt2) ;
}

代码示例来源:origin: apache/jena

@Override
public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
  super.build(argSubject, predicate, argObject, execCxt) ;
  DatasetGraph dsg = execCxt.getDataset() ;
  textIndex = chooseTextIndex(execCxt, dsg) ;
  if (argSubject.isList()) {
    int size = argSubject.getArgListSize();
    if (size == 0 || size > 4) {
      throw new QueryBuildException("Subject has "+argSubject.getArgList().size()+" elements, must be at least 1 and not greater than 4: "+argSubject);
    }
  }
  if (argObject.isList()) {
    List<Node> list = argObject.getArgList() ;
    if (list.size() == 0)
      throw new QueryBuildException("Zero-length argument list") ;
    if (list.size() > 5)
      throw new QueryBuildException("Too many arguments in list : " + list) ;
  }
}

代码示例来源:origin: apache/jena

static Table evalDS(OpDatasetNames opDSN, Evaluator evaluator)
{
  Node graphNode = opDSN.getGraphNode() ;
  if ( graphNode.isURI() )
  {
    if ( evaluator.getExecContext().getDataset().containsGraph(graphNode) )
    { return new TableUnit() ; } 
    else
      // WRONG
    { return new TableEmpty() ; }
  }
  if ( ! Var.isVar(graphNode) )
    throw new ARQInternalErrorException("OpDatasetNames: Not a URI or variable: "+graphNode) ; 
  DatasetGraph dsg = evaluator.getExecContext().getDataset() ;
  Iterator<Node> iter = dsg.listGraphNodes() ;
  List<Binding> list = new ArrayList<>((int)dsg.size()) ;
  for ( ; iter.hasNext(); )
  {
    Node gn = iter.next();
    Binding b = BindingFactory.binding(Var.alloc(graphNode), gn) ;
    list.add(b) ;
  }
  QueryIterator qIter = new QueryIterPlainWrapper(list.iterator(), evaluator.getExecContext()) ;
  return TableFactory.create(qIter) ;
}

代码示例来源:origin: org.apache.jena/jena-text

@Override
public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
  super.build(argSubject, predicate, argObject, execCxt) ;
  DatasetGraph dsg = execCxt.getDataset() ;
  textIndex = chooseTextIndex(execCxt, dsg) ;
  if (argSubject.isList()) {
    int size = argSubject.getArgListSize();
    if (size == 0 || size > 4) {
      throw new QueryBuildException("Subject has "+argSubject.getArgList().size()+" elements, must be at least 1 and not greater than 4: "+argSubject);
    }
  }
  if (argObject.isList()) {
    List<Node> list = argObject.getArgList() ;
    if (list.size() == 0)
      throw new QueryBuildException("Zero-length argument list") ;
    if (list.size() > 5)
      throw new QueryBuildException("Too many arguments in list : " + list) ;
  }
}

代码示例来源:origin: apache/jena

@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 SolverLib.graphNames(ds, dsNames.getGraphNode(), input, filter, execCxt) ;
  else
    return SolverLib.testForGraphName(ds, dsNames.getGraphNode(), input, filter, execCxt) ;
}

代码示例来源:origin: apache/jena

@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 SolverLib.graphNames(ds, dsNames.getGraphNode(), input, filter, execCxt) ;
  else
    return SolverLib.testForGraphName(ds, dsNames.getGraphNode(), input, filter, execCxt) ;
}

代码示例来源:origin: ch.epfl.bluebrain.nexus.org.topbraid/shacl

@Override
  public QueryIterator exec(Binding binding, PropFuncArg argSubject,
      Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {

    argSubject = Substitute.substitute(argSubject, binding);
    argObject = Substitute.substitute(argObject, binding);
    
    if(!argObject.getArg().isVariable()) {
      throw new ExprEvalException("Right hand side of tosh:targetContains must be a variable");
    }
    
    Node targetNode = argSubject.getArgList().get(0);
    Node shapesGraphNode = argSubject.getArgList().get(1);
    
    Model currentModel = ModelFactory.createModelForGraph(execCxt.getActiveGraph());
    Dataset dataset = new DatasetWithDifferentDefaultModel(currentModel, DatasetImpl.wrap(execCxt.getDataset()));

    Model model = dataset.getNamedModel(shapesGraphNode.getURI());
    Resource target = (Resource) model.asRDFNode(targetNode);

    Set<Node> focusNodes = new HashSet<Node>();
    SHACLUtil.addNodesInTarget(target, dataset, focusNodes);
    return new QueryIterExtendByVar(binding, (Var) argObject.getArg(), focusNodes.iterator(), execCxt);
  }
}

代码示例来源:origin: TopQuadrant/shacl

@Override
  public QueryIterator exec(Binding binding, PropFuncArg argSubject,
      Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {

    argSubject = Substitute.substitute(argSubject, binding);
    argObject = Substitute.substitute(argObject, binding);
    
    if(!argObject.getArg().isVariable()) {
      throw new ExprEvalException("Right hand side of tosh:targetContains must be a variable");
    }
    
    Node targetNode = argSubject.getArgList().get(0);
    Node shapesGraphNode = argSubject.getArgList().get(1);
    
    Model currentModel = ModelFactory.createModelForGraph(execCxt.getActiveGraph());
    Dataset dataset = new DatasetWithDifferentDefaultModel(currentModel, DatasetImpl.wrap(execCxt.getDataset()));

    Model model = dataset.getNamedModel(shapesGraphNode.getURI());
    Resource target = (Resource) model.asRDFNode(targetNode);

    Set<Node> focusNodes = new HashSet<Node>();
    SHACLUtil.addNodesInTarget(target, dataset, focusNodes);
    return new QueryIterExtendByVar(binding, (Var) argObject.getArg(), focusNodes.iterator(), execCxt);
  }
}

代码示例来源:origin: apache/jena

@Override
public QueryIterator execute(OpQuadPattern opQuadPattern, QueryIterator input)
{
  Node gn = opQuadPattern.getGraphNode() ;
  gn = decideGraphNode(gn, execCxt) ;
  
  if ( execCxt.getDataset() instanceof DatasetGraphTDB )
  {
    DatasetGraphTDB ds = (DatasetGraphTDB)execCxt.getDataset() ;
    Explain.explain("Execute", opQuadPattern.getPattern(), execCxt.getContext()) ;
    BasicPattern bgp = opQuadPattern.getBasicPattern() ;
    return SolverLib.execute(ds, gn, bgp, input, filter, execCxt) ;
  }
  // Maybe a TDB named graph inside a non-TDB dataset.
  Graph g = execCxt.getActiveGraph() ;
  if ( g instanceof GraphTDB )
  {
    // Triples graph from TDB (which is the default graph of the dataset),
    // used a named graph in a composite dataset.
    BasicPattern bgp = opQuadPattern.getBasicPattern() ;
    Explain.explain("Execute", bgp, execCxt.getContext()) ;
    // Don't pass in G -- gn may be different.
    return SolverLib.execute(((GraphTDB)g).getDatasetGraphTDB(), gn, bgp, input, filter, execCxt) ;
  }
  Log.warn(this, "Non-DatasetGraphTDB passed to OpExecutorPlainTDB") ;
  return super.execute(opQuadPattern, input) ;
}

代码示例来源:origin: apache/jena

@Override
public QueryIterator execute(OpQuadPattern opQuadPattern, QueryIterator input)
{
  Node gn = opQuadPattern.getGraphNode() ;
  gn = decideGraphNode(gn, execCxt) ;
  
  if ( execCxt.getDataset() instanceof DatasetGraphTDB )
  {
    DatasetGraphTDB ds = (DatasetGraphTDB)execCxt.getDataset() ;
    Explain.explain("Execute", opQuadPattern.getPattern(), execCxt.getContext()) ;
    BasicPattern bgp = opQuadPattern.getBasicPattern() ;
    return SolverLib.execute(ds, gn, bgp, input, filter, execCxt) ;
  }
  // Maybe a TDB named graph inside a non-TDB dataset.
  Graph g = execCxt.getActiveGraph() ;
  if ( g instanceof GraphTDB )
  {
    // Triples graph from TDB (which is the default graph of the dataset),
    // used a named graph in a composite dataset.
    BasicPattern bgp = opQuadPattern.getBasicPattern() ;
    Explain.explain("Execute", bgp, execCxt.getContext()) ;
    // Don't pass in G -- gn may be different.
    return SolverLib.execute(((GraphTDB)g).getDSG(), gn, bgp, input, filter, execCxt) ;
  }
  Log.warn(this, "Non-DatasetGraphTDB passed to OpExecutorPlainTDB") ;
  return super.execute(opQuadPattern, input) ;
}

代码示例来源:origin: apache/jena

protected QueryIterator execute(OpQuadPattern quadPattern, QueryIterator input) {
  // Convert to BGP forms to execute in this graph-centric engine.
  if (quadPattern.isDefaultGraph() && execCxt.getActiveGraph() == execCxt.getDataset().getDefaultGraph()) {
    // Note we tested that the containing graph was the dataset's
    // default graph.
    // Easy case.
    OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ;
    return execute(opBGP, input) ;
  }
  // Not default graph - (graph .... )
  OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ;
  OpGraph op = new OpGraph(quadPattern.getGraphNode(), opBGP) ;
  return execute(op, input) ;
}

代码示例来源:origin: apache/jena

DatasetGraphTDB ds = (DatasetGraphTDB)execCxt.getDataset() ;
return optimizeExecuteQuads(ds, input,
              quadPattern.getGraphNode(), quadPattern.getBasicPattern(),

代码示例来源:origin: apache/jena

DatasetGraphTDB ds = (DatasetGraphTDB)execCxt.getDataset() ;
return optimizeExecuteQuads(ds, input,
              quadPattern.getGraphNode(), quadPattern.getBasicPattern(),

相关文章