CERA is an acronym for Complex Event Recognition Architecture. The role of CERA is to recognize the ways in which we interact with the world by detecting patterns of multi-modal events. CERA is quite flexible and useful in many applications, but it was designed to primarily to facilitate human computer interfaces.
Signals are the base events used in CERA. They are designed to represent a real world event or situation that has occurred. For example, a system set up to monitor people entering and leaving a room would create a Signal each time a person walked in or walked out.
Patterns are collections of Signals used to represent that a larger, complex event has taken place. For example, a GPS system may have a pattern representing the user touching the screen and then taping a location on the screen. The two Signals have no meaning individually and therefore must be grouped together as a complex event.
Recognizers are closely tied to Patterns, for each Pattern creates a Recognizer. Each Recognizer receives Signals as input, and determines the current state of the Pattern. A Recognizer is said to be complete when the proper combination of Signals have been received, or futile if it is impossible for the Recognizer to ever complete.
The Agenda acts as the central hub of the program. The Agenda receives Signals asynchronously from the environment and sends the Signals to each of the Recognizers that are currently activated. The Recognizer then handles the Signal according to its own specifications. Once a Recognizer becomes complete or futile it is removed from the Agenda.