Package lupos.engine.operators.singleinput

Examples of lupos.engine.operators.singleinput.Result


    // 5. Ergebniss aller Regeln in einem Result zusammenfuehren
    BasicOperator[] finalResults;
    if (obj.getConclusion() == null) {
      finalResults = new BasicOperator[1];
      finalResults[0] = new Result();
    } else {
      finalResults = this.patternFromConclusion(obj.getConclusion());
    }

    for(final BasicOperator finalResult: finalResults){
      // Verbindungen zum Endergebniss herstellen
      for (final BasicOperator subOperator : subOperators) {
        // Result immer auf linker Seite, damit keine Linksrekursion
        // auftreten kann
        if(!(finalResult instanceof TriplePattern && subOperator instanceof ConstructPredicate)
            &&!(finalResult instanceof PredicatePattern && (subOperator instanceof Construct || subOperator instanceof Generate))){
          if (!subOperator.getSucceedingOperators().isEmpty()) {
            final OperatorIDTuple temp = subOperator.getSucceedingOperators().get(0);
            subOperator.getSucceedingOperators().set(0,new OperatorIDTuple(finalResult, 0));
            finalResult.addPrecedingOperator(subOperator);
            subOperator.addSucceedingOperator(temp);
          } else {
            subOperator.setSucceedingOperator(new OperatorIDTuple(finalResult, 0));
            finalResult.addPrecedingOperator(subOperator);
          }
        }
      }
    }
    for(int i=0; i<finalResults.length; i++){
      BasicOperator finalResult = finalResults[i];
      if (subOperators.isEmpty()) {
        // Root verweist auf EmptyIndex und der direkt auf Result
        if (finalResult instanceof PredicatePattern || finalResult instanceof TriplePattern) {
          finalResult.removeFromOperatorGraph();
          finalResult = null;
        }
        final EmptyIndexScan empty = new EmptyIndexScan(finalResult == null ? null : new OperatorIDTuple(finalResult, 0));
        this.indexScanCreator.getRoot().addSucceedingOperator(new OperatorIDTuple(empty, this.indexScanCreator.getRoot().getSucceedingOperators().size()));
        empty.addPrecedingOperator(this.indexScanCreator.getRoot());
        if (finalResult == null) {
          finalResults[i] = empty;
        }
      }
    }

    if (this.booleanIndex != null
        && this.booleanIndex.getSucceedingOperators().isEmpty()){
      this.indexScanCreator.getRoot().removeSucceedingOperator(this.booleanIndex);
      this.booleanIndex.removePrecedingOperator(this.indexScanCreator.getRoot());
    }

    if(finalResults.length==1 && (finalResults[0] instanceof Result)){
      return finalResults[0];
    }

    // Falls Conclusion vorhanden, noch Result anhaengen, zum Sammeln der Ergebnisse
    final Result result = new Result();
    final BasicOperator makeBooleanResultOrResult;
    if (obj.getConclusion() != null && obj.getConclusion().getVariables().isEmpty()) {
      makeBooleanResultOrResult = new MakeBooleanResult();
      makeBooleanResultOrResult.addSucceedingOperator(result);
      result.addPrecedingOperator(makeBooleanResultOrResult);
    } else {
      makeBooleanResultOrResult = result;
    }

    for(final BasicOperator finalResult: finalResults){
View Full Code Here


    @Override
    protected void replace(final HashMap<Class<?>, HashSet<BasicOperator>> _startNodes) {
      /*
       * search for a result in subgraph container, if not found, cancel the task!
       */
       final Result r = this.getResult(this.sg1.getRootOfSubgraph());
         if (r == null) {
      return;
    }

      // remove obsolete connections...



        // add new operators...

        final List<OperatorIDTuple> succs =  new LinkedList<OperatorIDTuple>(this.filter.getSucceedingOperators());
        List<BasicOperator> preds =  new LinkedList<BasicOperator>(this.filter.getPrecedingOperators());

        for (final OperatorIDTuple op : succs) {
          op.getOperator().removePrecedingOperator(this.filter);
          op.getOperator().addPrecedingOperator(this.sg1);
          this.sg1.addSucceedingOperator(op);
        }
        for (final OperatorIDTuple op : succs) {
          this.filter.removeSucceedingOperator(op);
        }
        for (final BasicOperator op : preds) {
          this.filter.removePrecedingOperator(op);
          op.removeSucceedingOperator(this.filter);
        }

        // now move to subgraph

        preds = new LinkedList<BasicOperator>(r.getPrecedingOperators());
        for (final BasicOperator bo : preds) {
          //remove ? -> Result
          bo.removeSucceedingOperator(r);
          r.removePrecedingOperator(bo);
          //add ? -> Filter
          bo.addSucceedingOperator(this.filter);
          this.filter.addPrecedingOperator(bo);
        }

        //add Filter -> Result
        this.filter.addSucceedingOperator(r);
        r.addPrecedingOperator(this.filter);


        // add new connections...

        // delete unreachable operators...
View Full Code Here

    for (final OperatorIDTuple succ : succs) {
      final BasicOperator op = succ.getOperator();
      if (op instanceof Result) {
        return (Result) op;
      } else {
        Result res = null;
        if ((res = this.getResult(op)) != null) {
          return res;
        }
      }
    }
View Full Code Here

  public Message preProcessMessage(final BoundVariablesMessage msg) {
    final BoundVariablesMessage newMsg = new BoundVariablesMessage(msg);
    //Send Message through the subgraph container graph
    this.getRootOfSubgraph().sendMessage(new BoundVariablesMessage());
    // Search for "result"-node
    final Result result = (Result) this.getRootOfSubgraph().visitAndStop(new SimpleOperatorGraphVisitor(){
      @Override
      public Object visit(final BasicOperator basicOperator) {
        if(basicOperator instanceof Result) {
          return basicOperator;
        } else {
          return null;
        }
      }});
    //set the union variables of the result node of the subgraph
    newMsg.setVariables(result.getUnionVariables());
    this.unionVariables = result.getUnionVariables();
    this.intersectionVariables = result.getUnionVariables();
    return newMsg;
  }
View Full Code Here

   * .operators.BasicOperator, int)
   */
  @Override
  public JSONObject serialize(final BasicOperator operator, final int node_id) throws JSONException {
    final JSONObject json = new JSONObject();
    final Result result = (Result) operator;
    try {
      json.put("type", result.getClass().getName());
      json.put("node_id", node_id);
      json.put("request_id", this.request_id);
    } catch (final JSONException e) {
      System.err.println(e);
      e.printStackTrace();
View Full Code Here

   * luposdate.operators.formatter.OperatorFormatter#deserialize(org.json.
   * JSONObject)
   */
  @Override
  public BasicOperator deserialize(final JSONObject serializedOperator) throws JSONException {
    final Result result = new Result();
    if (this.application == null) {
      this.application = new CollectResult(false);
    }
    result.addApplication(this.application);
    return result;

  }
View Full Code Here

              indexScan
                  .setSucceedingOperator(new OperatorIDTuple(
                      newFilter, 0));
              newFilter
                  .setSucceedingOperator(new OperatorIDTuple(
                      new Result(), 0));
            } catch (final ParseException e) {
              e.printStackTrace();
            }

          } else {
            indexScan.setSucceedingOperator(new OperatorIDTuple(
                new Result(), 0));
          }
        } else {
          indexScan.setSucceedingOperator(new OperatorIDTuple(
              new Result(), 0));
        }

        // indexScan.setSucceedingOperator(new OperatorIDTuple(new
        // Result(),
        // 0));
View Full Code Here

            newFilter = new Filter(filter.toString().substring(0,
                filter.toString().length() - 2));
            indexScan.setSucceedingOperator(new OperatorIDTuple(
                newFilter, 0));
            newFilter.setSucceedingOperator(new OperatorIDTuple(
                new Result(), 0));
          } catch (final ParseException e) {
            e.printStackTrace();
          }

        } else {
          indexScan.setSucceedingOperator(new OperatorIDTuple(
              new Result(), 0));
        }
      } else {
        indexScan.setSucceedingOperator(new OperatorIDTuple(
            new Result(), 0));
      }

      // indexScan.setSucceedingOperator(new OperatorIDTuple(new Result(),
      // 0));
      rootNodeOfSubGraph.setSucceedingOperator(new OperatorIDTuple(
View Full Code Here

      final String corequery = (root==null)?"":(String) spvid.visit(root);

      root = SPARQL1_1Parser.parse(corequery);

      if(root==null){
        this.result = new Result();
        root_param.setSucceedingOperator(new OperatorIDTuple(this.result,0));
      } else {
        final IndexOperatorGraphGenerator spvi = IndexOperatorGraphGenerator.createOperatorGraphGenerator(root_param, this);
        spvi.visit((ASTQuery)root);
View Full Code Here

   @Override
    protected void replace(final HashMap<Class<?>, HashSet<BasicOperator>> _startNodes) {
      /*
       * search for a result in subgraph container, if not found, cancel the task!
       */
       final Result r = this.getResult(this.sg1.getRootOfSubgraph());
         if (r == null) {
      return;
    }

      // remove obsolete connections...

         this.log.debug(String.format("Rule %s: Move %s intto %s",this.ruleName,this.filter,this.sg1));

        // add new operators...

        final List<OperatorIDTuple> succs = this.filter.getSucceedingOperators();
        List<BasicOperator> preds = this.filter.getPrecedingOperators();

        for (final OperatorIDTuple op : succs) {
          op.getOperator().removePrecedingOperator(this.filter);
          op.getOperator().addPrecedingOperator(this.sg1);
          this.sg1.addSucceedingOperator(op.getOperator());
        }
        for (final OperatorIDTuple op : succs) {
          this.filter.removeSucceedingOperator(op);
        }
        for (final BasicOperator op : preds) {
          this.filter.removePrecedingOperator(op);
          op.removeSucceedingOperator(this.filter);
        }

        // now move to subgraph

        preds = new LinkedList<BasicOperator>(r.getPrecedingOperators());
        for (final BasicOperator bo : preds) {
          //remove ? -> Result
          bo.removeSucceedingOperator(r);
          r.removePrecedingOperator(bo);
          //add ? -> Filter
          bo.addSucceedingOperator(this.filter);
        }

        //add Filter -> Result
        this.filter.addSucceedingOperator(r);
        r.addPrecedingOperator(this.filter);


        // add new connections...

        // delete unreachable operators...
View Full Code Here

TOP

Related Classes of lupos.engine.operators.singleinput.Result

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.