5. A computer program product for discovering windows in temporal predicates, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to: separate, using a processor, a predicate that specifies a set of events into a temporal part and a non-temporal part, the set of events being configured for use during processing to reduce computational resource demand by forming an aggregation that is incrementally maintained as events are added to and removed from the set of events; compare, using the processor, the temporal part of the predicate against a predicate of a known window type; determine, using the processor, whether the temporal part of the predicate matches the predicate of the known window type; and replace, using the processor, (i) only the non-temporal part of the predicate by a filter, and (ii) the temporal part of the predicate by an instance of the known window type, responsive to the temporal part of the temporal predicate matching the predicate of the known window type, wherein the instance is parameterized with substitutions used to match the temporal part of the predicate to the predicate of the known window type wherein said determine step searches for a syntactic match between the temporal part of the predicate and a window size of the known window type, the predicate being expressed as a Boolean equation having a current time component, and wherein the predicate of the known window type is associated with one or more buckets that are pre-aggregated at a bucket-level upon event arrival.
5. A computer program product for discovering windows in temporal predicates, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to: separate, using a processor, a predicate that specifies a set of events into a temporal part and a non-temporal part, the set of events being configured for use during processing to reduce computational resource demand by forming an aggregation that is incrementally maintained as events are added to and removed from the set of events; compare, using the processor, the temporal part of the predicate against a predicate of a known window type; determine, using the processor, whether the temporal part of the predicate matches the predicate of the known window type; and replace, using the processor, (i) only the non-temporal part of the predicate by a filter, and (ii) the temporal part of the predicate by an instance of the known window type, responsive to the temporal part of the temporal predicate matching the predicate of the known window type, wherein the instance is parameterized with substitutions used to match the temporal part of the predicate to the predicate of the known window type wherein said determine step searches for a syntactic match between the temporal part of the predicate and a window size of the known window type, the predicate being expressed as a Boolean equation having a current time component, and wherein the predicate of the known window type is associated with one or more buckets that are pre-aggregated at a bucket-level upon event arrival. 6. The computer program product of claim 5 , wherein said separate step uses a conjunctive normal form to separate the temporal part and the non-temporal part.