本文整理了Java中org.aksw.jena_sparql_api.utils.QuadUtils.quadToArray
方法的一些代码示例,展示了QuadUtils.quadToArray
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QuadUtils.quadToArray
方法的具体详情如下:
包路径:org.aksw.jena_sparql_api.utils.QuadUtils
类名称:QuadUtils
方法名:quadToArray
暂无
代码示例来源:origin: SmartDataAnalytics/jena-sparql-api
public static boolean isPotentialMatchUnderMapping(Quad candQuad, Quad queryQuad, Map<Var, Var> partialSolution) {
Node[] candNodes = QuadUtils.quadToArray(candQuad);
Node[] queryNodes = QuadUtils.quadToArray(queryQuad);
boolean result = true;
for(int i = 0; i < 4 && result; ++i) {
Node candNode = candNodes[i];
Node queryNode = queryNodes[i];
Node candMap = partialSolution.get(candNode);
Node queryMap = partialSolution.get(queryNode);
result =
result && (
candMap != null && queryMap != null && candMap.equals(queryMap) ||
candMap == null && queryMap == null);
}
return result;
}
代码示例来源:origin: SmartDataAnalytics/jena-sparql-api
Multimap<Node, Quad> result = HashMultimap.create();
for(Quad quad : quads) {
Node[] nodes = QuadUtils.quadToArray(quad);
for(Node node : nodes) {
result.put(node, quad);
代码示例来源:origin: org.aksw.jena-sparql-api/jena-sparql-api-algebra
public static QuadFilterPatternCanonical removeDefaultGraphFilter(QuadFilterPatternCanonical qfpc) {
Set<Quad> quads = qfpc.getQuads();
Set<Set<Expr>> cnf = qfpc.getFilterCnf();
Map<Var, Node> varToNode = CnfUtils.getConstants(cnf);
Map<Var, Node> candMap = varToNode.entrySet().stream().filter(
e -> (Quad.defaultGraphIRI.equals(e.getValue())
|| Quad.defaultGraphNodeGenerated.equals(e.getValue())))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue));
Set<Var> candVars = candMap.keySet();
// Remove all vars that occurr in positions other than the graph
for(Quad quad : quads) {
Node[] nodes = QuadUtils.quadToArray(quad);
for(int i = 1; i < 4; ++i) {
Node node = nodes[i];
candVars.remove(node);
}
}
Set<Set<Expr>> newCnf = cnf.stream().filter(clause -> {
Entry<Var, Node> e = CnfUtils.extractEquality(clause);
boolean r = !candMap.entrySet().contains(e);
return r;
}).collect(Collectors.toSet());
QuadFilterPatternCanonical result = new QuadFilterPatternCanonical(quads, 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 QuadFilterPatternCanonical removeDefaultGraphFilter(QuadFilterPatternCanonical qfpc) {
Set<Quad> quads = qfpc.getQuads();
Set<Set<Expr>> cnf = qfpc.getFilterCnf();
Map<Var, Node> varToNode = CnfUtils.getConstants(cnf);
Map<Var, Node> candMap = varToNode.entrySet().stream().filter(
e -> (Quad.defaultGraphIRI.equals(e.getValue())
|| Quad.defaultGraphNodeGenerated.equals(e.getValue())))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue));
Set<Var> candVars = candMap.keySet();
// Remove all vars that occurr in positions other than the graph
for(Quad quad : quads) {
Node[] nodes = QuadUtils.quadToArray(quad);
for(int i = 1; i < 4; ++i) {
Node node = nodes[i];
candVars.remove(node);
}
}
Set<Set<Expr>> newCnf = cnf.stream().filter(clause -> {
Entry<Var, Node> e = CnfUtils.extractEquality(clause);
boolean r = !candMap.entrySet().contains(e);
return r;
}).collect(Collectors.toSet());
QuadFilterPatternCanonical result = new QuadFilterPatternCanonical(quads, ExprHolder.fromCnf(newCnf));
return result;
}
代码示例来源: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: 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;
}
内容来源于网络,如有侵权,请联系作者删除!