We present several examples illustrating how quite complex event specificationsare possible using event expressions. In addition to the basic event operators, we also provide facilities that make it easier to specify composite events. We show how to efficiently implement event expressions using finite automata. Each event causes an automaton to change state. When an automaton reaches an accepting state, a composite event of interest is recognized, and the corresponding trigger fired.
Events have attributes.
For primitive events, these could be parameters of the activity that caused the event, selected parts of the database state, or functions computed therefrom. For composite events, attributes are derived from the attributes of the constituent primitive events. These attributes can be used in checking conditions, and in any actions triggered. The composite event specified by the expression does not occur unless the specified condition on attributes is satisfied. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the VLDB copyright notice and the title of the publication and its date appear, and notice is given that copying is by the permission of the Very Large Data Base Endowment.