Pervasive Computing, Ubiquitous Computing, Context, Context-aware Systems, Adaptive Systems, Ontologies, The Semantic Web, Embedded Semantics, RDFa, microformats, Model Driven Development, Ontology-driven Information Systems, Ontology-driven Development of Information Systems, End-user Situation Awareness, End-user Control, End-user Involvement, Software Self-expressiveness, Widget-based Personal Environments, Mashups, Widgets, Interoperability, Widget Orchestration, Petri nets, Multi-label Classification, Workflow Mining, User Patterns, Web of Things, Web of Data, ITEC
Adaptive Systems and Pervasive Computing change the face of computing and redefine the way people interact with the technology. Pioneers pursue a vision that technology is seamlessly situated in peoples life and adapts itself to the characteristics, requirements, and needs of the users and the environment without any distraction at the user side. Adaptive Systems research mostly focuses on individual applications that can alter their interface, behavior, presentation etc. mainly with respect to the user characteristics and needs. The pervasive computing vision considers adaptivity as a relation between the computing setting and the context rather than a one-to-one relation between user and application. Therefore, it enlarges the source of adaptation from user characteristics to a broader notion, which is context. In this respect, emerging context-aware systems try to utilize the characteristics, requirements etc. of entities relevant to the computing setting while including the user as a core entity. Context is an open concept and collected contextual information is often imperfect. Therefore, the development and management of large scale pervasive and adaptive systems and adaptation logic is complex and challenging. Several researchers tried to remedy this situation by providing middleware support, approaches, and methods for dealing with imperfectness, context modeling, management, reasoning etc. However, due to the openness of contextual information, on the one hand, it is almost impossible to enumerate every possible scenario and to define or mine adaptation rules. On the other hand, absolute machine control is not always desirable considering the intellectual characteristics of the end-users. The aforementioned criticism suggests that efficient software development approaches and means to enable end-users to reflect on their own state of affairs are required. In this thesis, we address these issues at an individual application level and at a collective level. The former deals with development and end-user interaction issues on the basis of individual applications providing adaptive experiences while the concern of the latter is on the basis of distributed applications serving end-users in concert. For each level, we provide a number of conceptual and practical contributions, mainly applied to the e-learning domain. Regarding the individual application level, we utilize an approach based on high level abstractions, particularly ontologies, aiming at facilitating the development and management of adaptive and pervasive systems. Ontologies are used for the acquisition of domain knowledge and semantics at the first stage. Afterwards, the goal is to use the resulting ontology for dynamic adaptations, end-user awareness, intelligibility, software self-expressiveness, user-control, and automated software development with a Model Driven Development perspective. Our contribution is mainly conceptual at this level. We first review the main notions and characteristics of Pervasive Computing and Adaptive Systems along end-user considerations. We criticize the pervasive computing vision with a user-centric perspective and elaborate on the practical body of existing literature, intersecting Knowledge Representation, Logic, and the Semantic Web, to arrive at a uniform development approach meeting the aforementioned concerns. Regarding the collective level, we focus on personal and pervasive environments and investigate how high level abstractions and semantics, varying from generic vocabularies and metadata approaches to ontologies, can be exploited for the creation of such environments and to enrich and augment the end-user experience. Our contribution is built on the conceptual and practical approach that we derived earlier. We envision encapsulating digital and physical entities having digital presence in the form of widgets and enabling the creation of web-based personal environments through widget-based user interface mashups. For this purpose, we first address the widgetization of existing applications, in a broader sense in terms of ubiquitous web navigation, through harvesting semantic in-content annotations from application interfaces. An ontology-driven development approach allows automated annotation and generation of user interfaces. We introduce specifications and mechanisms for annotation, extraction, and presentation of embedded data. We introduce a set of heuristics to exploit domain knowledge and ontology metadata, with ontological reasoning support, for generating user-friendly navigation experiences. Thereafter, we introduce an open and standard widget platform, an interoperability framework, and methods for manual and automated widget orchestration. We introduce public widget interfaces and employ the semantic web technologies, particularly embedded semantics and ontologies, to address data and application interoperability challenges. We build an end-user data mobility facility on top of the proposed interoperability framework for user-driven manual orchestration. We propose a method for mining user behavioral patterns from the user logs. The method is based on the adoption of workflow mining techniques, for extracting topology, and multi-label classification techniques based on a label combination approach, for learning the routing criteria. We exploit harvested patterns for demand-driven automated widget orchestration. We compare our approaches and methods with a broad interdisciplinary literature. We provide prototypes for each practical contribution and conduct end-user experiments and usability assessments to prove the computational feasibility and usability of the proposed approaches and methods.