docs: def compute_match(mapping, weight_dict):
      """
      Given a node mapping, compute match number based on weight_dict.
      Args:
      mappings: a list of node index in AMR 2. The ith element (value j) means node i in AMR 1 maps to node j in AMR 2.
      Returns:
      matching triple number
      Complexity: O(m*n) , m is the node number of AMR 1, n is the node number of AMR 2
  
      """
      # If this mapping has been investigated before, retrieve the value instead of re-computing.
      if veryVerbose:
          print("Computing match for mapping", file=DEBUG_LOG)
          print(mapping, file=DEBUG_LOG)
      if tuple(mapping) in match_triple_dict:
          if veryVerbose:
              print("saved value", match_triple_dict[tuple(mapping)], file=DEBUG_LOG)
          return match_triple_dict[tuple(mapping)]
      match_num = 0
      # i is node index in AMR 1, m is node index in AMR 2
      for i, m in enumerate(mapping):
          if m == -1:
              # no node maps to this node
              continue
          # node i in AMR 1 maps to node m in AMR 2
          current_node_pair = (i, m)
          if current_node_pair not in weight_dict:
              continue
          if veryVerbose:
              print("node_pair", current_node_pair, file=DEBUG_LOG)
          for key in weight_dict[current_node_pair]:
              if key == -1:
                  # matching triple resulting from instance/attribute triples
                  match_num += weight_dict[current_node_pair][key]
                  if veryVerbose:
                      print("instance/attribute match", weight_dict[current_node_pair][key], file=DEBUG_LOG)
              # only consider node index larger than i to avoid duplicates
              # as we store both weight_dict[node_pair1][node_pair2] and
              #     weight_dict[node_pair2][node_pair1] for a relation
              elif key[0] < i:
                  continue
              elif mapping[key[0]] == key[1]:
                  match_num += weight_dict[current_node_pair][key]
                  if veryVerbose:
                      print("relation match with", key, weight_dict[current_node_pair][key], file=DEBUG_LOG)
      if veryVerbose:
          print("match computing complete, result:", match_num, file=DEBUG_LOG)
      # update match_triple_dict
      match_triple_dict[tuple(mapping)] = match_num
      return match_num