The development of Internet of Things systems implies an increasing number of devices that interact with each user, every day and in every place. A growing need of programming, personalizing, and customizing the joint behavior of such devices by non-programmers is currently handled by rule-based programming platforms, such as IFTTT (if-this-then-that). Recent studies show that such platforms force the user to work at a "low-level" (i.e., at the device level), while end-users would prefer to work at a slightly more abstract level, where rules are more general and understandable.
The goal of this thesis is to define, design, and validate a methodology for automatically mapping low-level rules (e.g., extracted from IFTTT) onto a more abstract representation. The translation process should be fully automatic, relying on suitable knowledge bases.
The validation should explore the following research questions: how many existing low-level rules may be successfully and meaningfully replaced or improved by their abstract translation? what are the grouping, clustering, association rules that determine the similarity of low-level rules? what is the user perception of the translated abstract rules, when compared with the corresponding low-level ones? in case of translation mismatches, which ones could be considered as abstraction errors, and which ones improvements over the initial rule? all the low-level rules can or should be abstracted?
The thesis proceeded in the following, partially overlapping, phases:
- Analysis of significant data-set of low-level rules, extracted by cloud platforms such as IFTTT
- Review of the literature about (low-level) rule representation and translation
- Development of suitable knowledge bases (e.g., device-to-service mappings)
- Design of a translation algorithm from low-level to high-level rules
- Implementation of a prototype of the algorithm and experiments on the available data-sets
- Design of a user study for evaluating the understanding and acceptance of high-level rules by end-users
- Delivery of the user study to a sample of representative users, and analysis of the outcomes of the user studies