Event-driven architectures (EDA) have been proposed as a new architectural paradigm for event-based systems to process complex event streams. However, EDA have not yet reached the maturity of well-established software architectures because methodologies, models and standards are still missing. Despite the fact that EDA-based systems are essentially built on events, there is a lack of a general event modelling approach. In this paper we put forward a semantic approach to event modelling that is expressive enough to cover a broad variety of domains. Our approach is based on semantically rich event models using ontologies that allow the representation of structural properties of event types and constraints between them. Then, we argue in favour of a declarative approach to complex event processing that draws upon well established rule languages such as JESS and integrates the structural event model. We illustrate the adequacy of our approach with relation to a prototype for an event-based road traffic management system.