public Concept(List<Element> elements, Var var) { ElementGroup group = new ElementGroup(); for(Element item : elements) { if(item instanceof ElementTriplesBlock) { ElementTriplesBlock tmp = (ElementTriplesBlock)item; for(Triple t : tmp.getPattern()) { group.addTriplePattern(t); } } else { group.addElement(item); } } this.element = group; this.var = var; }
public static Query constructBySubjects(Collection<Node> ss) { ExprVar vs = new ExprVar(s); Query query = QueryFactory.create(); query.setQueryConstructType(); query.setDistinct(true); Triple triple = new Triple(s, p, o); ElementGroup group = new ElementGroup(); group.addTriplePattern(triple); List<Expr> exprs = new ArrayList<Expr>(); for(Node item : ss) { if(!item.isURI()) { continue; } exprs.add(new E_Equals(vs, NodeValue.makeNode(item))); } if(exprs.isEmpty()) { return null; } Expr or = ExprUtils.orifyBalanced(exprs); group.addElementFilter(new ElementFilter(or)); BasicPattern bgp = new BasicPattern(); bgp.add(triple); query.setConstructTemplate(new Template(bgp)); query.setQueryPattern(group); return query; }
public static Query spoTemplate(Node s, Node p, Node o) { Query query = QueryFactory.create(); query.setQuerySelectType(); Triple triple = new Triple(s, p, o); ElementGroup group = new ElementGroup(); group.addTriplePattern(triple); query.setQueryPattern(group); if(s.isVariable()) { query.getProject().add(Var.alloc(s.getName())); } if(p.isVariable()) { query.getProject().add(Var.alloc(p.getName())); } if(o.isVariable()) { query.getProject().add(Var.alloc(o.getName())); } return query; }
public static Query spoCountTemplate(Node s, Node p, Node o) { Query query = QueryFactory.create(); query.setQuerySelectType(); Triple triple = new Triple(s, p, o); ElementGroup group = new ElementGroup(); group.addTriplePattern(triple); query.setQueryPattern(group); if(s.isVariable()) { query.getProject().add(Var.alloc(s.getName())); } if(p.isVariable()) { query.getProject().add(Var.alloc(p.getName())); } if(o.isVariable()) { query.getProject().add(Var.alloc(o.getName())); } query.allocAggregate(new AggCount()); return query; }
public static Query inOutTemplate(Node s, Node p, Node o) { Query query = QueryFactory.create(); query.setQueryConstructType(); query.setDistinct(true); Triple triple = new Triple(s, p, o); ElementGroup group = new ElementGroup(); group.addTriplePattern(triple); // Avoid non-uris as objects if(o.isVariable()) { group.addElementFilter(new ElementFilter(new E_IsURI(new ExprVar(o)))); group.addElementFilter(new ElementFilter(new E_LogicalNot(new E_IsBlank(new ExprVar(o))))); } BasicPattern bgp = new BasicPattern(); bgp.add(triple); query.setConstructTemplate(new Template(bgp)); query.setQueryPattern(group); return query; }