org.aksw.jena_sparql_api.utils.QuadUtils.arrayToQuad()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(4.9k)|赞(0)|评价(0)|浏览(58)

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

QuadUtils.arrayToQuad介绍

暂无

代码示例

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

public static QuadFilterPatternCanonical optimizeFilters(Collection<Quad> quads, Set<Set<Expr>> cnf, Set<Var> projection) {
  Map<Var, Node> varToNode = CnfUtils.getConstants(cnf);
  // A view on the set of variables subject the optimization
  Set<Var> optVars = varToNode.keySet();
  // Remove all equalities for projected variables
  optVars.remove(projection);
  Set<Quad> newQuads = new HashSet<Quad>();
  for(Quad quad : quads) {
    Node[] nodes = QuadUtils.quadToArray(quad);
    for(int i = 0; i < 4; ++i) {
      Node node = nodes[i];
      Node subst = varToNode.get(node);
      // Update in place, because the array is a copy anyway
      nodes[i] = subst == null ? node : subst;
    }
    Quad newQuad = QuadUtils.arrayToQuad(nodes);
    newQuads.add(newQuad);
  }
  // Remove the clauses from which the mapping was obtained
  Set<Set<Expr>> newCnf = new HashSet<>();
  for(Set<Expr> clause : cnf) {
    Entry<Var, Node> equality = CnfUtils.extractEquality(clause);
    boolean retainClause = equality == null || !optVars.contains(equality.getKey());
    if(retainClause) {
      newCnf.add(clause);
    }
  }
  QuadFilterPatternCanonical result = new QuadFilterPatternCanonical(newQuads, ExprHolder.fromCnf(newCnf));
  return result;
}

代码示例来源:origin: org.aksw.jena-sparql-api/jena-sparql-api-algebra

public static QuadFilterPatternCanonical optimizeFilters(Collection<Quad> quads, Set<Set<Expr>> cnf, Set<Var> projection) {
  Map<Var, Node> varToNode = CnfUtils.getConstants(cnf);
  // A view on the set of variables subject the optimization
  Set<Var> optVars = varToNode.keySet();
  // Remove all equalities for projected variables
  optVars.remove(projection);
  Set<Quad> newQuads = new HashSet<Quad>();
  for(Quad quad : quads) {
    Node[] nodes = QuadUtils.quadToArray(quad);
    for(int i = 0; i < 4; ++i) {
      Node node = nodes[i];
      Node subst = varToNode.get(node);
      // Update in place, because the array is a copy anyway
      nodes[i] = subst == null ? node : subst;
    }
    Quad newQuad = QuadUtils.arrayToQuad(nodes);
    newQuads.add(newQuad);
  }
  // Remove the clauses from which the mapping was obtained
  Set<Set<Expr>> newCnf = new HashSet<>();
  for(Set<Expr> clause : cnf) {
    Entry<Var, Node> equality = CnfUtils.extractEquality(clause);
    boolean retainClause = equality == null || !optVars.contains(equality.getKey());
    if(retainClause) {
      newCnf.add(clause);
    }
  }
  QuadFilterPatternCanonical result = new QuadFilterPatternCanonical(newQuads, ExprHolder.fromCnf(newCnf));
  return result;
}

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

public static UpdateDeleteInsert createUpdateRename(Node before, Node after, int i) {
  Node[] deleteTerms = { Quad.defaultGraphIRI, Vars.s, Vars.p, Vars.o };
  deleteTerms[i] = before;
  Quad deleteQuad = QuadUtils.arrayToQuad(deleteTerms);
  Node[] insertTerms = { Quad.defaultGraphIRI, Vars.s, Vars.p, Vars.o };
  insertTerms[i] = after;
  Quad insertQuad = QuadUtils.arrayToQuad(insertTerms);
  UpdateDeleteInsert result = new UpdateDeleteInsert();
  result.getDeleteAcc().addQuad(deleteQuad);
  result.getInsertAcc().addQuad(insertQuad);
  result.setElement(ElementUtils.createElement(deleteQuad));
  return result;
}

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

public static QuadFilterPatternCanonical replaceConstants(Iterable<Quad> quads, Generator<Var> generator) {
  Set<Set<Expr>> cnf = new HashSet<>();
  Map<Node, Var> constantToVar = new HashMap<>();
  Set<Quad> newQuads = new LinkedHashSet<>();
  for(Quad quad : quads) {
    Node[] nodes = QuadUtils.quadToArray(quad);
    for(int i = 0; i < 4; ++i) {
      Node node = nodes[i];
      if(!node.isVariable()) {
        Var v = constantToVar.get(node);
        if(v == null) {
          v = generator.next();
          constantToVar.put(node, v);
          Expr expr = new E_Equals(new ExprVar(v), NodeValue.makeNode(node));
          cnf.add(Collections.singleton(expr));
        }
        nodes[i] = v;
      }
      // If it is a variable, just retain it
    }
    Quad newQuad = QuadUtils.arrayToQuad(nodes);
    newQuads.add(newQuad);
  }
  QuadFilterPatternCanonical result = new QuadFilterPatternCanonical(newQuads, ExprHolder.fromCnf(cnf));
  return result;
}

代码示例来源:origin: org.aksw.jena-sparql-api/jena-sparql-api-algebra

public static QuadFilterPatternCanonical replaceConstants(Iterable<Quad> quads, Generator<Var> generator) {
  Set<Set<Expr>> cnf = new HashSet<>();
  Map<Node, Var> constantToVar = new HashMap<>();
  Set<Quad> newQuads = new LinkedHashSet<>();
  for(Quad quad : quads) {
    Node[] nodes = QuadUtils.quadToArray(quad);
    for(int i = 0; i < 4; ++i) {
      Node node = nodes[i];
      if(!node.isVariable()) {
        Var v = constantToVar.get(node);
        if(v == null) {
          v = generator.next();
          constantToVar.put(node, v);
          Expr expr = new E_Equals(new ExprVar(v), NodeValue.makeNode(node));
          cnf.add(Collections.singleton(expr));
        }
        nodes[i] = v;
      }
      // If it is a variable, just retain it
    }
    Quad newQuad = QuadUtils.arrayToQuad(nodes);
    newQuads.add(newQuad);
  }
  QuadFilterPatternCanonical result = new QuadFilterPatternCanonical(newQuads, ExprHolder.fromCnf(cnf));
  return result;
}

相关文章