def scheme_chunker(text, getreffs):
level = len(text.citation)<EOL>types = [citation.name for citation in text.citation]<EOL>if types == ["<STR_LIT>", "<STR_LIT>", "<STR_LIT>"]:<EOL><INDENT>level = <NUM_LIT:2><EOL><DEDENT>elif types == ["<STR_LIT>", "<STR_LIT>"]:<EOL><INDENT>return line_chunker(text, getreffs)<EOL><DEDENT>return [tuple([reff.split("<STR_LIT::>")[-<NUM_LIT:1>]]*<NUM_LIT:2>) for reff in getreffs(level=level)]<EOL>
This is the scheme chunker which will resolve the reference giving a callback (getreffs) and a text object with its metadata

    :param text: Text Object representing either an edition or a translation
    :type text: MyCapytains.resources.inventory.Text
    :param getreffs: callback function which retrieves a list of references
    :type getreffs: function

    :return: List of urn references with their human readable version
    :rtype: [(str, str)]