def extract_make_instance_offsets(annotated_file):
    """Map MAKEINSTANCE entities to their respective offsets within text
    """

    _, id_to_offset = extract_labeled_entities(annotated_file)
    make_instances = get_make_instances(annotated_file)

    make_instance_offsets = {}

    for make_instance in make_instances:
        offset = id_to_offset[make_instance.attrib["eventID"]]
        make_instance_offsets[offset] = {"tense":make_instance.attrib["tense"],
                                         "aspect":make_instance.attrib["aspect"],
                                         "polarity":make_instance.attrib["polarity"],
                                         "pos":make_instance.attrib["pos"]}

    return make_instance_offsets
def extract_tlinks(annotated_timeml):
    """Return offset pairs and the relations between them.
    """


    # offset pairs to rel types
    tlinks = {}

    _, id_to_offset = extract_labeled_entities(annotated_timeml)
    make_instances = get_make_instances(annotated_timeml)

    event_instance_id_to_event_id = {make_instance.attrib["eiid"]:make_instance.attrib["eventID"] for make_instance in make_instances}

    # add in an offset for DOCTIME
    id_to_offset['t0'] = (-1,-1)

    for tlink in get_tlinks(annotated_timeml):
        attribs = tlink.attrib

        """
        print id_to_offset

        print
        print attribs["eventInstanceID"]
        print event_instance_id_to_event_id[attribs["eventInstanceID"]]
        print id_to_offset[event_instance_id_to_event_id[attribs["eventInstanceID"]]]
        print
        """

        if "eventInstanceID" not in attribs:
            continue
        event_offset = id_to_offset[event_instance_id_to_event_id[attribs["eventInstanceID"]]]
        target_offset = id_to_offset[event_instance_id_to_event_id[attribs["relatedToEventInstance"]] if "relatedToEventInstance" in attribs else attribs["relatedToTime"]]
        if (event_offset, target_offset) in tlinks:
            sys.exit("ERROR: duplicate TLINKs")

        tlinks[(event_offset, target_offset)] = attribs["relType"]

    return tlinks