@classmethod
def search_rec_name(cls, name, clause):
    """ Search for the name, lastname, PUID, any alternative IDs,
            and any family and / or given name from the person_names
        """
    if clause[1].startswith('!') or clause[1].startswith('not '):
        bool_op = 'AND'
    else:
        bool_op = 'OR'
    return [bool_op, ('ref',) + tuple(clause[1:]), ('alternative_ids.code',
        ) + tuple(clause[1:]), ('federation_account',) + tuple(clause[1:]),
        ('contact_mechanisms.value',) + tuple(clause[1:]), (
        'person_names.family',) + tuple(clause[1:]), ('person_names.given',
        ) + tuple(clause[1:]), ('name',) + tuple(clause[1:]), ('lastname',) +
        tuple(clause[1:])]
