def oa_to_standoff(annotations, target_key='target'):
"""Convert OA annotations to Standoff objects."""
standoffs = []
for annotation in annotations:
target = annotation[target_key]
# assume target is current doc, ignore all but fragment.
fragment = urlparse.urldefrag(target)[1]
try:
start_end = fragment.split('=', 1)[1]
start, end = start_end.split(',')
except IndexError:
warn('failed to parse target %s' % target)
start, end = 0, 1
for type_, norm in _parse_body(annotation):
standoffs.append(Standoff(int(start), int(end), type_, norm))
return standoffs
评论列表
文章目录