Lecture 4
Lecture 4
Lecture 4 Context
System Structure
explicit explicit
input System output
Context as Implicit Input
Context:
• state of the user
• state of the physical environment
• state of the computing system
• history of user-computer interaction
• ...
What is Context?
Examples of Context
• Identity (user, others, objects)
• Location
• Date/Time
• Environment
• Emotional state
• Focus of attention
• Orientation
• User preferences
• Calendar (events)
• Browsing history
• Behavioral patterns
• Relationships (phonebook, call history)
• … the elements of the user’s environment that the computer
knows about…
Relevance of Context Information
• Trying to arrange lunch meeting
• Going to a job interview
• Going home after work and making evening plans
• Shopping
• Tourist
• ...
Scene 1
Scene 1
Scene 2
Scene 2
Examples
• Smartphone adjusts the screen to the orientation
of the device
• Apple Watch turns on display if arm lifted/rotated
• Orientation is determined by using both a
gyroscope and an accelerometer.
Examples
• Phone display adjusts the brightness of the
display based on the surrounding area
• Uses a light sensor
Examples
• Device uses GPS to display the user’s location
• Can use to find nearby stores
• Get directions
• Location-specific status updates on social media
Examples
• The time is displayed on the phone.
• Time zone change
• Daylight savings time
Examples
• Device disables touch screen when the user
speaks on the phone
• Uses a proximity sensor (infrared signal travel
time)
Examples
• Active Badge location system
• One of the first context-aware
applications
• Context = location
• Call-forwarding system
• Issues
• Private call forwarding to a public room
• Call is forwarded to important meeting
Examples
• Schneider trucking trackers
• Uses GPS to track loads
• Sends a notification when a load nears its
destination
• Sends emergency notifications when conditions
are met
Types of Context: Train Booking App
• Customer provides customer# and booking details
(explicit input)
• Location, time are required and can be automatically
derived from context information (implicit input)
• Additional information: current temperature, number of
people around you, what you wear, heart rate, …
Levels of Interactions for Context-aware
Infrastructure
• There are three level of interactivity for context-aware
computing, infrastructure, or applications:
• Personalization: Here users specify their own
settings/environment that controls how the context-aware
infrastructure (hardware, software, applications, and so on)
should behave or respond in a given situation.
• Passive context awareness: In this case the context-aware
infrastructure provides the user with information from the
sensors or changes that occurred in the previous context;
however the infrastructure does not act or change behavior
based on this. The user decides on the course of action based
on the updated context information.
• ´Active context awareness: In this case the context-aware
infrastructure collects, processes, and takes all required actions
based on the sensor or context information. It offloads the work
from the user by taking active decisions.
Ubiquitous Computing
• The word ubiquitous means omnipresent, universal,
global, or ever-present.
• Ubiquitous computing means a computing environment
that appears to be present everywhere, anywhere, and
anytime.
• Unlike a traditional unconnected desktop computer, which
is stationary and can only be accessed while sitting in
front of it, the concept of ubiquitous computing points to
availability of a computing power through use of any
device or infrastructure, in any location, in any format, and
at any given time.
Ubiquitous Computing
• There are many essential components of compute infrastructure that enable the
concept of ubiquitous computing. Some of these components are:
• the Internet,
• wireless or network protocols,
• operating systems supporting ubiquitous behavior,
• middleware or firmware,
• sensors and context-aware devices,
• microprocessors,
• and other computer hardware.
Ubiquitous Computing
• Ubiquitous computing can provide users with two crucial user-experience enhancing
qualities: “invisibility” and “proactivity.”
• For example, imagine a completely context-aware shopping experience where user
does not have to wait at traditional checkout lines but instead can automatically scan
the basket for all goods, scan the user’s device/identity, and charge the relevant credit
card based on the user’s preferences. In this case the individual serial process of
checkout is completely invisible to the user and the system can be proactive in
identifying the user and payment method, thereby enhancing the user’s shopping
experience in terms of time and ease of use
Ubiquitous Computing
computers are no longer tied to physical space like in a computer room or laboratory, but can be deployed
and accessed at arbitrary locations throughout the world. Due to this phenomenon, the following changes
have occurred in computing devices:
1. Form factor changes: These simple form factor changes in display size, hardware sizes, and so on
In general, context-aware computing attempts to use When (time), Where (location), Who
(identity), What (activity), and Why (usage) as part of its decision-making algorithms.
Types of Context
• Time Context (current time, day of week, etc.)
• Physical Context (location, temperature, etc.)
• User Context (characteristics, habits, history, etc.)
• Computational Context (user input, customer history
from database, network status, etc.)
Example of context environment.
Passive Versus Active Context
An active context awareness A passive context awareness
• Internal (logical)
• Mostly specified by the user or captured monitoring the user’s
interaction
• Examples: the user’s goal, tasks, work context, business processes,
the user’s emotional state, etc.
Why Use Context?
• Reduce cognitive load of user
• Proactivity
• Set up environment according to user’s preferences/history
• Auto-completion of forms (location, time in timetable)
• Reminders
• Search and filter information according to user’s needs
• Avoid interrupting the user in inappropriate situations
• Smart environments
• Turn devices on/off, start applications, … depending on location,
time, situation (lecture, meeting, home cinema, …)
• Discover and use nearby interaction devices
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.”
• There are at least three kinds of located-objects that are interesting to
select using this technique.
• The first kind is computer input and output devices that require co-location for use.
This includes printers, displays, speakers, facsimiles, video cameras, thermostats,
and so on.
• The second kind is the set of objects that you are already interacting with, and which
need to be addressed by a software process. This includes people in the same room
to whom you would like to “beam” a document.
• The third kind is the set of places one wants to find out about: restaurants, gas
stations, and stores, or more generically, exits and entrances.
Proximate Selection
Location information can be used to weight the choices of printers that are nearby. Figure 1. shows proximate
selection dialogs for printers using three columns: the name of the printer, the location, and a distance from
the user. One interface issue is how to navigate dialogs that contain this additional location information. For
example, should dialogs use the familiar alphabetical ordering by name or should they be ordered by location.
Shown here are (a) alphabetically ordering by name; (b) ordered by proximity; (c) alphabetical with nearby
printers emphasized; (d) alphabetical with selections scaled by proximity, something like a perspective view.
Proximate Selection/Contextual
Information
Automatic Contextual Reconfiguration
• Add, remove, or alter components based on context
• Smart notifications on phone (ring, vibrate, autoresponse)
Contextual Commands
• queries on information or commands themselves may be
altered by the context of the user. For example, a migrate
button could bring a user's X display to a whiteboard in
that user's current room. Or, a whiteboard may display
information relevant to a user because it detected the
proximity of that user.
• Users can parameterize commands with context-filtered
values; execution changes based on context
• Example: universal remote control
Context-Triggered Actions
• Simple if-then condition-action rules, automatically invoked
• Reminder: if I step into the car on weekday morning and don’t have
suitcase with me, remind me to get it
Context-Awareness: Risks
• Context-awareness helps technology to “get it right”
• But context is hard to sense (quantity, subtleness)
• Computers are not self-aware like humans
• Problems:
• When the system does the wrong thing
• auto-locking car doors
• screen saver during presentation
• microphone amplifying a whisper
Context-Awareness: Risks
• Context data must be coupled with the ability to interpret
it, but computers are bad at “common sense”.
• More rules ≠ intelligence
• More rules = more complexity, harder to understand