Department of Computer Science
Helsinki University of Technology
Computers are not as good as humans in deducing situational information from their environment and in using it in interactions. They cannot easily take advantage of such information in a transparent way, and if they can they usually require that it is explicitly provided. This is a challenge for human computer interaction. For example, present user interfaces still seldom can sense and adapt automatically to current light and noise level without the user providing the information. Another example comes from the area of mobile computing. Would it not be nice, if one could obtain services and information according to the current location and activity? For example, if at a stadium watching a football game, one could obtain additional information about the players, be able to participate in a local betting game, and check the traffic situation outside the stadium. There are very many different ways how context information could be used to make computer systems and applications more user-friendly, flexible, and adaptable. The use of context information is especially important in a mobile environment, where the environment of interaction, execution, and usage needs change rapidly. Areas where increased use of context information can bring added value and where research work is conducted include human computer interaction, adaptable user interfaces, virtual and augmented reality, mobile, ubiquitous, handheld, and wearable computing.
The objectives of this paper are to briefly clarify what context and context-awareness mean, to present some existing mobile context-aware applications, and to discuss context-awareness in ad-hoc networks.
"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 application themselves."
Almost any information available at the time of an interaction can be seen as context information. Some examples are:
There are features that are characteristic for context-aware applications [4, 16, 22]:
To improve readability the applications have been divided into application categories according to their characteristics. The categories are office and meeting tools, (tourist) guides, fieldwork tools, and memory aids. For each category some example applications will be presented in more detail. In addition, also some projects trying to create supportive frameworks for context-aware applications will be presented. After the review, characteristics of the applications are summarized in section 3.6.
Figure 1 A typical display showing the location of the office personnel 
The system also included commands to obtain the current location of a badge, to find out which other badges were in immediate proximity to a named badge, to find out which badges were currently near a specified location, to notify when a badge was again traceable, and a possibility to obtain information where the badge had been during an one-hour period.
The prototype was first installed in 1990 in Olivetti Research Center in Cambridge, England. At the beginning the personnel was worried about their privacy, but actually many of them later found the phone redirection service quite valuable. The system was later installed at other local sites and at Olivetti STL, Xerox EuroParc, MIT Media Lab and Xerox PARC.
The ParcTab (figure 2) is a small wireless palm-sized computer with
three finger operated buttons on the grip and a touch sensitive screen
(128x64) and a speaker. It was continually connected via an infrared-based
cellular network to a central server. Each office room had a transceiver
connected to the LAN communicating with the ParcTabs. The total bandwidth
of one such cell was 19 200 bps. The ParcTab system could continuously
know where each ParcTab was, e.g. which ones were in the same room and
notify applications of location changes. The first ParcTab system was released
in March 1993 having around 20 users at Xerox PARC. The year after that
a new optimized version was released with approximately 40 users.
Figure 2 The ParcTab terminal
The ParcTab worked as a mobile personal digital office assistant. There were dozens of applications developed for and tested with it. Some of them were not really context-aware, including among others possibility to view emails, personal calendar information, weather information from the Internet and the local weather station. There were also several ParcTab applications implemented for context-aware experimentation. These included:
Presenting information about the room the user was in. The information could be shown automatically, or by user request. E.g. when the user was at the library information about the library was displayed. 
The In/Out board  is a Java application showing if a user is at
the office or not (figure 3). It gathers information about the participants
who enter and leave the building at the only entry point into the building.
This is done with help of tags with unique identifiers (Dallas Semiconductor's
iButtons or TIRIS RF tags) worn by the employees. The In/Out board uses
identity information, and time of arrival and departure as context information.
Figure 3 Screenshot of the In/Out board 
The Information Display application displays information relevant to the user's location and identity on a display adjacent to the user. In the prototype the information displayed as a URL was depending on the location, the identity of the user, the research group the user belonged to, and the information that was interesting for that research group. This application used also IR or RF tags for locating and identifying users. Others have implemented similar kind of prototypes. In the beginning of the 90's this concept was prototyped in XeroxParc  as a part of the ParcTab experimentation. In 1996 at the Lancaster University a prototype called FLUMP was built. The user could choose to be shown information about her mailbox, schedule, and cafeteria opening hours on nearby public terminals. The system used Olivetti's Active Badges and HTML pages were used to present the data .
The Dynamic Ubiquitous Mobile Meeting Board (DUMMBO) is an instrumented digitizing whiteboard, which supports the capture and access of informal and spontaneous meetings. Captured meetings consist of the ink written to and erased from the whiteboard as well as the recorded audio discussion. In the initial version of DUMMBO writing or erasing on the whiteboard initiated the recording of a meeting. A context-aware version was developed. It included the automatic triggering of the recording when a group of two or more persons gathered around a whiteboard. Information about when persons were present and their identities was also used in visualizing and accessing captured material. The context information used in this application were the participant's identities, the time when they arrived at or left the mobile whiteboard, and the location of the whiteboard. Also in this application IR or RF tags worn by the users were used to sense the presence. 
The aim of the Conference Assistant  is to assist conference attendants. The conference attendee registers at the conference, providing her contact information, a list of research interests, and a list of colleagues also attending the conference. In return she receives an application, the Conference Assistant to be run on here laptop, personal digital assistant (PDA), or wearable computer. The Conference Assistant displays the conference timetable with events with an interest to the user highlighted. When entering a room where a presentation is given information about the presenter and the presentation material is shown. If presentation material is available, the user can access it and make own notes to it. The data is recorded with time stamps. The time, author, and content information can later be used for retrieval. This application uses location information, time, the activity in a certain location, and user preferences as context information. In the prototype running in the Georgia Tech laboratory the PinPoint Corporation's 3D-iD Local Positioning System (RF tags) is used to sense identity and location of the conference attendees and presenters. The application is being executed on different platforms, including laptops running Windows 95/98, Hewlett Packard 620LX WinCe devices. Wireless LAN is used for communication between the mobile clients and the network.
Guides of different kind using location information are actually the commercially best covered area of all context-aware applications. Even car navigation systems using GPS can be seen as context-aware applications. Mobile phone operators have for some years now been prototyping and offering location based information services. For example, Hong Kong operator Sunday has an intelligent network (IN) based system where customers can obtain information in shopping malls based on their current location. Currently there is a boom of location-based service portals being announced for mobile phones, see for example www.myaladdin.com, and www.geeps.com. There is also a company called GeoVector announcing solutions for obtaining information about the surrounding environment.
In this sections three application prototypes providing information about the surroundings and working as (tourist) guides are presented.
Figure 4 Screenshots of the indoor Cyberguide (map view left, information view right) 
Also an outdoor version (figure 5) was implemented for guidance at the
Georgia Tech Campus and touring local establishments in Atlanta. The outdoor
version used GPS for positioning.
Figure 5 The outdoor Cyberguide with GPS unit 
Figure 6 Screenshot of GUIDE
The system consists of a skin conductivity sensor, which is sampled
by an analog to digital converter attached to a wearable computer (figure
7). A digital camera and digital modem are also attached to the computer.
Images are captured by the Connectix QuickCam camera and stored in a buffer
in memory. When the computer detects a startle response, i.e. a change
in skin conductivity, the buffer of images is transmitted wirelessly over
the Internet to a remote server. 
Figure 7 StartleCam system 
Brown envisioned the concept in 1995 and his vision was also to create a general application framework based on the stick-e-notes to enable easy creation of context-aware applications. He argued that all context-aware applications were created by highly skilled people and used in research laboratories. In order to increase the number of commercially available applications and get them out in the market, it should be easier to create context-aware applications.
Brown et al.  proposed an architecture consisting of three component types:
Pascoe et al. [16, 17] have continued the work based on the visions of Brown based on an object-oriented architecture. The framework was implemented in C++ and a prototype implementation of the stick-e note architecture for palmtop computers was completed in 1997 .
A context widget is a software component that provides applications with access to context information from their operating environment. They insulate applications from context acquisition concerns. This means that they actually hide the complexity of the sensors used from the applications and they can abstract context information to suit the expected needs of applications. They are aimed as reusable and customizable building blocks of context sensing. The widget is defined by its attributes and callbacks. Attributes are pieces of context that it makes available to other components via polling or subscribing. Callbacks represent the types of events that the widget can use to notify subscribing components. Other components can query the widget's attributes and callbacks. The widget also allows other components to retrieve historical context information.
Context servers are used to collect the entire context about a particular entity, such as a person, for example. The context server is responsible for subscribing to every widget of interest, and acts as a proxy to the application. It can be seen as a compound widget. Just like widgets, it has attributes and callbacks, it can be subscribed to and polled, and its history can be retrieved.
Context interpreters are responsible for implementing the interpretation of context information. They could transform between different representation formats or combining different context information and create context information out of that.
Each of these objects is autonomous in execution. The objects can be instantiated all on a single computing device or on multiple computing devices. For communication between the different objects HTTP and XML are used. They can be replaced by other mechanisms if so wanted. The base implementation is in Java but the mechanisms used are programming language independent. The context toolkit software is freely available from http://www.cc.gatech.edu/fce/contexttoolkit/.
The reason that there are not that many context-aware applications deployed and commercially available yet lies, in addition to the difficulties in obtaining and processing the context information, also in the complexity of implementing such applications. They tend to be resource hungry, since they usually need to do continuos monitoring or complex calculations. Because of their complexity development costs is also generally high.
Spontaneity, dynamics, and mobility characterize ad-hoc networks. In an environment of such nature it is quite obvious that context-awareness can bring added value. Actually context information can be used on several different logical levels in ad-hoc networks: in establishing an ad-hoc network, in the routing mechanisms, and on application level.
In addition to using device location and proximity, almost any other type of context information could be used to determine which devices should establish a network. This includes e.g. identity information, friends nearby, time of the day, etc. For example, an ad-hoc network could be established when certain friends are close nearby, or only during a certain time of the day.
A very evident type of application is the ability to find nearby resources. This can include input and output devices: printers, displays, speakers, facsimiles, video cameras, thermostats, etc. In pure service lookup actually even no location information needs to be used. In situations where distance calculations have to be done location information of the client is required.
Another type suitable for ad-hoc networks is the idea of being able to create local network communities, not only based on the persons available at a certain site but also based on additional information. For example, depending on identities, belonging to the same company, having the same kind of preferences, etc. Related to this is the case where meetings can be set up spontaneously, based on who is present or what time of the days it is. Resources such as documents or white boards could be shared.
Another type of context-awareness would be the ability to obtain regional information in the ad-hoc network. However, this generally requires a gateway or a static device providing this kind of information.
Another challenge, which has not been discussed in much detail in this paper, is the privacy of users, as well as confidentiality. How to make use of context information and still enable the user to be in control of what is disclosed and to whom?
The usage of context information is still quite limited since it is very challenging and complex to capture, represent, and process contextual data. The most used types of context information are location, identity and time information. The context-aware application development is mainly concentrated around user interfaces, virtual and augmented reality, mobile, ubiquitous, handheld and wearable computing. The development is mainly research based. There are very few commercial products using context information yet, because of the challenges in this field. There are activities to make it easier to create context-aware applications with the help of application frameworks. The existing applications, which are mostly on a prototyping or testing phase, are in the area of office, guide, remembrance aid, or fieldwork tool applications.
Context-awareness is a natural part of ad-hoc networks. Context information can be used both in establishing ad-hoc networks, in routing protocols, as well as, on application level. In the ad-hoc networking the challenges for context-awareness are quite similar to those in other areas. It can be quite challenging to capture, represent and process contextual data. This can be even more challenging in an ad-hoc environment if no infrastructure for doing so is available. Privacy issues are also important.
For the future of context-aware applications in ad-hoc networks and other areas, it will be important to try to create consistent modular ways to obtain and process context information. Standard APIs, data representation formats and infrastructure need to be developed in order to support this development. Work in this direction has already started, but still a lot of work remains. Most challenging is to create the intelligence to analyze the context information and deduce the meaning out of it, and to integrate it into applications.
It will be increasingly important for computer systems and applications to use context information. With an increasing diversity of computer systems integrated in our surroundings and increasing mobility of both users and hardware this will be one of the main challenges in the next years.
|||Baudel, T., Beaudouin-Lafon, M. (1993) Charade: Remote Control of Objects Using Free-hand Gestures, Communications of the ACM, July 1993, Vol. 36, No7, pp. 28-35.|
|||Brown, P.J., Bovey, J.D., Chen X. (1997). Context-Aware Applications: from the Laboratory to the Marketplace, IEEE Personal Communications, 4(5), pp. 58-64.|
|||Davies, N., Mitchell, K., Cheverest, K., Blair, G. (1998). Developing a Context Sensitive Tourist Guide, First Workshop on Human Computer Interaction with Mobile Devices, GIST Technical Report G98-1. <http://www.dcs.gla.ac.uk/~johnson/papers/mobile/HCIMD1.html>|
|||Dey, A.K. and Abowd, G.D. (1999). Toward a better understanding of context and context-awareness. GVU Technical Report GIT-GVU-99-22, College of Computing, Georgia Institute of Technology. <ftp://ftp.cc.gatech.edu/pub/gvu/tr/1999/99-22.pdf>|
|||Dey, A.K., Salber, D., Abowd, G.D., Futakawa, M. (1999). The Conference Assistant: Combining context-awareness with wearable computing. 3rd International Symposium on Wearable Computers, San Francisco, California, 18-19 October, 1999, pp. 21-28.|
|||Dey, A.K., Salber, D., Futakawa, M., Abowd, G.D. (1999) An Architecture to Support Context Aware Computing, GVU Technical Report GIT-GVU-99-23. June 1999 <ftp://ftp.cc.gatech.edu/pub/gvu/tr/1999/99-22.pdf>|
|||Finney, J. and Davies, N. FLUMP, The FLexible Ubiquitous Monitor Project. <http://www.comp.lancs.ac.uk/computing/staff/joe/papers/flumpdhg.html>|
|||Fitzmaurice, G.W. (1993). Situated Information Spaces and Spatialy aware Palmtop computers, CACM, July 1993, vol.36, No 7, pp.39-48|
|||Healey, J.; Picard, R.W (1998). Startlecam: A Cybernetic Wearable Camera. 2nd. International Symposium on Wearable Computers, Pittsburgh, Pennsylvania, 19-20 October, 1998, pp.42-49.|
|||Hull, R., Neaves P. and Bedford-Roberts J., (1997). Towards Situated Computing, 1st International Symposium on Wearable Computers, Cambridge, Massachusetts, October 13-14, 1997, pp. 146-153|
|||Jie Yang; Weiyi Yang; Denecke, M.; Waibel, A. (1999). Smart sight: a tourist assistant system. 3rd International Symposium on Wearable Computers, San Francisco, California, 18-19 October, 1999, pp. 73-78.|
|||Lamming, M. and Flynn, M. (1994). Forget-me-not: Intimate Computing in Support of Human Memory, in proceedings of FRIEND 21: International Symposium on Next Generation Human Interfaces,Tokyo,1994 , pp. 125-128. <http://www.xrce.xerox.com/publis/cam-trs/pdf/1994/epc-1994-103.pdf>|
|||Leonhardi, A.; Kubach, U.; Rothermel, K.; Fritz, A. (1999). Virtual information towers - a metaphor for intuitive, location-aware information access in a mobile. 3rd International Symposium on Wearable Computers, San Francisco, California, 18-19 October, 1999, pp. 15-20.|
|||Long, S., et al. (1996). Rapid Prototyping of Mobile Context-aware Applications: The Cyberguide Case Study. 2nd ACM International Conference on Mobile Computing and Networking (MobiCom'96) 1996 November 10-12, 1996.|
|||Pascoe, J. (1997). The Stick-e Note Architecture: Extending the Interface Beyond the User. International Conference on Intelligent User Interfaces, Orlando, Florida, USA. ACM. pp. 261-264|
|||Pascoe, J., Ryan, N.S. and Morse, D.R. (1999). Issues in Developing Context-Aware Computing. Proceedings of the International Symposium on Handheld and Ubiquitous Computing (Karlsruhe, Germany, Sept. 1999), Springer-Verlag, pp. 208-221.|
|||Pascoe, J, Ryan, N.S., Morse, D.R. (1998). Human Computer Giraffe Interaction - HCI in the Field. Workshop on Human Computer Interaction with Mobile Devices. <http://www.dcs.gla.ac.uk/~johnson/papers/mobile/HCIMD1.html>|
|||Rhodes, B.J. (1997). The wearable remembrance agent: a system for augmented memory. 1st International Symposium on Wearable Computers, Cambridge, Massachusetts, October 13-14, 1997, pp.123-128.|
|||Ryan, N., Pascoe, J., Morse, D. (1997). Enhanced Reality Fieldwork: the Context-Aware Archaeological Assistant. Gaffney, V., van Leusen, M., Exxon, S. (eds.) Computer Applications in Archaeology. <http://www.cs.ukc.ac.uk/pubs/1998/616/content.html>|
|||Salber, D., Dey A.K., Abowd, G.D. (1999). The Context Toolkit: Aiding the Development of Context-Enabled Applications, CHI'99.|
|||Schilit, W.N. (1995). System Architecture for Context-Aware Mobile Computing, Ph.D. Thesis, Columbia University.|
|||Schilit, B.N., Adams, N.I. and Want, R. (1994). Context-Aware Computing Applications. Proceedings of the Workshop on Mobile Computing Systems and Applications, IEEE Computer Society, Santa Cruz, CA, pp. 85-90.|
|||Ullmer, B., Ishii, H. (1997). The metaDESK: Models and Prototypes for Tangible User Interfaces, Proceedings of UIST'97, Oct.14-17, Banff, Alberta, Canada, ACM,SIGCHI, NY, pp.223-232.|
|||Want, R., Hopper, A., Falcao, V., Gibbons, J. (1992). The Active Badge Location System. ACM Transactions on Information Systems 10(1) pp. 91-102.|
|||Want, R. et al. (1995). An Overview of the PARCTAB Ubiquitous Computing Environment. IEEE Personal Communications, vol 2, no 6, Dec 1995, pp. 28-43.|
|||Weiser, M. (1993). Some Computer Science Issues in Ubiquitous Computing. Communications of the ACM, July 1993, Vol. 36, No7, pp. 74-84.|