/** * Wrap a list of triples up as a BasicPattern. Changing the list, changes the * BasicPattern */ public static BasicPattern wrap(List<Triple> triples) { return new BasicPattern(triples) ; }
public ElementTriplesBlock() { pattern = new BasicPattern() ; }
Op op; BasicPattern pat = new BasicPattern(); // Make a pattern pat.add(pattern); // Add our pattern match op = new OpBGP(pat); // Make a BGP from this pattern op = OpFilter.filter(e, op); // Filter that pattern with our expression op = new OpProject(op, Arrays.asList(Var.alloc("s"))); // Reduce to just ?s Query q = OpAsQuery.asQuery(op); // Convert to a query q.setQuerySelectType(); // Make is a select query
private static BasicPattern merge(BasicPattern p1, BasicPattern p2) { if ( p1 == null || p2 == null ) return null ; BasicPattern p = new BasicPattern() ; p.addAll(p1) ; p.addAll(p2) ; return p ; }
public static ElementTriplesBlock createElement(Triple triple) { BasicPattern bgp = new BasicPattern(); bgp.add(triple); ElementTriplesBlock result = new ElementTriplesBlock(bgp); return result; }
public Map<Node, BasicPattern> getGraphPattern(){ List<Quad> quads = getQuads(); HashMap<Node, BasicPattern> graphs = new HashMap<>(); for (Quad q: quads){ BasicPattern bgp = graphs.get(q.getGraph()); if (bgp == null){ bgp = new BasicPattern(); graphs.put(q.getGraph(), bgp); } bgp.add( q.asTriple() ); } return graphs; }
public final OpBGP asBGP() { if ( opBGP == null ) { BasicPattern bp = new BasicPattern() ; bp.add(getTriple()) ; opBGP = new OpBGP(bp) ; } return opBGP ; }
public static BasicPattern substitute(BasicPattern bgp, Binding binding) { if ( isNotNeeded(binding) ) return bgp; BasicPattern bgp2 = new BasicPattern(); for ( Triple triple : bgp ) { Triple t = substitute(triple, binding); bgp2.add(t); } return bgp2; }
public static Concept createConceptProperty(Node propertyNode) { BasicPattern pattern = new BasicPattern(); pattern.add(new Triple(vs, propertyNode, vw)); ElementTriplesBlock element = new ElementTriplesBlock(pattern); Concept result = new Concept(element, vs); return result; }
public static Concept createConceptProperty(Node propertyNode) { BasicPattern pattern = new BasicPattern(); pattern.add(new Triple(vs, propertyNode, vw)); ElementTriplesBlock element = new ElementTriplesBlock(pattern); Concept result = new Concept(element, vs); return result; }
public OpQuadPattern asQuadPattern() { if ( opQuadPattern == null ) { BasicPattern bp = new BasicPattern() ; bp.add(getQuad().asTriple()) ; opQuadPattern = new OpQuadPattern(quad.getGraph(),bp) ; } return opQuadPattern ; }
private Node processPropFuncArg(PropFuncArg args) { if ( args.isNode() ) return args.getArg() ; // List ... List<Node> list = args.getArgList() ; if ( list.size() == 0 ) return RDF.Nodes.nil ; BasicPattern bgp = new BasicPattern() ; Node head = GraphList.listToTriples(list, bgp) ; currentGroup().addElement(process(bgp)) ; return head ; }
public BasicPattern getBGP() { if (this.bgp != null){ return this.bgp; } BasicPattern bgp = new BasicPattern(); for(Quad q: qp.getQuads()){ if (Quad.defaultGraphNodeGenerated.equals(q.getGraph())) bgp.add(q.asTriple()); } return bgp; } public List<Triple> getTriples()
private Node processPropFuncArg(PropFuncArg args) { if ( args.isNode() ) return args.getArg() ; // List ... List<Node> list = args.getArgList() ; if ( list.size() == 0 ) return RDF.Nodes.nil ; BasicPattern bgp = new BasicPattern() ; Node head = GraphList.listToTriples(list, bgp) ; currentGroup().addElement(process(bgp)) ; return head ; }
public static Concept createConcept2(Node propertyNode1, Node propertyNode2) { BasicPattern pattern = new BasicPattern(); pattern.add(new Triple(vs, propertyNode1, va)); pattern.add(new Triple(va, propertyNode2, vw)); ElementTriplesBlock element = new ElementTriplesBlock(pattern); Concept result = new Concept(element, vs); return result; }
public static Concept createConcept2(Node propertyNode1, Node propertyNode2) { BasicPattern pattern = new BasicPattern(); pattern.add(new Triple(vs, propertyNode1, va)); pattern.add(new Triple(va, propertyNode2, vw)); ElementTriplesBlock element = new ElementTriplesBlock(pattern); Concept result = new Concept(element, vs); return result; }
public static MappedConcept<Graph> createMappedConcept(Query query) { // TODO We need to include the triple direction in var ?z BasicPattern bgp = new BasicPattern(); bgp.add(new Triple(Vars.s, Vars.p, Vars.o)); Template template = new Template(bgp); //Agg<Map<Node, Graph>> agg = AggMap.create(new BindingMapperExpr(new ExprVar(Vars.g)), new AggGraph(template)); Agg<Graph> agg = new AggGraph(template, Vars.z); Concept concept = new Concept(new ElementSubQuery(query), Vars.x); MappedConcept<Graph> result = new MappedConcept<Graph>(concept, agg); return result; }
public static Element toElement(Quad quad, Set<Set<Expr>> cnf) { ExprList exprs = CnfUtils.toExprList(cnf); BasicPattern bp = new BasicPattern(); bp.add(quad.asTriple()); OpQuadPattern opA = new OpQuadPattern(quad.getGraph(), bp); Op opB = OpFilter.filterBy(exprs, opA); Query query = OpAsQuery.asQuery(opB); Element result = query.getQueryPattern(); return result; }
public static Element toElement(Quad quad, Set<Set<Expr>> cnf) { ExprList exprs = CnfUtils.toExprList(cnf); BasicPattern bp = new BasicPattern(); bp.add(quad.asTriple()); OpQuadPattern opA = new OpQuadPattern(quad.getGraph(), bp); Op opB = OpFilter.filterBy(exprs, opA); Query query = OpAsQuery.asQuery(opB); Element result = query.getQueryPattern(); return result; }
@Test public void formatPattern_2_triples() { BasicPattern basicPattern = new BasicPattern() ; basicPattern.add(getTriple()) ; basicPattern.add(getTriple2()) ; ByteArrayOutputStream os = new ByteArrayOutputStream() ; try(IndentedWriter iw = new IndentedWriter(os)) { SerializationContext sc = new SerializationContext() ; FmtUtils.formatPattern(iw, basicPattern, sc) ; } assertEquals("<n1> <n2> \"l3\" .\n" + "<nb1> <nb2> \"lb3\" .", new String(os.toByteArray())) ; }