A Declarative Framework for Reasoning on Spatio-Temporal Data