code: def make_living17(info_dir, split=None):
      """
      Obtain superclass/subclass information for the LIVING-17 dataset
      Args:
          info_dir (str) : Path to ImageNet information files
          split ("good"/"bad"/"rand"/None): Nature of subclass
      Returns:
          superclasses (list): WordNet IDs of superclasses
          subclass_splits (tuple): Tuple entries correspond to the source
                                   and target domains respectively. A
                                   tuple entry is a list, where each
                                   element is a list of subclasses to
                                   be included in a given superclass in
                                   that domain. If split is None,
                                   the second tuple element is empty.
          label_map (dict): Map from (super)class number to superclass name
  
      """
      DG = BreedsDatasetGenerator(info_dir)
      return DG.get_superclasses(
          level=5,
          ancestor="n00004258",
          Nsubclasses=4,
          split=split,
          balanced=True,
          random_seed=2,
          verbose=False,
      )
  
imports: import sys, os
  import json
  import numpy
  import pandas
  import urllib
  from collections import OrderedDict, Counter
  import operator
  import networkx
  from ..datasets import DATASETS
label_desc: Use image node_id 5 for calling a global function with example usage: make_living17(info_dir, split) and returns: DG