A Platform for Rule-based Personalization of Web Applications in Internet of Things Contexts of Use

The design and development of flexible software able to match the many possible user needs and provide high quality user experience is a major open issue, further complicated by the recent explosion of mobile technology and the Internet of Things (IoT), which have highly increased the variability and heterogeneity of the possible contexts of use of smart applications. In this scenario, such applications need to address extremely contextualized user needs, thus their complete behaviour cannot be hardcoded by developers at design time since it is not possible to foresee all the possible and even unpredictable situations applications would encounter during use and whether the produced results will be actually meaningful to end users.
We believe that a viable way to make context-dependent applications effectively comply with users' expectations is to provide End User Development (EUD) methods and tools to allow people who are not professional developers to autonomously customize their software applications [1], in other words, autonomously define, program, shape and personalise how the context-dependent application provided by professional developers should act in the various contexts of use that are relevant for the end users. This can be achieved by adopting a trigger-action paradigm, which directly connects the dynamic events and/or conditions occurring in the surrounding context with the expected reactions, without requiring the use of complex programming structures.
In the HIIS (Human Interfaces in Information Systems) Laboratory, we have designed and developed a methodology and a platform [2] for allowing end users to personalise Web applications so that they are able to manage context-dependent aspects in an easy manner. The method is supported by an authoring tool that allows end users to customize the original application by specifying trigger-action rules that indicate the desired specific application behaviour for the target contexts of use. Within such rules triggers are associated with dynamic changes that can occur in the targeted context of use (in terms of users, devices, things, environments, etc.), while actions are performed when a trigger is verified, and indicate changes to carry out in order to achieve the expected adaptation, i.e. new functionalities to activate or modifications in the application user interface and/or logic. The authoring environment is integrated with a context manager middleware able to detect the events generated by the various sensors and devices, but it is decoupled from the application that has to be adapted and, as such, is generic and can be applied to different domains.
The methodology can be applied with minimal effort in multiple distinct domains, e.g. home, smart retail, and ambient-assisted living (AAL). For the most part, customization for a specific application domain requires only some refinements in the context model, which determines the behaviour of the context manager middleware, and consequently the detectable triggers. We are investigating how to introduce this type of support in the AAL domain, where the emergence of tools for older adults based on the ambient intelligence paradigm is important [3]. Our idea is that caregivers and patients (having some minimal familiarity with technology) can be effectively empowered to facilitate the management of typical tasks concerning configuration of reminders, alarms, messages, medication adherence, and monitoring functionalities. Compared to current approaches which offer predefined levels of application customisation, this solution allows for adding new personalisation possibilities not foreseen at design time.
The architecture of the solution consists of various modules, as it is shown in Figure 1. The Context Manager is the module that gathers and manages contextual data. It is composed of a server and several delegates installed in various devices (e.g. a smartphone can host a software detecting the environment noise through the device microphone). The delegates collect data and pass them to the server, which stores/analyses them. Data are gathered from sensors (temperature, noise, light, doors/windows state, etc.) or external services (e.g. weather forecast). The Adaptation architectural module provides support for enabling the concerned Web applications to have adaptive behaviour, i.e. their behaviour could change according to e.g. relevant events occurring in the elderly's current context, also taking into account their specific needs, requirements, (dis)abilities, etc. The Adaptation module is also responsible for deciding the best combination of modalities to render messages to the elderly. The Behaviour Analysis module compares the actual user's behaviour in the current context (sensed in the real world) and the expected user behaviour (described in so-called task models). The Persuasion support identifies situations in which persuasive messages should be provided to users to stimulate them to change their current behaviour.
To enable the personalisation of applications, we provide the caregiver with a Web authoring environment for defining so-called "personalization rules" according to which the application used by the elderly should be adapted in various contexts of use. Such adaptation rules are provided to the Adaptation architectural module which will actually manage the adaptations in the platform. The Adaptation module subscribes to the Context Manager for being notified about the occurrence of events associated to the rules received in the current context. When a previously subscribed event and condition occur, the Context Manager notifies the Adaptation Engine, which extracts the list of actions from the concerned adaptation rules and sends them to the application for execution. The Web-based editor is responsive and enables the creation of trigger-action rules in an intuitive manner. To create new rules, it is possible to reuse as a starting point previously specified/saved rules. In the editor, the selection of the relevant concepts is performed by navigating in the hierarchy of concepts associated with each contextual dimension, which is refined by going through a number of conceptual levels until basic elements are reached. When a basic element is chosen, the tool highlights it with a different colour and shows the possible attributes, operators and relevant values to build the trigger of the concerned rule. Continuous feedback is given, by describing the current edited rule in an easy-to-understand subset of natural language. In a similar style, users can specify desired actions. When one action type is selected, the tool shows the supported corresponding application-dependent actions.
This approach enables the possibility that multiple, different, personalised versions of the original application can be created by end users, each version responding and addressing the unique, individual and often transient needs of a particular end user. By specifying their personalization rules, users should be able to get better support and more satisfaction in the use of their context-dependent IoT-based applications.

1. H. Lieberman, F. Paternò, M. Klann, V. Wulf, "End-user development: An emerging paradigm" In: Lieberman, Henry, Paternò, Fabio and Wulf, Volker (eds.). "End-user development (Human-Computer Interaction Series)", pp. 1-8, Springer, 2006.
2. Ghiani, G., Manca, M., Paternò, F., Santoro, C.: Personalization of Context-dependent Applications through Trigger-Action Rules. ACM Transactions on Computer-Human Interaction (ACM TOCHI), 2017.
3. Rashidi, P., Mihailidis, A.: A Survey on Ambient-Assisted Living Tools for Older Adults. IEEE Journal of Biomedical and Health Informatics, 17, 3 (2013), 579-590