def strip_concept(edge):
    """Strip away nesting edges with connectors such as triggers and
    subpredicates, to expose the outmost and leftmost concept that can be
    found. May be the edge itself.

    For example:

    (against/t (the/m (of/b treaty/c paris/c)))

    becomes

    (the/m (of/b treaty/c paris/c))
    """
    if edge.type()[0] == 'c':
        return edge
    elif not edge.is_atom():
        return strip_concept(edge[1])
    else:
        return None