these conditions are the person’s geographical location, environmental conditions of
the person’s physical environment, such as temperature, humidity, light, etc., or the
person’s vital signs, like heart beat and blood pressure. Together, these context
conditions form the person’s context.
In order to develop context-aware mobile applications we need to identify the
context conditions that are relevant for the application or family of applications that
we want to develop. In order to achieve this we define a context model, which
represents the relevant context conditions of entities in the application’s universe of
discourse [8]. Particularly, we define a context model as a conceptual model of
context. Conceptual models are, in the sense of [9,10], abstract representations of a
“given subject domain, independent of specific design and technological choices”.
Therefore, when we define a conceptual model of context, we abstract from any
design and technological detail, such as the way context is sensed, provided, learned,
produced, and/or used.
Context models provide us with a conceptual foundation for the development
process of context-aware mobile applications. Particularly, context models allow us to
provide interoperability among components of the A-MUSE infrastructure depicted in
Fig. 1. In this infrastructure, each component realizes specific parts of the application
logic and, in order to support the goals of the application, it has to interoperate with
other components. Since our context model should represent all the concepts (entities
and context) used in the application, components that realize application parts use
concepts that should be represented in this model, and, therefore, are known and
understandable for other components. In other words, a context model is fundamental
since it provides the common vocabulary to “make our components understand the
same language”. We propose context models that are based on [8], which provides
foundational ontologies to support conceptual modelling and situation reasoning. Fig.
2 shows an example of context model.
Fig. 2 represents the
Entity and Context classes, which are foundational concepts in
our context models. Any entity may be related to several different contexts and a
specific context may be referred to one or more entities. In Fig. 2,
SpatialEntity
represents tangible objects, such as a person or a device and IntangibleEntity represents
intangible objects, such as an application or a network.
IntrinsicContext represents a
context type that belongs to the essential nature of a single entity and does not depend
on the relationship with other entities. An example of intrinsic context is the location
of a person or a device. In contrast,
RelationalContext represents a context type that
depends on the relation between distinct entities, such as the
BuddyList in Fig. 2 that
belongs to a
User entity and contains several Buddy entities. The User and Buddy
classes, which represent person types or roles in the Live Contacts application, are
overlapping since we assume that a user has several buddies and at the same time this
user is a buddy of other users. Therefore, a user is also a buddy and vice-versa.
Moreover, Fig. 2 depicts the
ContextSituation class, which consists of contexts and
entities. We consider context situations since they enable the representation of
particular state-of-affairs of the applications’ universe of discourse. Example of
context situations are
Proximity and ChangeMSNStatus, which describe, respectively,
when a certain buddy of a user is nearby this user, and when a certain buddy changes
his/her status on Messenger. Fig. 2 shows the specification of these context situations.
For the
ChangeMSNStatus context situation, we assume that a user, whose status is
online, is interested to know when a buddy changes his/her status from busy to online.
31