def find_relationship(schema, etype, rtype, role='subject'):
    """Return (`rtype`, `role`) if `etype` has a relationship `rtype` else
    raise a ValueError.
    """
    eschema = schema[etype]
    for relinfo in eschema.relation_definitions():
        rschema, __, current_role = relinfo
        if rschema.final or rschema.meta:
            continue
        if rschema.type == rtype and current_role == role:
            return relinfo
    raise ValueError('-'.join([rtype, role]))
