code: def build_event_graph(graph, tree, node):
      
      # If we have already added this node then let's return
      if node_key(node) in graph:
          return
      type = get_type(node)
      text = get_text(node)
      label = '%s (%s)' % (type, text)
      graph.add_node(node_key(node), type=type, label=label, text=text)
      args = get_args(node)
      for arg_role, (arg_id, arg_tag) in args.items():
          arg = get_node_by_id(tree, arg_id)
          if arg is None:
              arg = arg_tag
          build_event_graph(graph, tree, arg)
          graph.add_edge(node_key(node), node_key(arg), type=arg_role,
                         label=arg_role)
docs: Return a DiGraph of a specific event structure, built recursively