+ def get_sem_coords(self, sem):
+ area = sem.find("div[@type='rect']")
+ if area is None:
+ area = sem.find("div[@type='whole']")
+ return [[0, 0], [-1, -1]]
+
+ def has_all_props(node, props):
+ return reduce(and_, map(lambda prop: prop in node.attrib, props))
+
+ if not has_all_props(area, ['x1', 'x2', 'y1', 'y2']):
+ return None
+
+ def n(prop): return int(area.get(prop))
+ return [[n('x1'), n('y1')], [n('x2'), n('y2')]]
+