12
Related Work on Context-Aware Systems Kostas Stefanidis Evaggelia Pitoura Department of Computer Science, University of Ioannina, Greece {kstef, pitoura}@cs.uoi.gr In this work in-progress report, we survey work related to context-aware systems and applications. 1 Types of Context Aware Applications Schilit [1] notes that three important aspects of context are: where you are, who you are with, and what resources are nearby. Context encompasses more than just the user’s location, because other things of interest are also mobile and changing. Context includes lighting, noise level, network connectivity, commu- nication costs, communication bandwidth, and even the social situation; e.g., whether you are with your manager or with a co-worker. Context has been tied to ubiquitous computing, although the term has had sev- eral meanings that differ subtly. One challenge of mobile distributed computing is to exploit the changing environment with a new class of applications that are aware of the context in which they are run. Such context-aware software adapts according to the location of use, the collection of nearby people, hosts, and accessible devices, as well as to changes to such things over time. A system with these capabilities can examine the computing environment and react to changes to the environment. Schilit [1] defines context-aware computing, and describes the four categories of context-aware applications: (a) proximate selection, (b) automatic contextual reconfiguration, (c) contextual information and commands, and (d) context- triggered actions. Proximate Selection Proximate selection is a user interface technique where the located-objects that are nearby are emphasized or otherwise made easier to choose. In general, proximate selection involves entering two variables, the locus and the selection. However, of particular interest are user interfaces that automatically default the locus to the user’s current location. There are at least three kinds of located-objects that are interesting to select 1

Related Work on Context-Aware Systems

Embed Size (px)

Citation preview

Related Work on Context-Aware Systems

Kostas Stefanidis Evaggelia Pitoura

Department of Computer Science, University of Ioannina, Greece

{kstef, pitoura}@cs.uoi.gr

In this work in-progress report, we survey work related to context-aware systemsand applications.

1 Types of Context Aware Applications

Schilit [1] notes that three important aspects of context are: where you are, whoyou are with, and what resources are nearby. Context encompasses more thanjust the user’s location, because other things of interest are also mobile andchanging. Context includes lighting, noise level, network connectivity, commu-nication costs, communication bandwidth, and even the social situation; e.g.,whether you are with your manager or with a co-worker.

Context has been tied to ubiquitous computing, although the term has had sev-eral meanings that differ subtly. One challenge of mobile distributed computingis to exploit the changing environment with a new class of applications thatare aware of the context in which they are run. Such context-aware softwareadapts according to the location of use, the collection of nearby people, hosts,and accessible devices, as well as to changes to such things over time. A systemwith these capabilities can examine the computing environment and react tochanges to the environment.

Schilit [1] defines context-aware computing, and describes the four categories ofcontext-aware applications: (a) proximate selection, (b) automatic contextualreconfiguration, (c) contextual information and commands, and (d) context-triggered actions.

Proximate Selection

Proximate selection is a user interface technique where the located-objects thatare nearby are emphasized or otherwise made easier to choose. In general,proximate selection involves entering two variables, the locus and the selection.However, of particular interest are user interfaces that automatically default thelocus to the user’s current location.

There are at least three kinds of located-objects that are interesting to select

1

using this technique. The first kind is computer input and output devices thatrequire co-location for use. This includes printers, displays, speakers, facsimiles,video cameras, thermostats, and so on. The second kind is the set of objectsthat you are already interacting with, and which need to be addressed by asoftware process. This includes people in the same room to whom you wouldlike to ”beam” a document. The third kind is the set of places one wants to findout about: restaurants, nightclubs, gas stations, and stores, or more generically,exits and entrances. Consider an electronic yellow pages directory that, insteadof the ”city” divisions of information, sorts represented businesses according totheir distance from the reader.

Automatic Contextual Reconfiguration

Reconfiguration is the process of adding new components, removing existingcomponents or altering the connections between components. Typical compo-nents and connections are servers and their communication channels to clients.However reconfigurable components may also include loadable device drivers,program modules, hardware elements, etc. In the case of context-aware sys-tems, the interesting aspect is how context of use might bring about differentsystem configurations and what these adaptations are.

Contextual Information and Commands

People’s actions can often be predicted by their situation. There are certainthings we do when in the library, kitchen, or office. Contextual informationand commands aim to exploit this fact. Queries on contextual information canproduce different results according to the context in which they are issued. Sim-ilarly, context can parameterize ”contextual commands”, for example, the printcommand might, by default, print to the nearest printer.

Context-Triggered Actions

Context-triggered actions are simple IF-THEN rules used to specify how context-aware systems should adapt. Information about context-of-use in a conditionclause triggers consequent commands; something like living in a rule-based ex-pert system. A number of applications can be organized in this way. Thecategory of context-aware software is similar to contextual information and com-mands, except that context-triggered action commands are invoked automati-cally according to previously specified rules.

2 Definition of Context

While most people tacitly understand what context is, they find it hard toelucidate. Previous definitions of context are done by enumeration of examplesor by choosing synonyms for context. A commonly-accepted definition is givenby Dey [4]:

Definition 1 Context is any information that can be used to characterize thesituation of an entity. An entity is a person, place, or object that is considered

2

relevant to the interaction between a user and an application, including the userand applications themselves.

This definition makes it easier for an application developer to enumerate thecontext for a given application scenario. If a piece of information can be used tocharacterize the situation of a participant in an interaction, then that informa-tion is context. Take the canonical context-aware application, an indoor mobiletour 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 determinewhether either one is context. The weather does not affect the application be-cause it is being used indoors. Therefore, it is not context. The presence ofother people, however, can be used to characterize the user’s situation. If a useris traveling with other people, then the sites they visit may be of particularinterest to her. Therefore, the presence of other people is context because it canbe used to characterize the user’s situation.

Dey [4] also defines context-aware computing.

Definition 2 A system is context-aware if it uses context to provide relevantinformation and/or services to the user, where relevancy depends on the user’stask.

Similar to the problem of defining context, researchers have also tried to specifythe important features of a context-aware application. Again, these featureshave tended to be too specific to particular applications. There are three generalcategories 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

3 Awareness Information Environments in

Mobile Computing

Awareness information environments help to support the coordination of work-groups by providing application-independent information to geographically dis-persed members of a workgroup about the members at the other sites. Suchinformation typically includes their presence, availability, past and present ac-tivities; about shared artifacts; and about various other things that exist orhappen at the other sites. Often they consist of sensors capturing information,a server that processes the information, and indicators to present the informa-tion to the interested users.

3

Context aware systems provide services and information to mobile users thatare adapted to the current context of use (i.e., physical location, other personsnearby, etc.). Furthermore, the current context of the user is used to facilitatecontacts and communication between users. Several approaches have definedcontext models and described different aspects of context taken into account forcontext-aware systems. In most definitions of context four main dimensions ofa context are considered ([5]):

• Location: We consider location as a parameter that can be specified inelectronic and physical space. An artifact can have a physical position oran electronic location described by URIs or URLs. Location-based servicesas one type of context aware applications can be based on a mappingbetween the physical presence of an artifact and the presentation of thecorresponding electronic artifact.

• Identity: The identity of a person gives access to second level contextualinformation. In some context-aware applications highly sophisticated usermodels hold and infer information about the user’s interests, preferences,knowledge and detailed activity logs of physical space movements andelectronic artifact manipulations. As described in the following sectionthe identity of a context can also be defined by the group of people thatshares a context.

• Time: Time is an important dimension for describing a context. Time isan important and natural context for many applications. Time context,such as time of day, week, month and season of a year (e.g., working hoursvs. weekend).

• Environment or Activity: The environment describes the artifacts andthe physical location of the current situation. In several projects ap-proaches for modeling the artifacts and building taxonomies or ontologyabout their interrelations are used for selecting and presenting informationto a user.

Also, this paper distinguishes primary and secondary context types. Primarycontext types describe the situation of an entity and are used as indices forretrieving second level types of contextual information.

4 Context-Aware Mobile Computing

The goal of [2] is to survey the most relevant literature in the area of context-aware mobile computing. Various definitions of ”context” are discussed and thepaper presents ways in which context is used.

Schmidt try to formally define context, as ”knowledge about the user’s and itdevice’s state, including surroundings, situation, and to a less extent, ”location”.Combining several context values may generate a more powerful understanding

4

of the current situation. ”Primary” contexts, including location, entity, activityand time, act as indices into other sources of contextual information. For ex-ample, knowing the current location and current time, together with the user’scalendar, the application will have a pretty good idea of the user’s current socialsituation, such as having a meeting, sitting in the class, waiting in the airport,and so on.

Also, in this paper Chen and Kotz give their own definition of context.

Definition 3 Context is the set of environmental states and settings that eitherdetermines an application’s behavior or in which an application event occurs andis interesting to the user.

There are two ways to use context: automatically adapt the behaviors accordingto discovered context (using active context), or present the context to the useron the fly and/or store the context for the user to retrieve later (using passivecontext). Thus there are two definitions of context aware computing:

Definition 4 Active context awareness: an application automatically adapts todiscovered context, by changing the application’s behavior.

Definition 5 Passive context awareness: an application presents the new orupdated context to an interested user or makes the context persistent for theuser to retrieve later.

Active context-aware computing is more interesting because it leads to newapplications on mobile devices and it requires more infrastructure support.

5 The Solar Platform

An Open Platform for Context-Aware Mobile Applications, which called Solar,is presented in [3]. Solar is a middleware platform to help context-aware ap-plications aggregate desired context from heterogeneous sources and to locateenvironmental services depending on the current context.

Context information is derived from an array of diverse information sources,such as location sensors, weather or traffic sensors, computer-network monitors,and the status of computational or human services. While the raw sensor datamay be sufficient for some applications, many require the raw data to be trans-formed or fused with other sensor data before it is useful. By aggregating manysensor inputs to derive higher-level context, applications can adapt more accu-rately.

A fundamental challenge in pervasive computing is to collect raw data fromthousands of diverse sensors, process the data into context information, anddisseminate the information to hundreds of diverse applications running onthousands of devices, while scaling to large numbers of sources, applications,

5

[badge="VER16481", location= [organization="Dartmouth", building="Sudikoff", room="120" ]timestamp=1023510520]

(a) A location event

[measyre="location", badge="VER16481", granularity="room",

] provides="Versus"

(b) A source name

$badge−loc = any | [measure="location",badge="VER16481"]

[device="camera", color=true, resolutin="640x480", location=$badge−loc:location]

(c) A context−sensitive name for the mobile camera

Figure 1: The event representation and naming mechanism in Solar

and users, securing context information from unauthorized uses, and respectingindividual’s privacy.

In the solar model, context-aware applications respond to context changes byadapting to the new context. These applications are likely to have an event-driven structure, where context changes are represented as events. An informa-tion source publishes events indicating its current state or changes to its state.The sequence of events produced is an event stream. Context-sensitive applica-tions subscribe to event streams that interest them.

Solar represents contextual events as a list of hierarchical attribute-value pairs.The internal data structure is a forest with the values at the leaves. An exam-ple of an event about the current location of badge numbered ”VER16481” maylook like Figure 1(a).

Also, Solar name the sources, using an attribute-based naming scheme. Solaruses an approach that keeps the values order-free but allows a tree structure onattribute names (not values) for convenience, exactly like the representation ofSolar events. An example name of the source that tracks badge ”VER16481” isshown in Figure 1(b).

Traditionally a resource directory is fairly static and assumes that names rarelychange after they are registered. Context-aware applications, however, mayneed to look up names based on context. For example, a context-aware displaymay want to find all nearby cameras. In this case, the physical location is partof the resource description for each camera, which may move frequently. Auto-matic name updates should be used; for example, attach an active badge to thecamera and arrange to have location changes update the camera’s name. Thename is itself context-sensitive.

Solar uses an approach that allows the name for a source to change according tocontext. Solar provides a unique way to automatically manage context-sensitive

6

names by defining the values of contextual attributes to be the output of somesources computing that piece of context. In Figure 1(c) there is an exampleof such a context-sensitive name for a mobile camera. It first defines a sourcethat tracks the camera’s location (assuming the camera has badge ”VER16481”attached), and then defines the location attribute of that camera to be part ofthe location event published by the specified source.

6 User Profiles for Caching

In [7], a profile specification scheme is presented that allows identifying items ofinterest. This scheme supports the specification of data dependencies (e.g., thefact that directions to a hotel from the airport are useful only in the presenceof the corresponding airline and hotel reservations). Also, the scheme has theability to specify thresholds, such as the fact that no more than three restaurantrecommendations are useful. These extensions to profile formulation reflect aglobal view of how a selected item relates to other selected items.

A simple language is proposed to express objects of interest. To illustrate thisprofile language, an example profile is presented in Figure 2. Observe that theprofile specification is broken into two parts: the Domain clause (DOMAIN)defines the sets of objects of interest and the Utility clause (UTILITY) specifiesthe relative values of objects contained in each domain set. The value of eachobject it might be dependent on the presence of another object. Also, it mightdepend on how many of them appear in the cache.

Thus,

1. A set of objects of interest can have a specific value OR

2. Some of the objects of interest of a set have a value and the rest of themhave another value. (UPTO (u, v, w) is a threshold operator: up to uobjects have a value of v each, and every object beyond u has a value ofw.) OR

3. The value of a set of objects of interest is dependent on the presence ofanother object of interest. If the last object there is in the cache, theobjects take values with the first or the second way.

We explain all these in the following example.

The Traveler profile might be used to drive data recharging for a traveler aboutto travel to Boston. Suppose the traveler wants to stay downtown. He needsto get from the airport to a downtown hotel, either by rental car or a shuttle.For a shuttle, he needs a schedule for a company offering shuttle service. Fora rental car, he needs rate information for one or more rental car companiesand driving directions from the airport to downtown. Even if he takes a shuttledowntown, directions serve some use as they tell him a bit about how to get

7

PROFILE Traveler DOMAIN RC=related.hertz.com

Di="directions to downtown Boston" AND "airport" Ho="Hotel" AND "downtown Boston" Re="Restaurant Review" AND "downtown Boston" UTILITY U(Re)=1 U(RC[#Di>0])=UPTO(2,2,0) U(Sh)=UPTO(1,3,0) U(Di[#Ho>0])=UPTO(1,1,0) U(Ho[#Di>0 OR #Sh>0])=UPTO(1,2,0)END

Sh="shuttle scheduler" AND "airport" AND "Boston"

Figure 2: A Profile for Data Recharging

about the city. He also needs information about downtown hotels, but only ifhe has received a shuttle schedule or directions telling him how to get to them.Finally, he would like to see reviews for nearby restaurants.

The Domain clause of Traveler identifies 5 domain sets specified by expressionsresembling inputs to a search engine. In this profile, RC is a set of rental carcompany web pages that offer details about rates and policies, Sh is a set ofshuttle schedules for shuttles heading to downtown from the airport, Di is a setof web pages, text files etc. that give directions from the airport to downtown,Ho is a set of web pages for hotels located in downtown Boston, and Re is a setof reviews for restaurants also located in downtown Boston.

The Utility clause of Traveler specifies 5 utility ”equations” (one for each domainset) that capture the data values and dependencies previously described. Everyrestaurant review has a value of 1. The value of rental car web pages (RCobjects) is dependent on the presence of Di objects: the condition, ”[#Di >0]”, is true if the number of Di objects in the cache (#Di) is greater than 0.This reflects the dependency of the value of rental car data on having drivingdirections. The value of RC objects also depends on how many of them appearin the cache. ”UPTO (2, 2, 0)” specifies that the first two RC objects carry avalue of 2, and that any more found in the cache have no value. This reflectsthe preference that having 2 rental car web pages in the cache is useful (so thatrates and policies can be compared), but that any more than this is unnecessary.UPTO (u, v, w) is a threshold operator: up to u objects have a value of v each,and every object beyond u has a value of w. Sh, Di and Ho objects are definedsimilarly to RC objects: up to 1 shuttle schedule has value 3; up to 1 set of

8

directions to downtown has value 1 provided that a hotel web pages is in thememory; and up to 1 hotel web page has value 2, provided that either a set ofdirections or a shuttle schedule are also in the cache. Thus, a cache consistingof two rental car web pages, one set of directions and a hotel web page wouldhave overall value of ((2 + 2) + 1+ 2 =) 7, and a cache consisting of one shuttleschedule, one rental car web pages and two restaurant reviews would have anoverall memory value of (3 + 0 + (1 + 1) =) 5.

7 Personalization in Database Systems

[6] refers to a preference model that assigns to each possible atomic query con-dition a personal degree of interest and provides an intuitive mechanism tocalculate the degree of interest of any complex query condition based on thedegrees of interest of the participating atomic conditions. The preferences ofeach user could be marked with the degree of interest on the part of the userare stored in a user profile. Then the system could automatically consider andintegrate them into the initial core query avoiding any additional human effortor use of complex interface.

A user’s preference of an atomic query element is expressed in the form ofa degree of interest, which is a real number in the range [0,1]. A particularuser’s preferences over the contents of a database can be expressed on top ofpersonalization graph of the database. This is a directed graph G(V, E), (Vis the set of nodes and E is the set of edges), that can be thought of as anextension schema graph. There are three types of nodes in V :

1. Relation nodes. One node for each relation in the schema.

2. Attribute nodes. One node for each attribute of each relation in theschema.

3. Value nodes. One node for each possible value of each attribute of eachrelation in the schema.

Likewise, there are two types of edges in E:

1. Selection edges. An edge from an attribute node to a value node.

2. Join edges. An edge from an attribute node to another attribute node.Two attributes nodes could be connected through two different join edges,in the two possible directions.

Consider the database schema below, with information about movie theatres,movies, directors, and actors:

theatre(tid,name,phone,region) as thplay(tid,mid,date) as pl

9

THEATRE

CAST

ACTOR

PLAY

MOVIE

DIRECTED

DIRECTOR

MGENREREGION

PHONE

NAME

TID

MID

ROLE

ACID

ACID

NAME

TID

DATE

MID

MID

TITLE

YEAR

MID

DID

DID

NAME

MID

GENREDOWNTOWN

KIDMAN

ROSSELLINI

HOPKINS

ALLEN

LYNCH

COMEDY

THRILLER

ADVENTURE

0.8

0.9

0.7

0.8

0.7

0.9

0.9

0.7

0.5

1

1

0.8

1

11

0.81 0.9

11

Figure 3: Personalization graph corresponding to Julie’s profile

movie(mid,title,year,plot) as mvcast(mid,acid,award,role) as caactor(acid,name,sex) as acdirected(mid,did) as dddirector(did,name,sex) as dimgenre(mid,genre) as mg

Example: Julie prefers theatres located downtown. She is a fan of come-dies, enjoy thrillers, and likes adventures to a lesser extent. She is very keen onD. Lynch and N. Kidman, likes A. Hopkins, and finds W. Allen and I. Rossel-leni quite interesting. All the above are expressions of interest in selections. Sheperforms searches concerning theatres, movies, actors and directors. Hence, shehas preferences expressed over the joins between the corresponding relations,to allow queries on one to take into account her preferences on the others. Forexample, when Julie asks for movies, she is interested in their directors and toa lesser degree in their actors as well. All of Julie’s preferences are captured inher profile, which is graphically depicted in the personalization graph of Figure3. These preferences may evolve through time as a result Figure 3 illustrates aninstance of Julie’s profile for a given point in time.

Note that the level of a user’s desire to include a join into the query qualifi-cation may be different depending on which end of the join is already there.For this reason, a join condition may be associated with two different degreesof interest, indicated in the personalization graph with different labels on the

10

two distinct edges that correspond to the join condition, one for each possibledirection from the node already included in the query to the one that is not.For example, there are two join edges with different labels between the relationsmovie and play, because it is more important to take into account informationabout movies when inquiring on theatres than the other way around.

Consider a set PN of N compose-able atomic preferences and the correspondingset DN of the degrees of interest:

DN = {di|di : degree of interest in Pi e PN , i = 1 . . .N}

For any function f calculating the degree of interest in a transitive preferenceformed by the atomic preferences in PN , the following must be hold:

f(DN ) ≤ min(DN)In other words, the degree of interest in a transitive preference decreases as itmoves further away from the part of the graph that the user mentioned originallyin the query.The function f is:

f(DN ) = d1 ∗ d2 . . . ∗ dN

For example, Julie likes movies starring N. Kidman, expressed as an implicitpreference on the condition:movie.mid=cast.mid and cast.acid=actor.acid and actor.name=’Kidman, N.’.The degree of interest associated with the corresponding transitive preferenceis the product of the degrees of the constituent conditions, which based on herprofile, gives 0.8 ∗ 1 ∗ 0.9 = 0.72.

Combination of User Preferences

Conjunctive Preference. For any function f∧ calculating the degree of interestin the conjunction of the preferences in PN .Disjunctive Preference. For any function f∨ calculating the degree of interestin the disjunction of the preferences in PN .

The functions are the following:f∧(DN ) = 1 − (1 − d1)(1 − d2) . . . (1 − dN ) and

f∨(DN ) = (d1 + d2 + . . . + dN )/N

11

References

[1] Norman Adams Bill N. Schilit and Roy Want. Context - Aware ComputingApplications. IEEE Workshop on Mobile Computing Systems and Applica-tions, 1994.

[2] Guanling Chen and David Kotz. A Survey of Context-Aware Mobile Com-puting Research. Dartmouth Computer Science Technical Report TR2000-381.

[3] Guanling Chen and David Kotz. Solar: An Open Platform for Context-Aware Mobile Application. In Proceedings of the First International Con-ference on Pervasive Computing, 2002.

[4] Anind K. Dey. Understanding and Using Context. Personal and UbiquitousComputing, 2001.

[5] Tom Gross and Marcus Specht. Awareness in Context - Aware InformationSystens. Proc Mensch and Computer 01, 2001.

[6] Georgia Koutrika and Yannis E. Ioannidis. Personalized Queries Using aGeneralized Preference Model. HDMS, 2004.

[7] Michael J. Franklin Mitch Cherniack, Eduardo F. Galvez and Stan Zdonik.Profile-Driven Cache Management. International Conference on Data En-gineering, 2003.

12