Context is a valuable but underutilized source of information in computing environments. This paper provides an operational definition of context and discusses how it can be used by context-aware applications. It also presents the Context Toolkit, an architecture that supports the development of context-aware applications. The paper discusses the features and abstractions in the toolkit that make building applications easier. It also introduces a new abstraction, a situation, which is believed to provide additional support to application designers.
Humans are good at conveying ideas and reacting appropriately due to shared language, common understanding of the world, and implicit understanding of everyday situations. However, this ability does not transfer well to human-computer interaction. Traditional computing lacks mechanisms for providing context to computers, limiting their ability to use context effectively. By improving computers' access to context, communication in human-computer interaction can be enriched, enabling more useful computational services.
To use context effectively, we must understand what context is and how it can be used, and have architectural support. Understanding context allows application designers to choose what context to use in their applications. Understanding how context can be used helps designers determine what context-aware behaviors to support. Architectural support enables designers to build applications more easily. This support includes services and abstractions.
The paper reviews previous attempts to define and characterize context and context-aware computing, then presents its own definition and characterization. It discusses how this understanding informs the development of the Context Toolkit for context-sensing and context-aware application development. The paper discusses both the services offered by the toolkit and the programming abstractions it provides.
Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object relevant to the interaction between a user and an application. The paper introduces a new abstraction, a situation, which is a description of the states of relevant entities. This abstraction may allow users to specialize context-aware applications to meet their individual needs. The paper also discusses the features and abstractions in the Context Toolkit, including widgets, interpreters, and aggregators.Context is a valuable but underutilized source of information in computing environments. This paper provides an operational definition of context and discusses how it can be used by context-aware applications. It also presents the Context Toolkit, an architecture that supports the development of context-aware applications. The paper discusses the features and abstractions in the toolkit that make building applications easier. It also introduces a new abstraction, a situation, which is believed to provide additional support to application designers.
Humans are good at conveying ideas and reacting appropriately due to shared language, common understanding of the world, and implicit understanding of everyday situations. However, this ability does not transfer well to human-computer interaction. Traditional computing lacks mechanisms for providing context to computers, limiting their ability to use context effectively. By improving computers' access to context, communication in human-computer interaction can be enriched, enabling more useful computational services.
To use context effectively, we must understand what context is and how it can be used, and have architectural support. Understanding context allows application designers to choose what context to use in their applications. Understanding how context can be used helps designers determine what context-aware behaviors to support. Architectural support enables designers to build applications more easily. This support includes services and abstractions.
The paper reviews previous attempts to define and characterize context and context-aware computing, then presents its own definition and characterization. It discusses how this understanding informs the development of the Context Toolkit for context-sensing and context-aware application development. The paper discusses both the services offered by the toolkit and the programming abstractions it provides.
Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object relevant to the interaction between a user and an application. The paper introduces a new abstraction, a situation, which is a description of the states of relevant entities. This abstraction may allow users to specialize context-aware applications to meet their individual needs. The paper also discusses the features and abstractions in the Context Toolkit, including widgets, interpreters, and aggregators.