The MOM of Context Aware Systems A Survey
The MOM of Context Aware Systems A Survey
The MOM of Context Aware Systems A Survey
survey
Preeja Pradeep; Shivsubramani Krishnamoorthy
2019
Abstract
Context-aware computing enriches the capabilities of intelligent devices complemented
with smart applications and helps establish smart ecosystems in fields such as Ambient
Intelligence, Internet of Things, Mobile Computing, and Pervasive and Ubiquitous
Computing. Though the literature has many surveys that outline existing systems, it still
remains critical to elucidate the basics of actually building an effective context-aware
ecosystem. We outline the basic components required and essential for the same. We
believe that a context-aware ecosystem becomes effective when these components are
designed and implemented effectively. We call it the MOM of context-aware systems:
generic and effective context Modeling, an efficient context Organization, and a robust
context Middleware. Context modeling affords a syntax to the raw pieces of relevant
information, the organization mechanism furnishes semantic import to the information and
relationships, and the middleware compiles and integrates the information, enabling
sharing of context. We discuss various context-aware ecosystems and middleware from the
literature and highlight how the three building components function in each case. This
paper will benefit newcomers to the field who are looking to learn about and build context-
aware ecosystems.
Scholarcy Highlights
We are quite dependent on sensors and computing devices for various tasks
The objective of this paper is to primarily address the question: what are the basic
components of a context-aware system? We feel that this paper will help newcomers
understand the context-aware systems from the development and implementation
points of view
We presented this paper as a pathway to understanding the field of context-aware
systems for a newcomer
We reviewed the literature to highlight the basic components required, MOM, to
implement a contextaware ecosystem, which was lacking in the literature
We evaluated context-aware systems and found that approaches like QoSDREAM, Gaia,
Context-Aware Reflective Middleware System for Mobile Applications (CARISMA),
Contextaware Agent Middleware, Tuples On The Air (TOTA), CAMUS, Context Broker
Architecture (CoBrA), MoCA, AmbieAgents, PACE, SOCAM, CAMPS, Socially Aware and
Mobile Architecture (SAMOA), Solar, SOCRADES, Context-Aware Middleware for
Pervasive Homecare (CAMPH), Hydra, Comihoc, Context-aware Multimedia Middleware,
SENSEI, iConAwa, KASOM, Social Context Information Management System (SCIMS),
Context-Aware Multi-Agent Middleware, Context-Aware Middleware for Pervasive and
Ubiquitous Service (CAMPUS), Context-Aware Services Framework (CASF), Rover-II,
CAMEO, CoCaMAAL, Context-aware Knowledge-based Middleware, Industry
Middleware, Semantic Web-based Context Management (SeCoMan), Context-Aware
System (CONASYS), and Cooperative Middleware address and follow the MOM approach
completely
This paper would guide a newcomer to the field of context-aware computing and help
design and implement a robust context-aware ecosystem
Scholarcy Summary
Introduction
We are quite dependent on sensors and computing devices for various tasks. Due to
advancements in sensor technology, cheap and small-size sensors and smart devices are
abundant in the market and influence many of our decisions ranging from the smallest to
quite critical ones.
They do not mention the significance of these approaches from an implementation point of
view.
Objective
The objective of this paper is to primarily address the question: what are the basic
components of a context-aware system? We feel that this paper will help newcomers
understand the context-aware systems from the development and implementation points of
view.
Revisiting the literature
As we reviewed the state of the art, we found a few proposals on the components/stages of
context-aware systems.
This paper would be a good starting point for beginners venturing into research, design and
development of context-aware ecosystems
Overview
The paper proceeds as follows: Section 2 provides concepts and terminologies associated
with this particular investigation.
This section explains the significance of each component by emphasizing their concepts and
approaches.
First we describe the requirements and techniques of context modeling along with the
reasoning techniques.
We present the middleware and their requirements along with an evaluation of middleware
solutions.
Context
The term, context has numerous definitions spanning various domains. Context has been
extensively used in linguistics to aid in the understanding of circumstances surrounding an
event.
The definitions were too specific until the most noteworthy definition from Abowd et al
[26] appeared in 1999
They claimed that ‘context’ cannot be identified using Schilit’s definition, and they stated
that ‘‘Context is any information that can be used to characterize the situation of an entity.
Brdiczka et al stated that ‘‘A situation is a temporal state describing activities and relations
of detected entities in an augmented environment [30]’’
This can be understood as a snapshot of all the possible context at a given point of time,
with respect to an entity or application.
Context is sensed through sensors or sensor networks: Today, a wide variety of sensors are
available in the market which plays a vital role in providing contextual information.
The activity of a person can be measured using accelerometer, gyroscope, and orientation
sensors in the smartphone.
The contextual information may be incorrect due to a faulty sensor or incomplete due to
lack of sufficient input from the source.
Let us consider a smart classroom scenario where a student left the classroom without
picking his RFID card with GPS sensor
In this case, an uncertainty can be happened in detecting the location of the student
Context-awareness
The term ‘context-aware’ was introduced by Schilit and Theimer in 1994. The most
accepted definition of context-aware system is ‘‘A system is context-aware, if it uses context
to provide relevant information and/or services to the user, where relevancy depends on
the user’s task [26]" by Abowd et al in the opinion of Byun and Cheverst ‘‘A system is
context-aware if it can extract, interpret and use context information and adapt its
functionality to the current context of use [58]’’.
One can follow any of the aforesaid definitions or introduce a new definition, based upon
their requirements for a context-aware system
Pascoe [59] identified sensing, adaptation, resource discovery, and augmentation as the
generic contextual capabilities to identify and describe context-awareness, irrespective of
application, function, or interface.
The user’s device senses the temperature of the room and displays on the screen.
Presentation: This deals with the decision on what information and services to be presented
to the user.
Consider a smart classroom scenario where the faculty starts from the staff room for the
lecture, the projector and the computer in the classroom should boots up automatically
based on the context.
To provide relevant context information, the data from these sensors need to fuse together.
Collecting the context and tagging the context with the sensor data is required
Levels of context-awareness
In a further attempt to provide more insights into context-awareness, we review the
literature and present the levels of interactivity for context-aware applications/systems.
Passive context-awareness: This level deals with monitoring the changes in the
environment continuously and provide suitable choices to the users so that they can take
proper actions.
Providing this paper as a reference in the context-aware system domain to novice will help
to understand the concepts as well as the components required to develop a context-aware
system.
A context Modeling, that helps effectively capture as much context of a given situation as
needed, 2.
In the rest of this section, we support our argument discussing existent approaches from the
literature to highlight the significance of the above three components
Context modeling
There would be numerous factors that influence the way the situation develops.
To recognize these factors and represent the context information produced by these factors,
a framework is required that can handle the context information efficiently.
Definition by Gasparic et al [63]: ‘‘A context model is a set of contextual factors that
characterize a situation’’
The context modeling should enable the aggregation and merging of the data whenever
needed.
6. Evolvability, extensibility, flexibility, and applicability: Support for new and varied
application domains and representation of contextual information for them are required.
The context modeling should provide flexibility and extensibility and should evolve with the
applications and their context needs
Comparability
Contextual information sources constitute a variety of sensors and smart devices which
often use different measurement and encoding systems resulting in a heterogeneous set of
values describing the same entities.
There is a necessity to provide a way to compare values with different units and encodings
Defines a context in terms of facts, axioms, expressions, and rules, which are stored in a
knowledge base repository; Uses a hierarchical data structure with markup tags, attributes
and contents; Modeling technique: XML, Composite Capabilities/Preference Profiles
(CC/PP), JSON; Represent context types using objects to employ encapsulation, inheritance,
and reusability in ubiquitous environments.
Context reasoning
Once the modeling of contextual information is performed, reasoning is required to deduce
new information from the available contextual information.
Definition by Nurmi and Floréen [79]: ‘‘Context reasoning is deducing new and relevant
information to the use of application(s) and user(s) from the various sources of context-
data".
They are highly error-prone due to the manual representation of logic and lacks validation
and quality checking of contextual information.
They are highly error-prone due to manual representation and lacks provision to handle
ambiguous and imperfect contextual information.
Supervised learning: This approach infers new context more accurately by using a
significant amount of numerical data if training data is provided
This is mainly used for applications that have a significant amount of data and possible
outcomes are known.
Context organization
A context model depends on a mechanism to store and access the contextual information it
represents.
Every single piece of contextual information may not make sense on its own
One of the most popularly adopted approaches for storing and organizing contextual
information is ontological approach [127,128].
This can be visualized as a dense graph structure, representing the pieces of information
and their relationships.
Other popular approaches adopted for context organization are object-oriented, relational
database, tuplebased, distributed hash table, and so on.
‘Explicit’ means that the type of concepts used, and the constraints on their use are
explicitly defined.
‘Formal’ refers to the fact that the ontology should be machine readable, which excludes
natural language.
‘Shared’ reflects the notion that an ontology captures consensual knowledge, that is, it is not
private to some individual, but accepted by a group [129]’’.
Definition by Noy and McGuiness: ‘‘An ontology is a formal explicit description of concepts
in a domain of discourse, properties of each concept describing various features and
attributes of the concept, and restrictions on slots [130]’’
Noy and McGuiness proposed an iterative approach for ontology development that includes
(i) Determining the domain and scope of the ontology, (ii) reusing existing ontologies, (iii)
enumerating important terms in the ontology, (iv) defining the classes and the class
hierarchy, (v) defining the properties of classes — slots, (vi) defining the facets of the slots,
and (vii) creating instances [130].
Korpipaa and Mantyjarvi identified eight principles for ontology development namely (i)
domain, (ii) simplicity, (iii) practical access, (iv) flexibility and expandability, (v) facilitate
inference, (vi) genericity, (vii) efficiency, and (vii) expressiveness [132]
(i) unique identifiers, (ii) validation, (iii) expressiveness, (iv) handling uncertainty and
incomplete information, (v) simplicity, reuse, and expandability, and (vi) generality.
Reusability: Maximizing the usage of the ontology among several independent modeling
tasks
Generality
Ontologies that are applicable across several domains are referred to as upper ontologies
and belong to the most general category of ontologies.
Upper ontologies are often coarse-grained, while application ontologies are more fine-
grained
Ontology is based on Description Logic (DL) [133] that represents the knowledge of an
application domain in a structured and formally wellunderstood way.
Semantic web ontology languages are used to provide the fundamental elements to
represent knowledge.
RDF [134]: Resource Description Framework (RDF) describes resources on the web.
RDFS [135]: Resource Description Framework Schema (RDFS) represents RDF vocabularies
on the web.
DAML-ONT [138]: DAML ontology language for semantic web; DAML-S [139]: DAML for
services (DAML-S) describes web services and their ontologies; OWL [140]: Web Ontology
Language (OWL) represents ontology in a more expressive way.
Context middleware
To simplify the development of context-aware applications, uniform abstractions and
reliable services for common operations should be provided.
Middleware acts as a vital enabler that provides high-level abstraction by hiding the
complexity produced by heterogeneous and distributed context-aware applications.
They provide an integration point for applications that can access relevant context, share
the context with other applications, and offer relevant services.
They allow support for contextual information acquisition, context reasoning as well as
learning from context and modifying its behavior based on the current context.
In a further attempt to provide more insights into middleware, we review the literature and
present the details of middleware
Definition of middleware
A context-aware middleware acts as an integration point that compiles the context for the
given situation, enabling applications, subscribed to it, to be context-aware [210].
An inference engine for semantic web An inference engine with fuzzy extension of OWL DL
An inference engine for ontological and rule-based reasoning C++-based reasoner for
expressive Description Logics Java-based OWL 2 reasoner A fuzzy description logic
reasoner Reasoner for ontologies written in OWL A RISC-style engine for RDF A reasoner
for fuzzy OWL 2 OWL reasoner and inference server for the semantic web Java-based
reasoner for OWL 2 QL A tableau algorithm based reasoner An ontology reasoner that
supports OWL EL profile Case-based reasoning engine over RDFS A lightweight fuzzy DL
reasoner Java framework for building Semantic Web and linked data applications Visual
RDF/OWL editor Multipurpose semantic web editor Visual ontology editor and knowledge-
base framework Ontology editor for the semantic web OWL Ontology browser/editor
Editor for semantic markup, ontology, and RDF Graphical ontology editor especially created
to produce heavy-weight ontologies Ontology editor for heavy-weight projects Graphical
ontology editor for OWL Integrated ontology editor and semantic web application Ontology
editor Platform to build, validate and implement ontologies Tractable description logics for
ontologies Tractable OWL 2 reasoning infrastructure Web application for ontology
visualization Visualization and editing tool for OWL and DL ontologies Java API for
measuring OWL ontologies based on Jena Detects common pitfalls in ontologies.
Requirements of middleware
The requirements for middleware in a context-aware ecosystems are [57]: Contextual
information collection from heterogeneous sensors/ services and suitable context
information delivery to different applications.
The architectural requirements are (i) programming abstraction, (ii) interoperable, (iii)
service-based, (iv) adaptive, (v) context-aware, (vi) autonomous, and (vii) distributed.
4. Context-aware: A middleware should aware of the context of users, devices, and the
environment to provide relevant services.
An extensible context ontology for persuasive physical-activity applications with upper and
domain-specific levels; Person, activity, device, service and location plays major role in
context modeling; Expressed in OWL; Rule-based reasoning; Multimedia Semantic Sensor
Network Ontology (MSSN-Onto) define complex events and model MSNs and multimedia
data; Expressed in OWL.
Different middleware solutions have been proposed for building context-aware applications
and services.
All these requirements are not essential in some cases.
To specify the existence and the absence of requirements, we use ✓ and ✕ respectively.
In this evaluation, we have included some popular middleware solutions which were not
necessarily contextaware like servilla, ubiSOAP, CHOReOS, AIoTm, FlexRFID, Eagilla, and
POSTMAN
They carried out the management of resources and services in active spaces and offered
services related to context, event, and location.
MoCA [252]: A service-based distributed middleware which employs ontology to model and
manage context
It offers help in developing and deploying context processing services and context-sensitive
applications for mobile users.
SAMOA [306]: Socially Aware and Mobile Architecture (SAMOA) personalize location-
dependent social networks and propagates visibility of social networks’ by means of
management facilities
They used ontology-based technique, OWL ontology via Jena, for context modeling and
organization and description logic for context reasoning using Pellet reasoner.
As discussed in the features above, our understanding is that even those systems that have
not explicitly incorporated each of the MOM components, have alternate approaches to
compensate for their absence
Conclusion
We presented this paper as a pathway to understanding the field of context-aware systems
for a newcomer.
We reviewed the literature to highlight the basic components required, MOM, to implement
a contextaware ecosystem, which was lacking in the literature.
The scope of this work is limited to emphasizing the basic building components for
developing a context-aware ecosystem with the support of existing work from the
literature.
This paper would guide a newcomer to the field of context-aware computing and help
design and implement a robust context-aware ecosystem
A relationship describes a predicate connecting two or more information items, which may
change at any time for any reason [32]’’. We do not attempt to refine the term context,
but extend the definition, considering the practical implementation of context-aware
applications
The three components identified by Khedr and Karmouch [1] for context-aware systems are
(i) context ontology and inference — facilitates sharing, management, and inference of a
specified context; (ii) context-level negotiation — enables personal context provisioning by
agreeing on provided levels of context; and (iii) context management — provides
storage, retrieval, querying, and modification of context information. Here, the
authors do not mention about capturing the context and providing relevant services
The proposal by Wrona and Gomez [2] presented the main phases in the lifecycle of the
context-aware system. Here, the authors do not mention about capturing the context
and providing relevant services.
Contributions
We presented this paper as a pathway to understanding the field of context-aware systems
for a newcomer. We reviewed the literature to highlight the basic components required,
MOM, to implement a contextaware ecosystem, which was lacking in the literature. To
support our argument, we provided existent approaches and techniques to describe the
significance of MOM. We evaluated context-aware systems and found that approaches like
QoSDREAM, Gaia, CARISMA, Contextaware Agent Middleware, TOTA, CAMUS, CoBrA, MoCA,
AmbieAgents, PACE, SOCAM, CAMPS, SAMOA, Solar, SOCRADES, CAMPH, Hydra, Comihoc,
Context-aware Multimedia Middleware, SENSEI, iConAwa, KASOM, SCIMS, Context-Aware
Multi-Agent Middleware, CAMPUS, CASF, Rover-II, CAMEO, CoCaMAAL, Context-aware
Knowledge-based Middleware, Industry Middleware, SeCoMan, CONASYS, and Cooperative
Middleware address and follow the MOM approach completely.The scope of this work is
limited to emphasizing the basic building components for developing a context-aware
ecosystem with the support of existing work from the literature. This paper would guide a
newcomer to the field of context-aware computing and help design and implement a robust
context-aware ecosystem.
Limitations
The scope of this work is limited to emphasizing the basic building components for
developing a context-aware ecosystem with the support of existing work from the
literature. This paper would guide a newcomer to the field of context-aware computing and
help design and implement a robust context-aware ecosystem.
Future work
Mynatt, Charting past present and future research in ubiquitous computing, ACM Trans.
Comput. -Hum. Interact. 7 (2000) 29–58, [Online], Available:
http://dx.doi.org/10.1145/344949.344988.