<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_reference(name, element_type, version):
 """ Look for an element of the given type, name and version and return its reference structure :type element_type: ``str`` :param element_type: the element type to look for (e.g. 'Segment') :type name: ``str`` :param name: the element name to look for (e.g. 'MSH') :type version: ``str`` :param version: the version of the library where to search the element (e.g. '2.6') :rtype: ``dict`` :return: a dictionary describing the element structure :raise: ``KeyError`` if the element has not been found The returned dictionary will contain the following keys: |Key |Value | +==============+============================================+ |cls |an :class:`hl7apy.core.Element` subclass | |name |the Element name (e.g. PID) | |ref |a tuple of one of the following format: | | | | | |('leaf', <datatype>, <longName>, <table>) | Traceback (most recent call last):
 ChildNotFound: No child named UNKNOWN sequence sequence """

    lib = load_library(version)
    ref = lib.get(name, element_type)
    return ref