RTEC: Run-Time Event Calculus
YAP Installation Instructions
In case the installation of YAP fails (we have noticed this in Ubuntu 20 LTS), please download YAP 6.3 from the "threads" branch of the repository. To do this from the command line, please type:
git clone -b threads https://github.com/vscosta/yap-6.3 yap
-b threads specifies that YAP will be downloaded from the "threads" branch.
RTEC comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; see the GNU Lesser General Public License v3 for more details.
- Sliding window reasoning.
- Interval manipulation constructs for non-inertial fluents.
- Caching for hierarchical knowledge bases.
- Support for out-of-order data streams.
- Indexing for handling efficiently irrelevant data.
To run RTEC you need the files in the /src directory.
The /examples directory is optional and includes patterns and sample datasets for experimentation.
- Artikis A., Sergot M. and Paliouras G. An Event Calculus for Event Recognition. IEEE Transactions on Knowledge and Data Engineering (TKDE), 27(4):895-908, 2015.
- Pitsikalis M., Artikis A., Dreo R., Ray C., Camossi E., and Jousselme A., Composite Event Recognition for Maritime Monitoring. In 13th International Conference on Distributed and Event-Based Systems (DEBS), pp. 163–174, 2019.
- User manual of RTEC.
RTEC has been used for:
- iRTEC: Incremental RTEC. iRTEC supports incremental reasoning, handling efficiently the delays and retractions in data streams.
- oPIEC: Online Probabilistic Interval-Based Event Calculus. oPIEC supports Event Calculus reasoning over data streams under uncertainty.
- OLED: Online Learning of Event Definitions. OLED is a supervised machine learning tool for constructing Event Calculus rules, such as complex event patterns, from annotated data streams.
- LoMRF: Library for Markov Logic Networks. LoMRF supports Event Calculus reasoning and learning under uncertainty.
- Wayeb: Wayeb is a Complex Event Processing and Forecasting (CEP/F) engine written in Scala. It is based on symbolic automata and Markov models.