Self-management, pro-activeness, dynamism and goal-driven are some of the most challenging requirements that have to be faced when developing systems for Ambient Intelligence. Indeed, devising a strategy to address these issues has been one of the main concerns for researchers in the field for the last decades. The majority of the proposed solutions simply address isolated aspects of the overall problem. Agent-based approaches are proposed as a mean to deal with specific and repetitive tasks, most of them targeted to the disabled people (Moraitis & Spanoudakis, 2007). Agent-based solutions have also been used to model the environment as a group of distributed services, provided by heterogeneous devices, as in Cabri, Ferrari, Leonardi, and Zambonelli (2005). Planning approaches have been proposed as a mean to enact goal-oriented behaviors (Amigoni, Gatti, Pinciroli, & Roveri, 2005) while addressing device heterogeneity. Solutions based on supporting dynamic service composition have also been widely considered and implemented by means of different technologies, as described in Urbieta, Barrutieta, Parra, and Uribarren (2008). Nevertheless, adopting any of these approaches in an isolated manner is far from being the solution to address the ambiguity, uncertainty and incompleteness that characterize context information.
Systems for Ambient Intelligence have to deal with the service dynamism derived from the device mobility that characterizes such context. This feature makes unfeasible to count on pre-coded responses to ambient events since the available services cannot be known beforehand. Even when knowing a static set of services always available, the system response capabilities should not be constrained to these available services. On the contrary, responses should be automatically composed out of the available services, and based on a general description of what is required.
Automatic service composition has already been addressed from the web services perspective, as described in Medjahed and Bouguettaya (2005) or Maamar, Mostefaoui, and Yahyaoui (2005). However, although labeled as service composition, it is more appropriate to refer to this approach as service combination. It is important to remark the difference between service composition and combination. When composing services, it does not suffice with connecting a service output with a service input, as it is described in a static recipe. This task falls into what we consider service combination. Meanwhile, service composition requires the understanding of what services are capable of, and when required, the assignment of the service to a different purpose than originally intended. Nevertheless, supporting automatic service composition involves a deep understanding of the service semantics and the domain knowledge.
Domain models are intended to fill the gap between the perceived information and the meaning it has. Among the many different context modeling techniques (Strang & Linnhoff-Popien, 2004) ontologies stand out to be the more compelling approach to address domain models for Ambient Intelligence (Wang, Zhang, Gu, & Pung, 2004). The importance of providing an ontology for Ambient Intelligence is twofold. On the one hand, it unifies the vocabulary used to describe the domain knowledge. Moreover, interoperability among the different architectural elements of an Ambient Intelligence system draws on this unified vocabulary. On the other hand, providing an ontology about the domain knowledge makes it possible the generation of large bodies of knowledge logically related (Taylor, Matuszek, Klimt, & Witbrock, 2007; Mascardi, Locoro, & Rosso, 2010).
The work presented here provides a context ontology for supporting, not just the domain modeling but the reasoning and service composition tasks. Opting for a context reasoning technique over others is not easy, due to the wide range of available approaches (Bikakis, Patkos, Antoniou, & Plexousakis, 2007). The strengths and weaknesses of the different approaches depend on the target context and the technique used for context modeling. The proposal presented here, entrusts the context reasoning and inference tasks to a rule-based engine, mainly due to the proved performance of widely known engine rules, as well as for being compliant with ontology languages.