docs: def node_link_graph(data: Mapping[str, Any]) -> BELGraph:
      """Return graph from node-link data format.
  
      Adapted from :func:`networkx.readwrite.json_graph.node_link_graph`
      """
      graph = BELGraph()
      graph.graph = data.get('graph', {})
      graph.graph[GRAPH_ANNOTATION_LIST] = {
          keyword: set(values)
          for keyword, values in graph.graph.get(GRAPH_ANNOTATION_LIST, {}).items()
      }
  
      mapping = []
  
      for node_data in data['nodes']:
          _dsl = parse_result_to_dsl(node_data)
          node = graph.add_node_from_data(_dsl)
          mapping.append(node)
  
      for data in data['links']:
          u = mapping[data['source']]
          v = mapping[data['target']]
  
          edge_data = {
              k: v
              for k, v in data.items()
              if k not in {'source', 'target', 'key'}
          }
          graph.add_edge(u, v, key=data['key'], **edge_data)
  
      return graph