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