docs: def build_upstream_edge_predicate(nodes: Iterable[BaseEntity]) -> EdgePredicate:
      """Build an edge predicate that pass for relations for which one of the given nodes is the object."""
      nodes = set(nodes)
  
      def upstream_filter(graph: BELGraph, u: BaseEntity, v: BaseEntity, k: str) -> bool:
          """Pass for relations for which one of the given nodes is the object."""
          return v in nodes and graph[u][v][k][RELATION] in CAUSAL_RELATIONS
  
      return upstream_filter