<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ordered(start, edges, predicate=None, inverse=False):
 """ Depth first edges from a SciGraph response. """

        s, o = 'sub', 'obj'
        if inverse:
            s, o = o, s
        for edge in edges:
            if predicate is not None and edge['pred'] != predicate:
                print('scoop!')
                continue

            if edge[s] == start:
                yield edge
                yield from Graph.ordered(edge[o], edges, predicate=predicate)