Efficient Temporal Reasoning on Streams of Events with DOTR