protected List<Edge> make(Collection<Triple> triples) {
		List<Edge> edges = new ArrayList<Edge>();
		for(Triple t:triples){
			List<RemoteService> services = config.getServiceRegistry().getMatchingServices(t);
			if(services.isEmpty()) {
				if(Config.debug)
					System.out.println("No service for "+t);
				finished = true;
			}
			Triple hypT = new HypTriple(t,services);
			Vertex v1 = Vertex.create(t.getSubject());
			if(t.getSubject().isConcrete()) {
				v1.setBindings(null);
			}
				
			Vertex v2 = Vertex.create(t.getObject());
			if(t.getObject().isConcrete()) {
				v2.setBindings(null);
			}
			
			Edge e = new Edge(v1,v2,hypT);
			v1.addEdge(e);
			v2.addEdge(e);
			int tripleCount = 0;
			int dstObj = 0;
			int dstSub = 0;
			for(RemoteService rs:services) {
				tripleCount += rs.getTriples(t);
				dstSub+= rs.getDistinctSubject(t);
				dstObj+= rs.getDistinctObject(t);
			}
			e.setTripleCount(tripleCount);
			e.setDistinctSubject(dstSub);
			e.setDistinctObject(dstObj);
			edges.add(e);
		}
		return edges;
	}