'Frame annotation sets matching the specified criteria.'

def annotations(self, luNamePattern=None, exemplars=True, full_text=True):

    if exemplars:
        epart = PrettyLazyIteratorList((sent.frameAnnotation for sent in self.exemplars(luNamePattern)))
    else:
        epart = []
    if full_text:
        if (luNamePattern is not None):
            matchedLUIDs = set(self.lu_ids_and_names(luNamePattern).keys())
        ftpart = PrettyLazyIteratorList((aset for sent in self.ft_sents() for aset in sent.annotationSet[1:] if ((luNamePattern is None) or (aset.get(u'luID', u'CXN_ASET') in matchedLUIDs))))
    else:
        ftpart = []
    if exemplars:
        if full_text:
            return (epart + ftpart)
        else:
            return epart
    elif full_text:
        return ftpart
