As we claim in this post, head-mounted displays are probably the most prominent symbol of weareable computers. In their paper, “Context-awareness in wearable and ubiquitous computing”, Abowd, Dey, et al. concluded
That future computing environments promise to break the paradigm of desktop computing. To do this, computational services need to take advantage of the changing context of the user. The context-awareness we have promoted considers physical, social, informational and even emotional information. Beginning with an applications perspective on future computing environments, we have been able to identify some of the common mechanisms and architectures that best support context-aware computing.
Taken into account the importance of context-aware computing in wearable computers we will investigate the definitions of context, context-aware computing and some others related concepts.
First of all, let’s review some examples of context-aware applications. If fact, the are a lot of examples, for instance one can think of:
- A music player that, when the enviroment’s sounds are too loud, it automatically turns the volume up to a more desirable level. Here the desirable level could be determinated based on the user’s ableness to hear at some levels.
- A text reader that takes the user proximity to the device to enlarge the text size when the user goes further from it.
- Doors that opens when a person is near them.
There are multiple definitions of context in the field of computing. As Dey and Abowd published, the ones that can best be exaplained are:
- Schilit et al. claim that the important aspects of context are: where you are, who you are with, and what resources are nearby. They define context to be the constantly changing execution environment. They include the following pieces of the environment:
- Computing environment available processors, devices accessible for user input and display, network capacity, connectivity, and costs of computing.
- User environment location, collection of nearby people, and social situation.
- Physical environment lighting and noise level.
- Dey et al. define context to be the user’s physical, social, emotional or information state.
- Pascoe defines context to be the subset of physical and conceptual states of interest to a particular entity.
Dey and Abowd, taking into account the definition listed above, defined:
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.
Their 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.
Also, they defined categories of context as location, identity, time, and activity are the primary context types for characterizing the situation of a particular entity. These context types not only answer the questions of who, what, when, and where, but also act as indices into other sources of contextual information.
Context awareness and ubiquitous (pervasive) computing
In computer science context awareness refers to the idea that computers can both sense, and react based on their environment. Also the notion of context-awarness is closely related to the vision of ubiquitous computing.
The word “ubiquitous” can be defined as “existing or being everywhere at the same time”, “constantly encountered”, and “widespread”. When applying this concept to technology, the term ubiquitous implies that technology is everywhere and we use it all the time. Because of the pervasiveness of these technologies, we tend to use them without thinking about the tool. Instead, we focus on the task at hand, making the technology effectively invisible to the user.
As Mark Weiser introduced, ubiquitous computing names the third wave in computing. First were mainframes, each shared by lots of people. Now we are in the personal
computing era, person and machine starting uneasily at each other across the desktop. Next comes ubiquitous computing, or the age of calm technology, when technology recedes into the background of our lives.
He also claim a important difference with VR:
Ubiquitous computing is roughly the opposite of virtual reality. Where virtual reality puts people inside a computer-generated world, ubiquitous computing forces the computer to live out here in the world with people. Virtual reality is primarily a horse power problem; ubiquitous computing is a very difficult integration of human factors, computer science, engineering, and social sciences.
Mark Weiser in 1991 said:
The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it.
To realize such ubiquitous computing systems with optimal usability, i.e. transparency of use, context-aware behaviour is seen as the key enabling factor. Computers already pervade our everyday life – in our phones, fridges, TVs, toasters, alarm clocks, watches, etc – but to fully disappear, as in the Weiser’s vision of ubiquitous computing, they have to anticipate the user’s needs in a particular situation and act proactively to provide appropriate assistance. This capability require means to be aware of its surroundings, i.e. context-awareness.
One of the firsts definitions of context-aware computing was the one provided by Schilit and Theimer 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”. Their definition restricted it from applications that are simply informed about context to applications that adapt themselves to context.
Further definitions that are in the more specific “adapting to context” also distinguish them taking into account the method in which applications acts upon context. Ones define that the users select how to adapt the application based on his interest or activities. However, the other ones, define that the system or application should automatically adapt it’s behaviour based on the context.
Dey and Abowd, taking into account multiple definitions of context-aware computing, defined it as: “A system is context-aware if it uses context to provide relevant in- formation and/or services to the user, where relevancy depends on the user’s task.”.
If fact, they have chosen a more general definition of context-aware computing. The main reason for it, was that with it they didn’t exlude existing context-aware applications.
Categorization of Features for Context-Aware Applications
In a further attempt to help define the field of context-aware applications, Dey and Abowd presented a categorization for features of context-aware applications. Previously there were two remarkably attempts to develop such taxonomy, the first one proposed by Schilit et al. and the other proposed by Pascoe.
The Schilit proposal had 2 orthogonal dimensions:
- Wheter the task is to get information or to execute a command
- Wheter the task is executed manually or automatically
Based on these dimensions, four instances can be defined:
- Proximate selection: Applications that retrieve information for the user manually based on available context. It is an interaction technique where a list of objects or places is presented, where items relevant to the user’s context are emphasized or made easier to choose.
- Automatic contextual reconfiguration: Applications that retrieve information for the user automatically based on available context. It is a system-level technique that creates an automatic binding to an available resource based on current context.
- Contextual command: Applications that execute commands for the user manually based on available context. They are executable services made available due to the user’s context or whose execution is modified based on the user’s context.
- Context-triggered actions: applications that execute commands for the user automatically based on available context. They are services that are executed automatically when the right combination of context exists, and are based on simple if-then rules.
Pascoe proposed a taxonomy of context-aware features. There is considerable overlap between the two taxonomies but some crucial differences as well. Pascoe developed a taxonomy aimed at identifying the core features of context-awareness, as opposed to the previous taxonomy, which identified classes of context-aware applications. In reality, the following features of context-awareness map well to the classes of applications in the Schilit taxonomy.
The features are:
- Contextual sensing: Ability to detect contextual information and present it to the user, augmenting the user’s sensory system. This is similar to proximate selection, except in this case, the user does not necessarily need to select one of the context items for more information.
- Contextual adaptation: Ability to execute or modify a service automatically based on the current context. This maps directly to Schilit’s context-triggered actions.
- Contextual resource discovery: Allows context-aware applications to locate and exploit resources and services that are relevant to the user’s context. This maps directly to automatic contextual reconfiguration.
- Contextual augmentation: Ability to associate digital data with the user’s context. A user can view the data when he is in that associated context.
Based on the previous categorizations, Dey and Abowd presented their definition that combines the ideas from the two taxonomies and takes into account three major differences. They defined three categories:
- Presentation of information and services to a user
- Automatic execution of a service
- Tagging of context to information for later retrieval
They also introduced two important distinguishing characteristics: the decision not to differentiate between information and services, and the removal of the exploitation of local resources as a feature.
In further posts we will show some of the work already done to design and develop context-aware applications and how sensors are the key enabling context-aware applications.