本文整理了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
暂无
代码示例来源: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;
}
内容来源于网络,如有侵权,请联系作者删除!