<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sorted_bfs_successors(G, source=None):
 """Return dictionary of successors in breadth-first-search from source. Parameters G : DiscourseDocumentGraph graph source : node Specify starting node for breadth-first search and return edges in the component reachable from source. Returns ------- successors: dict A dictionary with nodes as keys and list of succssors nodes as values. """

    if source is None:
        source = G.root

    successors = defaultdict(list)
    for src, target in sorted_bfs_edges(G, source):
        successors[src].append(target)
    return dict(successors)