How to query the future was the topic of “How to Query the Future: A Moment in the Life of a Continuous Query Processor,” a blog post written on March 31, 2015 by Mark Palmer, Senior Vice President of Integration and Event Processing, at TIBCO Software, Inc., a global infrastructure and business intelligence (BI) software provider. It seems that the desire to move from reactive computing to proactive computing requires one to look at future events.
Proactive computing requires reaction to future events, thus requiring the ability to know and reason about future events. Knowledge about the future is a result of prediction but, contrary to common belief, prediction is not necessarily speculative. There are cases in which an event in the past has a direct and deterministic causality to an event in the future. For example, the depositing of a check in an ATM will lead to a deposit amount showing up in the bank account, an election of a president will lead to a swearing-in event, and traffic congestion will lead me to be late for a meeting.
In some cases, the causality relationship is indeed speculative. If a battery is weak, it will eventually stop but the timing of when is not deterministic. There is first an indication of malfunction of a certain piece of equipment. This will lead to the piece of equipment getting out of order, with some probability and within a certain amount of time. Thus, the speculation here is twofold: whether or not the predicted event will happen and, if it happens, when it is going to happen.
The ability to process future events also gives one the ability to react to future events. Such a reaction can be a plan to react to an event when it happens (such as an act of war). It can also be a preventive action in order to eliminate an event from happening (such as maintenance and repair operations that will eliminate a possible equipment malfunction).
There are some technical and semantic issues related to processing future events such as the opening of future time windows. Here we actually may need to open a window backwards, ending with the predicted time of the future event and going until now. Another issue is the co-existence of several alternatives of the future in parallel which might have “possible world” semantics. Currently there are several attempts to deal with it but it requires a systematic approach and natural support in models and tools.