code: public Graph<KB, VVB, Tuple2<EV, EV>> projectionBottomSimple() {
  		DataSet<Edge<KB, Tuple2<EV, EV>>> newEdges =  edges.join(edges)
  			.where(0)
  			.equalTo(0)
  			.with(new ProjectionBottomSimple<>())
  			.name("Simple bottom projection");
  
  		return Graph.fromDataSet(bottomVertices, newEdges, context);
  	}
docs: Convert a bipartite graph into an undirected graph that contains only bottom vertices. An edge between two
  vertices in the new graph will exist only if the original bipartite graph contains a top vertex they are both
  connected to.
  
  <p>The simple projection performs a single join and returns edges containing the bipartite edge values.
  
  <p>Note: KB must override .equals(). This requirement may be removed in a future release.
  
  @return simple bottom projection of the bipartite graph