In 1986 Kowalski and Sergot proposed a logic-based formalism named Event Calculus (EC), for specifying in a declarative manner how the happening of events affects some representation (the
) of the world. Since its introduction, EC has been recognized for being an excellent framework to reason about time and events. Recently, with the advent of complex software systems decomposed into sets of autonomous, heterogeneous distributed entities, EC has drawn attention as a viable solution for monitoring them, where monitoring means to represent their state and how events dynamically affect such state.
In this work we present the fundamentals of a reactive and logic-based version of EC, named REC, for monitoring declarative properties, while maintaining a solid formal background. We present some results about its formal as well as practical aspects, and discuss how REC has been applied to a variety of application domains, namely BPM, SOC, CGs and MAS. We also highlight some key issues required by the monitoring task, and finally discuss how REC overcomes such issues.