code: public static <K, VV, EV> Graph<K, VV, EV> fromTupleDataSet(DataSet<Tuple3<K, K, EV>> edges,
  			final MapFunction<K, VV> vertexValueInitializer, ExecutionEnvironment context) {
  
  		DataSet<Edge<K, EV>> edgeDataSet = edges
  			.map(new Tuple3ToEdgeMap<>())
  				.name("Type conversion");
  
  		return fromDataSet(edgeDataSet, vertexValueInitializer, context);
  	}
docs: Creates a graph from a DataSet of Tuple3 objects for edges.
  
  <p>Each Tuple3 will become one Edge, where the source ID will be the first field of the Tuple2,
  the target ID will be the second field of the Tuple2
  and the Edge value will be the third field of the Tuple3.
  
  <p>Vertices are created automatically and their values are initialized
  by applying the provided vertexValueInitializer map function to the vertex IDs.
  
  @param edges a DataSet of Tuple3.
  @param vertexValueInitializer the mapper function that initializes the vertex values.
  It allows to apply a map transformation on the vertex ID to produce an initial vertex value.
  @param context the flink execution environment.
  @return the newly created graph.