code: public static <K, VV, EV> Graph<K, VV, EV> fromTupleDataSet(DataSet<Tuple2<K, VV>> vertices,
  			DataSet<Tuple3<K, K, EV>> edges, ExecutionEnvironment context) {
  
  		DataSet<Vertex<K, VV>> vertexDataSet = vertices
  			.map(new Tuple2ToVertexMap<>())
  				.name("Type conversion");
  
  		DataSet<Edge<K, EV>> edgeDataSet = edges
  			.map(new Tuple3ToEdgeMap<>())
  				.name("Type conversion");
  
  		return fromDataSet(vertexDataSet, edgeDataSet, context);
  	}
docs: Creates a graph from a DataSet of Tuple2 objects for vertices and
  Tuple3 objects for edges.
  
  <p>The first field of the Tuple2 vertex object will become the vertex ID
  and the second field will become the vertex value.
  The first field of the Tuple3 object for edges will become the source ID,
  the second field will become the target ID, and the third field will become
  the edge value.
  
  @param vertices a DataSet of Tuple2 representing the vertices.
  @param edges a DataSet of Tuple3 representing the edges.
  @param context the flink execution environment.
  @return the newly created graph.