code: def process_dataset(name, epsilon):
      if name == "cora":
          dataset = CoraGraphDataset()
      elif name == "citeseer":
          dataset = CiteseerGraphDataset()
  
      graph = dataset[0]
      feat = graph.ndata.pop("feat")
      label = graph.ndata.pop("label")
  
      train_mask = graph.ndata.pop("train_mask")
      val_mask = graph.ndata.pop("val_mask")
      test_mask = graph.ndata.pop("test_mask")
  
      train_idx = th.nonzero(train_mask, as_tuple=False).squeeze()
      val_idx = th.nonzero(val_mask, as_tuple=False).squeeze()
      test_idx = th.nonzero(test_mask, as_tuple=False).squeeze()
  
      nx_g = dgl.to_networkx(graph)
  
      print("computing ppr")
      diff_adj = compute_ppr(nx_g, 0.2)
      print("computing end")
  
      if name == "citeseer":
          print("additional processing")
          feat = th.tensor(preprocess_features(feat.numpy())).float()
          diff_adj[diff_adj < epsilon] = 0
          scaler = MinMaxScaler()
          scaler.fit(diff_adj)
          diff_adj = scaler.transform(diff_adj)
  
      diff_edges = np.nonzero(diff_adj)
      diff_weight = diff_adj[diff_edges]
      diff_graph = dgl.graph(diff_edges)
  
      graph = graph.add_self_loop()
  
      return (
          graph,
          diff_graph,
          feat,
          label,
          train_idx,
          val_idx,
          test_idx,
          diff_weight,
      )
  
file_path: dgl/examples/pytorch/mvgrl/node/dataset.py
imports: import dgl
  import networkx
  import numpy
  import scipy.sparse
  import torch
  from dgl.data import CiteseerGraphDataset, CoraGraphDataset, PubmedGraphDataset
  from dgl.nn import APPNPConv
  from scipy.linalg import fractional_matrix_power, inv
  from sklearn.preprocessing import MinMaxScaler
label_desc: Use image node_id 4 for calling a global function with example usage: process_dataset(name, epsilon) and returns: graph,  diff_graph,  feat,  label,  train_idx,  val_idx,  test_idx,  diff_weight