'Get the details for the specified Frame using the frame\'s name.
Usage examples:
>>> from nltk.corpus import framenet as fn
>>> f = fn.frame_by_name(\'Medical_specialties\')
>>> f.ID
256
>>> f.name
\'Medical_specialties\'
>>> f.definition
"This frame includes words that name ..."
:param fn_fname: The name of the frame
:type fn_fname: str
:param ignorekeys: The keys to ignore. These keys will not be
included in the output. (optional)
:type ignorekeys: list(str)
:return: Information about a frame
:rtype: dict
Also see the ``frame()`` function for details about what is
contained in the dict that is returned.'

def frame_by_name(self, fn_fname, ignorekeys=[], check_cache=True):

    if (check_cache and (fn_fname in self._cached_frames)):
        return self._frame_idx[self._cached_frames[fn_fname]]
    elif (not self._frame_idx):
        self._buildframeindex()
    locpath = os.path.join(u'{0}'.format(self._root), self._frame_dir, (fn_fname + u'.xml'))
    try:
        elt = XMLCorpusView(locpath, u'frame')[0]
    except IOError:
        raise FramenetError(u'Unknown    frame:    {0}'.format(fn_fname))
    fentry = self._handle_frame_elt(elt, ignorekeys)
    assert fentry
    fentry.URL = (((((self._fnweb_url + u'/') + self._frame_dir) + u'/') + fn_fname) + u'.xml')
    for st in fentry.semTypes:
        if (st.rootType.name == u'Lexical_type'):
            for lu in fentry.lexUnit.values():
                if (not any(((x is st) for x in lu.semTypes))):
                    lu.semTypes.append(st)
    self._frame_idx[fentry.ID] = fentry
    self._cached_frames[fentry.name] = fentry.ID
    u'\n                                #    now    set    up    callables    to    resolve    the    LU    pointers    lazily.\n                                #    (could    also    do    this    here--caching    avoids    infinite    recursion.)\n                                for    luName,luinfo    in    fentry.lexUnit.items():\n                                                fentry.lexUnit[luName]    =    (lambda    luID:    Future(lambda:    self.lu(luID)))(luinfo.ID)\n                                '
    return fentry
