Complex Event Recognition with Symbolic Register Transducers: Extended Technical Report
<|reference_start|>Complex Event Recognition with Symbolic Register Transducers: Extended Technical Report: We present a system for Complex Event Recognition (CER) based on automata. While multiple such systems have been described in the literature, they typically suffer from a lack of clear and denotational semantics, a limitation which often leads to confusion with respect to their expressive power. In order to address this issue, our system is based on an automaton model which is a combination of symbolic and register automata. We extend previous work on these types of automata, in order to construct a formalism with clear semantics and a corresponding automaton model whose properties can be formally investigated. We call such automata Symbolic Register Transducers (SRT). We show that SRT are closed under various operators, but are not in general closed under complement and they are not determinizable. However, they are closed under these operations when a window operator, quintessential in Complex Event Recognition, is used. We show how SRT can be used in CER in order to detect patterns upon streams of events, using our framework that provides declarative and compositional semantics, and that allows for a systematic treatment of such automata. For SRT to work in pattern detection, we allow them to mark events from the input stream as belonging to a complex event or not, hence the name "transducers". We also present an implementation of SRT which can perform CER. We compare our SRT-based CER engine against other state-of-the-art CER systems and show that it is both more expressive and more efficient.<|reference_end|>
@article{alevizos2024complex,
    title={Complex Event Recognition with Symbolic Register Transducers: Extended
  Technical Report},
    author={Elias Alevizos, Alexander Artikis, Georgios Paliouras},
    journal={arXiv preprint arXiv:2407.02884},
    year={2024},
    archivePrefix={arXiv},
    eprint={2407.02884},
    primaryClass={cs.FL cs.AI cs.DB}
}