Context-aware applications adapt their behaviours according to changes in contexts of use. For example, a smart home application that is capable of detecting an occupant has fallen over unconscious and contacting her nearest relatives/ ambulance automatically on her behalf, requires wide-spread use of context information and reasoning of situations under the pervasive computing environment. Unfortunately, research and experiences have shown that such applications do not always behave the way as users expect due to a variety of reasons (e.g., imperfect sensing of context information and variability/unpredictability in human preferences, etc.). Applications that exhibit unwanted behaviour will negatively impact their usability and violate the trust users have in them. Hence, context-aware applications should (1) be intelligible (e.g., able to explain to users what it is doing and why it decided to behave in a certain way, etc.), and (2) allow users to exploit the revealed information and apply appropriate feedback to control the application behaviours according to their individual preferences to achieve a more desirable outcome. Without appropriate mechanisms for explanations and control of the inappropriate adaptations, user can become increasingly dissatisfied and abandon the useful pervasive computing application eventually.
However, providing intelligibility and user control in pervasive applications have proven to be non-trivial; it involves (1) identifying and exposing internal working components that influence decisions of application adaptations, (2) rendering them understandable to non-technical users with appropriate explanations, and (3) enabling user modifications to those components to correct any unexpected application behaviours. This thesis explores the issues and challenges associated with the development of intelligible context-aware applications that address the aforementioned problems, with particular focus on developmental frameworks/infrastructures which are capable of revealing and generating explanations regarding decision processes of application adaptations, and allowing personalisation of application behaviours based on various levels of expertise that users have in technology.
The key contribution of the research presented in this thesis is a conceptual framework that supports intelligibility in context-aware applications. The core of the framework consists of, firstly (1), a non-monotonic rule based approach for modelling context-dependant user preferences, which serves as the basis of decision-making of application adaptations. It enables users to specify explicitly the linkages between particular contextual situations and various adaptive actions of the application. Secondly (2), algorithms for generating a wide range of high level explanations from reasoning and evaluations of middleware models (i.e., preference models, situation abstractions and context models). This allows users to understand decision processes of how a particular adaptation is derived based on reasoning outcomes of these models. Subsequently, users can exploit the intelligible explanations to control the context-aware behaviours of an application. (3) The framework offers a model of user control designed to be adopted by a user feedback system, that accounts for users' expertise in technology to modify application behaviours at run-time, and finally (4) a corresponding software infrastructure that provides engineering support to developers for automating the design process of applications, and allows experienced users to personalise application context models.