Pipe(Graph g){ graph = g; exec = QueryProcess.create(graph); load = Load.create(graph); exec.setLoader(load); qNode = NodeImpl.createVariable(QNAME); tNode = NodeImpl.createVariable(TNAME); }
/** * First param is query other param are variable bindings (variable, value) */ Mapping createMapping(Producer p, IDatatype[] param, int start) { ArrayList<Node> var = new ArrayList<Node>(); ArrayList<Node> val = new ArrayList<Node>(); for (int i = start; i < param.length; i += 2) { var.add(NodeImpl.createVariable(clean(param[i].getLabel()))); val.add(p.getNode(param[i + 1])); } return Mapping.create(var, val); }
/** * First param is query * other param are variable bindings (variable, value) */ Mapping createMapping(Producer p, IDatatype[] param, int start){ ArrayList<Node> var = new ArrayList<Node>(); ArrayList<Node> val = new ArrayList<Node>(); for (int i = start; i < param.length; i += 2){ var.add(NodeImpl.createVariable(clean(param[i].getLabel()))); val.add(p.getNode(param[i+1])); } return Mapping.create(var, val); }
Mapping getMapping(String var, IDatatype dt){ Mapping map = Mapping.create(NodeImpl.createVariable(var), getNode(dt)); return map; }
private Node getVariable(Node n) { Node v = table.get(n); if (v == null) { //String name = VAR + count ++; v = NodeImpl.createVariable("?"+n.getLabel()); table.put(n, v); } return v; }
Mapping getMapping(Query q, IDatatype dt){ Node qn = NodeImpl.createVariable(getArg(q, 0)); Node n = getNode(dt); return Mapping.create(qn, n); }
Mapping getSimpleMapping(IDatatype dt){ Mapping map = getMapping(); if (map == null){ map = Mapping.create(NodeImpl.createVariable(IN), getNode(dt)); setMapping(map); } else { //map.getNodes()[0] = getNode(dt); map.setNode(getNode(dt), 0); } return map; }
/** * node: start blank node of a list * elem: element of the list * create a path edge: ?node rdf:rest* / rdf:first ?elem * add path edge in query */ private Exp create(Node node, Node elem) { Node var = NodeImpl.createVariable(variable()); fr.inria.corese.compiler.parser.EdgeImpl edge = fr.inria.corese.compiler.parser.EdgeImpl.create(var, node, elem); Term re = list(); re.compile(ast); Exp exp = Exp.create(Exp.PATH, edge); exp.setRegex(re); if (isDebug()){ System.out.println("QV: " + exp); } query.getBody().add(exp); return exp; }