MATE – Model-based Automation Engine

One of the main challenges of Ambient Intelligence Systems is the automation of services in a coordinated way. This automation must satisfy users’ needs considering their behaviour patterns and the context in which they are being performed. Currently this coordination is done by means of ad hoc solutions at a low level of abstraction, which force developers to perform hard implementation and device configuration tasks.

MATE is a software infrastructure that allows the automation and evolution of context-adaptive behaviour patterns. MATE monitors the state of the system and the environment in order to decide the patterns that must be executed. In addition, the execution of these patterns is adapted to the data obtained in the process of context monitoring.

Patterns are described in a task model, in which the sequence of actions to be performed are described as well as the services and/or devices that support these actions. MATE interprets this model at runtime, without the need of generating any code from them. Thanks to that, models that are built in analysis and design phases are the only implementation of the behaviour patterns to be automated, facilitating their further maintenance and evolution.


MATE is composed of 4 main elements:

Application Programming Interfaces (APIs): Two APIs are provided in order to manage the models at runtime: (1) MUTate (Model-based User Task management mechanisms), which provides constructors to manage the task model; and (2) Ocean (Ontology-based Context model management mechanisms), which provides constructors to manage the context model. To facilitate the use of these API’s, the constructors that they provide use the same high-level concepts used for creating the models.

Context monitor: The context monitor is in charge of capturing and processing context changes and then updating the context model accordingly. When a change in context is detected, the context monitor reflects the change in the context model by using OCean. Next, the context monitor is in charge of informing the automation engine (which is introduced below) about the context that has been updated. The context model is defined as an ontology to facilitate the understanding with other systems.

Automation engine. It is in charge of executing the corresponding behaviour patterns in the appropriate context as specified in the models. When it receives the context change notification sent by the context monitor, it checks whether there is any behaviour pattern that has to be executed. To do this, it interprets the context model and the task model by using the provided MUTate and OCean APIs.

Evolution tool: A high-level tool is provided for allowing the evolution of the automated behaviour patterns after system deployment and without the need to stop or redeploy the system. Thus, this tool provides users with a set of intuitive interfaces that allow them to change the models at runtime. The tool uses MUTate and OCean to update the models at runtime.

All the elements have been implemented using Java/OSGi, and they use technologies such as EMF from the Eclipse/MDT (Modelling Development Tools), Jena 2.45, the OWL API 2.1.16, or the Pellet reasoner 1.5.2 in order to manipulate the models.



– The patterns to be automated are defined by means of model of a high level of abstraction, without the need of implementing ant line of code.

– The execution of patterns is adapted to the context at runtime in an autonomous way, without the participation of a developer.

– The patterns and the required adaptation can be evolved at runtime without stopping the system.

– The evolution is done in a controlled manner, considering the restrictions defined in meta-models. In this way, we assure that any model (and then any behaviour pattern) is left in an inconsistent state.

– User interfaces are provided in order to allow end-users to evolve behaviour patterns according to their needs.