scispace - formally typeset
Search or ask a question
Journal ArticleDOI

Understanding and Using Context

02 Jan 2001-Vol. 5, Iss: 1, pp 4-7
TL;DR: An operational definition of context is provided and the different ways in which context can be used by context-aware applications are discussed, including the features and abstractions in the toolkit that make the task of building applications easier.
Abstract: Context is a poorly used source of information in our computing environments. As a result, we have an impoverished understanding of what context is and how it can be used. In this paper, we provide an operational definition of context and discuss the different ways in which context can be used by context-aware applications. We also present the Context Toolkit, an architecture that supports the building of these context-aware applications. We discuss the features and abstractions in the toolkit that make the task of building applications easier. Finally, we introduce a new abstraction, a situation which we believe will provide additional support to application designers.

Summary (2 min read)

1. Introduction

  • Humans are quite successful at conveying ideas to each other and reacting appropriately.
  • This is due to many factors: the richness of the language they share, the common understanding of how the world works, and an implicit understanding of everyday situations.
  • Unfortunately, this abili ty to convey ideas does not transfer well to humans interacting with computers.
  • Finally, architectural support wil l enable designers to build their applications more easily.
  • The authors wil l review previous attempts to define and provide a characterization of context and context-aware computing, and then present their own definition and characterization.

2. What is Context

  • To develop a specific definition that can be used prescriptively in the contextaware computing field, the authors wil l look at how researchers have attempted to define context in their own work.
  • While most people tacitly understand what context is, they find it hard to elucidate.

2.1 Previous Definitions of Context

  • In the work that first introduces the term ‘context-aware,’ Schili t and Theimer [7] refer to context as location, identities of nearby people and objects, and changes to those objects.
  • These types of definitions that define context by example are diff icult to apply.
  • The definitions by Schil it et al. [6] and Pascoe [3] are closest in spirit to the operational definition the authors desire.
  • The authors cannot enumerate which aspects of all situations are important, as this will change from situation to situation.
  • For this reason, the authors could not use these definitions provided.

2.2 Our Definition of Context

  • An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves.
  • This definition makes it easier for an application developer to enumerate the context for a given application scenario.
  • The obvious entities in this example are the user, the application and the tour sites.
  • The weather does not affect the application because it is being used indoors.
  • Therefore, the presence of other people is context because it can be used to characterize the user’s situation.

3. Defining Context-Aware Computing

  • Context-aware computing was first discussed by Schil it and Theimer [7] in 1994 to be software that “adapts according to its location of use, the collection of nearby people and objects, as well as changes to those objects over time.”.
  • Since then, there have been numerous attempts to define context-aware computing, most of which have been too specific [2].

3.2 Features for Context-Aware Applications

  • Similar to the problem of defining context-aware, researchers have also tried to specify the important features of a context-aware application [3,6].
  • Again, these features have tended to be too specific to particular applications.
  • The proposed categorization combines the ideas from previous taxonomies and attempts to generalize them to satisfy all existing context-aware applications.

4. Support for Building Applications

  • With an understanding of what context is and the different ways in which it can be used, application builders can more easily determine what behaviors or features they want their applications to support and what context is required to achieve these behaviors.
  • Application builders may need help moving from the design to an actual implementation.
  • The first is a combination of architectural services or features that designers can use to build their applications from.
  • The second form is abstractions that allow designers to think about their applications from a higher level.
  • The authors have built an architecture, the Context Toolkit, that contains a combination of features and abstractions to support context-aware application builders.

4.1 Features for Context-Aware Applications

  • The Context Toolkit makes it easy to add the use of context to existing noncontext-aware applications and to evolve existing context-aware applications.
  • In contrast, their context-aware applications do not instantiate individual context widgets, but must be able to access existing ones, when they require.
  • The sensors must be physically distributed and cannot all be directly connected to a single machine.
  • The Context Toolkit makes the distribution of the context architecture transparent to context-aware applications, mediating all communications between applications and components.
  • This abstraction, a context aggregator, is responsible for all the context for a single entity.

Did you find this useful? Give us your feedback

Content maybe subject to copyright    Report

Understanding and Using Context
A
NIND
K. D
EY
Future Computing Environments Group
College of Computing & GVU Center
Georgia Institute of Technology
Atlanta, GA, 30332-0280, USA
Tel: +1-404-894-5103
Fax: +1-404-894-2970
E-mail: anind@cc.gatech.edu
Abstract
Context is a poorly used source of information in our computing environments. As a result, we
have an impoverished understanding of what context is and how it can be used. In this paper, we
provide an operational definition of context and discuss the different ways that context can be used
by context-aware applications. We also present the Context Toolkit, an architecture that supports
the building of these context-aware applications. We discuss the features and abstractions in the
toolkit that make the task of building applications easier. Finally, we introduce a new abstraction, a
situation, which we believe will provide additional support to application designers.

1. Introduction
Humans are quite successful at conveying ideas to each other and reacting
appropriately. This is due to many factors: the richness of the language they share,
the common understanding of how the world works, and an implicit
understanding of everyday situations. When humans talk with humans, they are
able to use implicit situational information, or context, to increase the
conversational bandwidth. Unfortunately, this ability to convey ideas does not
transfer well to humans interacting with computers. In traditional interactive
computing, users have an impoverished mechanism for providing input to
computers. Consequently, computers are not currently enabled to take full
advantage of the context of the human-computer dialogue. By improving the
computers access to context, we increase the richness of communication in
human-computer interaction and make it possible to produce more useful
computational services.
In order to use context effectively, we must understand what context is and how it
can be used, and we must have architectural support. An understanding of context
will enable application designers to choose what context to use in their
applications. An understanding of how context can be used will help application
designers determine what context-aware behaviors to support in their applications.
Finally, architectural support will enable designers to build their applications
more easily. This architectural support has two parts: services and abstractions.
In this paper, we will review previous attempts to define and provide a
characterization of context and context-aware computing, and then present our
own definition and characterization. We then discuss how this increased
understanding informs the development of a shared infrastructure, the Context
Toolkit
1
, for context-sensing and context-aware application development. We
discuss both the services offered by the toolkit and the programming abstractions
it provides to designers.
1
The Context Toolkit can be downloaded at http://www.cc.gatech.edu/fce/contexttoolkit

2. What is Context
To develop a specific definition that can be used prescriptively in the context-
aware computing field, we will look at how researchers have attempted to define
context in their own work. While most people tacitly understand what context is,
they find it hard to elucidate. Previous definitions of context are done by
enumeration of examples or by choosing synonyms for context.
2.1 Previous Definitions of Context
In the work that first introduces the term context-aware,Schilit and Theimer [7]
refer to context as location, identities of nearby people and objects, and changes to
those objects. These types of definitions that define context by example are
difficult to apply. When we want to determine whether a type of information not
listed in the definition is context or not, it is not clear how we can use the
definition to solve the dilemma.
Other definitions have simply provided synonyms for context; for example,
referring to context as the environment or situation [1,4,8]. As with the definitions
by example, definitions that simply use synonyms for context are extremely
difficult to apply in practice. The definitions by Schilit et al. [6] and Pascoe [3]
are closest in spirit to the operational definition we desire. Schilit et al. claim that
the important aspects of context are: where you are, who you are with, and what
resources are nearby. Pascoe defines context to be the subset of physical and
conceptual states of interest to a particular entity. These definitions are too
specific. Context is all about the whole situation relevant to an application and its
set of users. We cannot enumerate which aspects of all situations are important, as
this will change from situation to situation. For this reason, we could not use these
definitions provided.
2.2 Our Definition of Context
Context is any information that can be used to characterize the
situation of an entity. An entity is a person, place, or object that is
considered relevant to the interaction between a user and an
application, including the user and applications themselves.

This definition makes it easier for an application developer to enumerate the
context for a given application scenario. If a piece of information can be used to
characterize the situation of a participant in an interaction, then that information is
context. Take the canonical context-aware application, an indoor mobile tour
guide, as an example. The obvious entities in this example are the user, the
application and the tour sites. We will look at two pieces of information weather
and the presence of other people and use the definition to determine whether
either one is context. The weather does not affect the application because it is
being used indoors. Therefore, it is not context. The presence of other people,
however, can be used to characterize the user’s situation. If a user is traveling with
other people, then the sites they visit may be of particular interest to her.
Therefore, the presence of other people is context because it can be used to
characterize the user’s situation.
3. Defining Context-Aware Computing
Context-aware computing was first discussed by Schilit and Theimer [7] in 1994
to be software that “adapts according to its location of use, the collection of
nearby people and objects, as well as changes to those objects over time.Since
then, there have been numerous attempts to define context-aware computing, most
of which have been too specific [2].
3.1 Our Definition of Context
A system is context-aware if it uses context to provide relevant
information and/or services to the user, where relevancy depends on
the users task.
We have chosen a general definition of context-aware computing. When we try to
apply previous definitions to established context-aware applications, we find that
they do not fit.
3.2 Features for Context-Aware Applications
Similar to the problem of defining context-aware, researchers have also tried to
specify the important features of a context-aware application [3,6]. Again, these
features have tended to be too specific to particular applications.

Our proposed categorization combines the ideas from previous taxonomies and
attempts to generalize them to satisfy all existing context-aware applications.
There are three categories of features that a context-aware application can support:
presentation of information and services to a user;
automatic execution of a service for a user; and
tagging of context to information to support later retrieval
4. Support for Building Applications
With an understanding of what context is and the different ways in which it can be
used, application builders can more easily determine what behaviors or features
they want their applications to support and what context is required to achieve
these behaviors. However, something is still missing. Application builders may
need help moving from the design to an actual implementation. This help can
come in two forms. The first is a combination of architectural services or features
that designers can use to build their applications from. The second form is
abstractions that allow designers to think about their applications from a higher
level. We have built an architecture, the Context Toolkit, that contains a
combination of features and abstractions to support context-aware application
builders. In this section, we will discuss the features and abstractions in the
Context Toolkit, and propose a new abstraction.
4.1 Features for Context-Aware Applications
The Context Toolkit makes it easy to add the use of context to existing non-
context-aware applications and to evolve existing context-aware applications. In
addition, the architecture makes context-aware applications resistant to changes in
the context-sensing layer. It encapsulates changes and the impact of changes, so
applications do not need to be modified.
Our architecture is built on the concept of enabling applications to obtain the
context they require without them having to worry about how the context was
sensed. In previous work, we presented the context widget [5], an abstraction that
implements this concept. A context widget is responsible for acquiring a certain
type of context information and it makes that information available to applications
in a generic manner, regardless of how it is actually sensed. Applications can

Citations
More filters
07 Sep 2004
TL;DR: This paper provides a survey of the the most relevant current approaches to modeling context for ubiquitous computing, reviewed, classified relative to their core elements and evaluated with respect to their appropriateness.
Abstract: Context-awareness is one of the drivers of the ubiquitous computing paradigm, whereas a well designed model is a key accessor to the context in any context-aware system This paper provides a survey of the the most relevant current approaches to modeling context for ubiquitous computing Numerous approaches are reviewed, classified relative to their core elements and evaluated with respect to their appropriateness for ubiquitous computing

1,310 citations


Cites background from "Understanding and Using Context"

  • ...In the literature several definitions of the term context can be found [36, 35, 32, 37, 10, 16 , 41]....

    [...]

Journal ArticleDOI
TL;DR: The requirements that context modelling and reasoning techniques should meet are discussed, including the modelling of a variety ofcontext information types and their relationships, of situations as abstractions of context information facts, of histories of contextInformation, and of uncertainty of context Information.

1,201 citations


Cites background or methods from "Understanding and Using Context"

  • ...In context-aware computing, most approaches for manual situation specification refer to Dey’s context definition [15] as ‘‘any information that can be used to characterise the situation of an entity’’....

    [...]

  • ...Situational context [45] and situation [15,46] are the most common ones....

    [...]

  • ...[15], space can be seen as a central aspect of context entities: ‘‘An entity is a person, place or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves’’—places are spatial entities, and interaction typically requires some vicinity....

    [...]

Journal ArticleDOI
TL;DR: This paper investigates the properties of trust, proposes objectives of IoT trust management, and provides a survey on the current literature advances towards trustworthy IoT to propose a research model for holistic trust management in IoT.

1,001 citations


Cites background from "Understanding and Using Context"

  • ...It specifies any information that can be used to characterize the background or situation of the involved entities [5]....

    [...]

  • ...Dey defined the ability of a computing system to identify and adapt to its context as context-awareness [5]....

    [...]

Journal ArticleDOI
TL;DR: The University of Florida's Mobile and Pervasive Computing Laboratory is developing programmable pervasive spaces in which a smart space exists as both a runtime environment and a software library.
Abstract: Research groups in both academia and industry have developed prototype systems to demonstrate the benefits of pervasive computing in various application domains. Unfortunately, many first-generation pervasive computing systems lack the ability to evolve as new technologies emerge or as an application domain matures. To address this limitation, the University of Florida's Mobile and Pervasive Computing Laboratory is developing programmable pervasive spaces in which a smart space exists as both a runtime environment and a software library. Service discovery and gateway protocols automatically integrate system components using generic middleware that maintains a service definition for each sensor and actuator in the space. The Gator Tech Smart House in Gainesville, Florida, is the culmination of more than five years of research in pervasive and mobile computing. The project's goal is to create assistive environments such as homes that can sense themselves and their residents and enact mappings between the physical world and remote monitoring and intervention services.

931 citations


Additional excerpts

  • ...(3,1) (4,1) (5,1) (0,1) (1,1) (2,1) (6,1) (7,1) (8,1) (9,1)...

    [...]

  • ...(3,2) (4,2) (5,2) (0,2) (1,2) (2,2) (6,2) (7,2) (8,2) (9,2)...

    [...]

Book
31 Dec 2005
TL;DR: The "Encyclopedia of Human Computer Interaction" is the most thorough and definitive source providing coverage of everything related to the field of human computer interaction (HCI).
Abstract: The "Encyclopedia of Human Computer Interaction" is the most thorough and definitive source providing coverage of everything related to the field of human computer interaction (HCI). This encyclopedia covers a wide range of HCI related topics such as concepts, design, usability, evaluation, innovations, and applications of HCI in organizations around the globe. Hundreds of contributors and advisors from around the world have conferred their expertise to this publication, making this encyclopedia a single source of authoritative and contemporary research in field of human computer interaction. The "Encyclopedia of Human Computer Interaction" also includes coverage of real life experiences and cases of HCI and the lessons learned helping readers to learn extensively about this important field of study.

795 citations

References
More filters
Proceedings ArticleDOI
27 Sep 1999
TL;DR: Some of the research challenges in understanding context and in developing context-aware applications are discussed, which are increasingly important in the fields of handheld and ubiquitous computing, where the user?s context is changing rapidly.
Abstract: When humans talk with humans, they are able to use implicit situational information, or context, to increase the conversational bandwidth. Unfortunately, this ability to convey ideas does not transfer well to humans interacting with computers. In traditional interactive computing, users have an impoverished mechanism for providing input to computers. By improving the computer’s access to context, we increase the richness of communication in human-computer interaction and make it possible to produce more useful computational services. The use of context is increasingly important in the fields of handheld and ubiquitous computing, where the user?s context is changing rapidly. In this panel, we want to discuss some of the research challenges in understanding context and in developing context-aware applications.

4,842 citations


"Understanding and Using Context" refers background in this paper

  • ...Since then, there have been numerous attempts to define context-aware computing, most of which have been too specific [ 7 ]....

    [...]

Proceedings ArticleDOI
08 Dec 1994
TL;DR: This paper describes systems that examine and react to an individual's changing context, and describes four catagories of context-aware applications: proximate selection, automatic contextual reconfiguration, contextual information and commands, and contex-triggered actions.
Abstract: This paper describes systems that examine and react to an individual's changing context. Such systems can promote and mediate people's interactions with devices, computers, and other people, and they can help navigate unfamiliar places. We believe that a limited amount of information covering a person's proximate environment is most important for this form of computing since the interesting part of the world around us is what we can see, hear, and touch. In this paper we define context-aware computing, and describe four catagories of context-aware applications: proximate selection, automatic contextual reconfiguration, contextual information and commands, and contex-triggered actions. Instances of these application types have been prototyped on the PARCTAB, a wireless, palm-sized computer.

3,802 citations


"Understanding and Using Context" refers background in this paper

  • ...In previous work, we presented the context widget [5], an abstraction that implements this concept....

    [...]

Journal ArticleDOI
TL;DR: An active map service (AMS) is described that supports context-aware computing by providing clients with information about located-objects and how those objects change over time and how that information is disseminated to its clients.
Abstract: The article describes an active map service (AMS) that supports context-aware computing by providing clients with information about located-objects and how those objects change over time. The authors focus on the communication issues of disseminating information from an active map server to its clients, and in particular, address how to deal with various overload situations that can occur. Simple unicast callbacks to interested clients work well enough if only a few located-objects are moving at any given time and only a few clients wish to know about any given move. However, if many people are moving about in the same region and many clients are interested in their motion, then the AMS may experience overload due to the quadratic nature of the communications involved. This overload affects both the server as well as any slow communications links being used. Mobile distributed computing enables users to interact with many different mobile and stationary computers over the course of the day. Navigating a mobile environment can be aided by active maps that describe the location and characteristics of objects within some region as they change over time. >

1,787 citations


"Understanding and Using Context" refers background in this paper

  • ...Other definitions have simply provided synonyms for context; for example, referring to context as the environment or situation [1,4,8]....

    [...]

Journal ArticleDOI
TL;DR: The authors present a novel sensor system, suitable for large-scale deployment in indoor environments, which allows the locations of people and equipment to be accurately determined and describes some of the context-aware applications that might make use of this fine-grained location information.
Abstract: Configuration of the computing and communications systems found at home and in the workplace is a complex task that currently requires the attention of the user. Researchers have begun to examine computers that would autonomously change their functionality based on observations of who or what was around them. By determining their context, using input from sensor systems distributed throughout the environment, computing devices could personalize themselves to their current user, adapt their behaviour according to their location, or react to their surroundings. The authors present a novel sensor system, suitable for large-scale deployment in indoor environments, which allows the locations of people and equipment to be accurately determined. We also describe some of the context-aware applications that might make use of this fine-grained location information.

1,606 citations


"Understanding and Using Context" refers background in this paper

  • ...Other definitions have simply provided synonyms for context; for example, referring to context as the environment or situation [1,4,8]....

    [...]

Proceedings ArticleDOI
01 May 1999
TL;DR: This work introduces the concept of context widgets that mediate betweent the environment and the application in the same way graphicalwidgets mediate between the user and the applications.
Abstract: Context-enabled applications are just emerging and promise richer interaction by taking environmental context into account. However, they are difficult to build due to their distributed nature and the use of unconventional sensors. The concepts of toolkits and widget libraries in graphical user interfaces has been tremendously successtil, allowing programmers to leverage off existing building blocks to build interactive systems more easily. We introduce the concept of context widgets that mediate between the environment and the application in the same way graphical widgets mediate between the user and the application. We illustrate the concept of context widgets with the beginnings of a widget library we have developed for sensing presence, identity and activity of people and things. We assess the success of our approach with two example context-enabled applications we have built and an existing application to which we have added context-sensing capabilities.

1,337 citations


"Understanding and Using Context" refers background in this paper

  • ...referring to context as the environment or situation [1,4, 8 ]....

    [...]

Frequently Asked Questions (7)
Q1. What have the authors contributed in "Understanding and using context" ?

In this paper, the authors provide an operational definition of context and discuss the different ways that context can be used by context-aware applications. The authors also present the Context Toolkit, an architecture that supports the building of these context-aware applications. The authors discuss the features and abstractions in the toolkit that make the task of building applications easier. Finally, the authors introduce a new abstraction, a situation, which they believe will provide additional support to application designers. 

The Context Toolkit makes it easy to add the use of context to existing noncontext-aware applications and to evolve existing context-aware applications. 

Their architecture is built on the concept of enabling applications to obtain the context they require without them having to worry about how the context was sensed. 

The Context Toolkit makes the distribution of the context architecture transparent to context-aware applications, mediating all communications between applications and components. 

There are three categories of features that a context-aware application can support:• presentation of information and services to a user; • automatic execution of a service for a user; and • tagging of context to information to support later retrievalWith an understanding of what context is and the different ways in which it can be used, application builders can more easily determine what behaviors or features they want their applications to support and what context is required to achieve these behaviors. 

Context-aware computing was first discussed by Schilit and Theimer [7] in 1994 to be software that “adapts according to its location of use, the collection of nearby people and objects, as well as changes to those objects over time.” 

Instead,the Context Toolkit is responsible for the translation of the description to the “wiring” of the context components and for determining when the individual elements of the situation have been collectively satisfied.