Group for User Interface Research
Confab Tutorial
University of California Berkeley
Jason I. Hong Chris Beckmann Jeff Heer Alan Newberger
Vision
“A hospital Mirror World has a software version of every patient, doctor, bed, room – and every abstract entity that’s important: cash in the bank, drugs on order, and so on. Through permanent sensors and ordinary terminalbased record-keeping, the Mirror World reflects the real one.”
– David Gelernter, Mirror Worlds
Feb 18 2003 2
Vision
• What if…
– …we could create a world model that describes salient aspects of the world in real-time? – …everyone could contribute to this world model in the same way that everyone can contribute to the global World Wide Web?
• Such a World Model would greatly facilitate construction of context-aware apps
– App developers wouldn’t have to hand craft each model – Streamline sharing of context data – Uniform façade around diverse sensors and software Feb 18 2003 3
Tutorial Outline
• • • • Context Data Model Programming Model Liquid Distributed Querying The Messy Details
Feb 18 2003
4
Context Data Model
High-Level Rationale
Feb 18 2003
5
Context Data Model
High-Level Rationale
Train Info Board
(Local Scope) (Context for people)
Web
(Global Scope) (Context for people)
Web Service
(Specialized API) (Global Scope) (Context for computers)
Unified API
(Network effects) (Limited Scope) (Context for computers)
Feb 18 2003 6
Context Data Model
High-Level Overview
Sinks
Public Display Auto Diary Context Browser
HVAC
Spaces
Context Data Layer
Sources
Sensor
Beacon
Web Manual Scraping Input
7
Feb 18 2003
Context Data Model
Health
Alice’s InfoSpace
Loc Activit y
Person
Room 525’s InfoSpace Person
Feb 18 2003
Device
PDA1138’s InfoSpace
Owner
8
Context Data Model
Division of Responsibilities
Analogous to web servers InfoSpace Manages a collection of InfoSpaces Server Unit of administration Unit of deployment Analogous to a web site / homepage Represents context data about an entity InfoSpace Represents zone of protection Manages collection of context tuples Unit of ownership and addressing
Tuple
Feb 18 2003
Analogous to individual web page Represents single piece of context data Contains privacy preferences and metadata Unit of storage 9
Context Data Model
InfoSpaces
• Distributed world model
– Each with partial and incomplete knowledge of world – Each with a different perspective of the world
• Represents three different things
– Context data about an entity
• “My name is John”, “I am hungry”
– Context data perceived by that entity
• “I am with Alice”, “I am in room 525”
– Context data queried by that entity
• “Carol tells me that the dog is in the kitchen”
• Managed by individual represented or by admin
– Like a homepage
Feb 18 2003 10
Context Data Model
InfoSpaces
• TupleSpace meets Web • TupleSpace
– A shared data space – add(), remove(), query(), subscribe(), unsubscribe() – Complexity shifted into data model and query language
• Web
– Leverages existing technology (ex. firewalls) – Leverages well-understood models for administration, deployment, authoring, and programming – End-user mental model – Independent deployment & anarchic scalability 11 Feb 18 2003 [Fielding]
Example Model
InfoSpaces
Alice’s InfoSpace
Properties Policies In-Log Out-Log In-Subscriptions Out-Subscriptions Tuples Feb 18 2003
12
Tuples
• Represent a discrete piece of context data • Contains:
– – – – Context data Metadata History of that data Privacy information
Feb 18 2003
13
Context Data Model
Tuples
Static Intrinsic Dynamic
Name Height
Room Temperature Hospital Bed Empty
Extrinsic
Alice is in Room 525 Room 525 part of Soda People in Room 606
Feb 18 2003
14
Querying
• XPath is a language for addressing parts of an XML document
– Think of an XML document as a tree-structure
• http://12.233.57.65:8080/infospace/jasonh
– – – – ?q=//ContextTuple[@datatype='location.room'] &sortby=//ContextTuple/@timestamp-created &sortorder=descending &num=2
• Snapshot
– Get current state
Feb 18 2003
15
Querying
XPath Explorer
Feb 18 2003
16
Operators
• Operators
– Small components for transforming data – Extensibility without having to modify the main code
• In-operators
– Check Privacy Tag
• Out-operators
– Add Privacy Tag – Clear Sources – Sort
• On-operators
– Garbage Collection – Periodic Report Feb 18 2003
17
Operators
Example Data-Flow
HTTP Front-end In Operators Alice’s InfoSpace
Tuple Tuple Tuple
Feb 18 2003 18
Out Operators
Sink-Side
Overview
Active Properties Confab Client
HTTP Front-end
Listeners
Alice’s InfoSpac e
InfoSpace Server
Bob’s InfoSpac e Room 22 InfoSpac e
Feb 18 2003
19
Sink-Side
ConfabClient
• ConfabClient
– Java client-side API for accessing InfoSpaces – add(), remove(), query(), subscribe(), unsubscribe()
• ActiveProperties
“lederer.location” OnDemandQuery “lederer.activity” PeriodicQuery “lederer.temp” Subscription
“606”
“Napping” “98.6”
Feb 18 2003
20
Source-Side
Simulator
Feb 18 2003
21
Putting it all together
In / Out Board for Room 410
• Approach 1 – Query each individual
“lederer.loc” “klemmer.loc” “mattkam.loc” … PeriodicQuery PeriodicQuery PeriodicQuery …
• Approach 2 – Query the room
“room410.occupants”PeriodicQuery
Feb 18 2003
22
The Messy Details
Download these packages
• JDK 1.4 • Tomcat 4.1.18 Web Server
– http://jakarta.apache.org/builds/jakarta-tomcat4.0/release/v4.1.18/bin/
• CVS
– we like TortoiseCVS, http://www.tortoisecvs.org/
• Ant 1.5.1 Build System
– http://ant.apache.org/
• Pageant and Putty Public-Key
– http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Feb 18 2003 23
The Messy Details
SourceForge
• SourceForge Open Source Repository
– Create account at http://sourceforge.net/ – Create and upload your public-key – Join Confab dev-team if you want to CVS commit
• http://sourceforge.net/projects/confab/ • No team t-shirts yet
– CVS checkout latest snapshot
Feb 18 2003
24
Feb 18 2003
25
Privacy
• Layer perspective
– Each layer responsible for security and privacy between layers
• Dataflow perspective
– Tuples contain data about usage – Digital rights management
Feb 18 2003
26
Related Work – Semantic Web / DAML
• Semantic Web has no story for
– Individuals managing their data – Handling sensor data and dynamic updates – Where specific pieces of data live
• Confab is simpler
– Complexity of Semantic Web is huge barrier to entry – Start simple
Feb 18 2003
27
Related Work – Context Toolkit
• Focus first on the data model rather than sensors • Early mapping of sensor to ontology • Per sensor managment
Feb 18 2003
28
Related Work – ParcTab System
• Confab is an evolution of ParcTab system
Feb 18 2003
29
Related Work – EventHeap / iRoom
Feb 18 2003
30
Related Work –
Feb 18 2003
31
Related Work –
Feb 18 2003
32
Motivation
• Modern computers divorced from our reality
– Unaware of who, where, and what around them – Mismatch between our expectations and functionality – Also limits what we can do with computers
• Computers have extremely limited input
– Aware of explicit input only – A lot of effort to do simple things (or to remember)
• Context-Aware Computing
– One line of ubiquitous computing research – Making computers more aware of the physical and social situations they are embedded in Feb 18 2003 33
Examples of Using Context
Existing Examples Context Types Human Concern
Auto Lights On / Off
File Systems Calendar Reminders Potential Examples Tag Photos Health Alert Service Fleet Dispatching Feb 18 2003
Room Activity
Personal Identity & Time Time Context Types
Time
Convenience
Finding Info Memory Human Concern Finding Info Safety Efficiency
Activity
History
Location Activity
Identity Proximity
34
Technology Trends
• Sensors
– GPS, Active Badges, Active Bats – Smart Dust – Cameras and microphones
• Recognition algorithms
– MSR Radar location from 802.11 – Smart Floor footstep force
• Wireless technologies
– Bluetooth, 802.11, cell phone
Feb 18 2003 35
A New Class of Context-Aware Apps
Active Badge
(Olivetti)
(Xerox PARC)
ParcTabs
Cyberguide
(Abowd et al)
Feb 18 2003
36
A Computational View of Context
• Context as a strategy for building apps • Increasing the number of input channels into the computer
– Pushing towards implicit acquisition of data
• Creating better models
– Pushing towards the physical and social
• Using the input and models in useful ways
– Proactively taking predictable and meaningful actions – Tagging other information for future lookup – Passing on more information to people Feb 18 2003
37
A Computational View of Context
Autonomy
• Lights
• Pervasiveness •Realtime Dispatching • Inference •Health • Fusion • Models
• Calendar • FileSystem • Tag Photos Sensing
Feb 18 2003 38
Two Problems with ContextAwareness
• Scalability
– – – – Lots of people, places, things, and sensors Over long periods of time Over large geographic distances Sharing resources (sensors and data)
• Privacy
– Tremendous source of valid criticism – Need architecture and mechanisms to safeguard personal data and make it easy for people to manage
Feb 18 2003
39
Research Goals and Solution Overview
• Provide network-oriented set of abstractions, mechanisms, and programming model • Scalability
– Data-oriented P2P repositories called information spaces – Different infospaces federate when needed
• Privacy
– Provide suite of mechanisms for app developers – Based on Fair Information Practices and Information Asymmetry
Feb 18 2003 40
Talk Overview
Motivation Research Overview Confab Architecture – Scalability Confab Architecture – Privacy Status Context + Whisper thoughts Context + SpeakEasy thoughts
Feb 18 2003
41
Architectural Abstractions
• Information Spaces
– P2P TupleSpace repositories of context data and operators – Associated with entities (people, places, things) – Somewhat similar to web servers and home pages
• Context Data
– Representation for context data
• Operators
– Reusable and composable code operating on data
• Context Queries / Notifications
Feb 18 2003
– Simple API for accessing context
42
Architectural Sketch
Information Spaces
Information Spaces
Carol's InfoSpace (Desktop)
Carol's InfoSpace (PDA)
Soda 525 InfoSpace (Server)
Feb 18 2003 43
Architectural Sketch
Context Data
Context Data
Information Spaces
Loc
Act
Loc
Act
Feb 18 2003
44
Architectural Sketch
Operators
Context Data
Information Spaces
Trans Filter Log
Operators
Feb 18 2003 45
Architectural Sketch
Context Queries
Context Data
Information Spaces
Query
Loc Trans Filter
Trans
Loc Operators
Feb 18 2003 46
Architectural Sketch
Context Notifications
Context Data
Information Spaces
Notification (Standing Query)
Operators
Feb 18 2003 47
Architectural Sketch
Peering of Information Spaces
Carol's Context when Mobile
Context = Set of Available Info Spaces
Carol's Context in Room 525
Feb 18 2003 48
Emergency Response Scenario
• Part of a suite of context-aware apps under development for fire or earthquake situations • Keep track of people in a building
– Allow building managers to check if a building is clear in the event of an evacuation – Allow firefighters to check where people were
• Provide reasonable privacy protection
– People don't like to be tracked – Emergency situations relatively rare
Feb 18 2003
49
Emergency Response Scenario
Registering with the Building's InfoSpace
Smart Dust Send location info User="Carol" Location="525 Soda Hall" Time="Apr 12 1:05PM"
Carol's InfoSpace Building InfoSpace
User="Carol" Location="5th floor" Age="37 seconds"
User="Carol" Location="in" Age="37 seconds"
50
Access Control Logging Blurring
Feb 18 2003
Emergency Response Scenario
Querying during an Emergency
Smart Dust
Building InfoSpace
User="Carol" Location="525 Soda Hall" Time="Apr 12 1:05PM"
Carol's InfoSpace
User="Carol" Location="525 Soda" Location="5th floor" Age="7 seconds" Age="37 seconds"
Notification
Feb 18 2003
Logging
51
Layers of InfoSpaces and Context Data
View
My Location to Strangers
My Location to Friends My Location
My Location to Family
Logical
Physical
My Location on PDA
My Location on PC
52
Feb 18 2003
Scalability Recap
• Architecture analogous to web
– Information spaces are like web servers – Information spaces contain context data – Context data is eventually consistent (helps availability)
• Differences from web architecture
– Each device contains an information space (so devices can access context even w/o net access) – Information spaces contain reusable operators for manipulating and protecting context data
Feb 18 2003 53
Talk Overview
Motivation Research Overview Confab Architecture – Scalability Confab Architecture – Privacy Status Context + Whisper thoughts Context + SpeakEasy thoughts
Feb 18 2003
54
Privacy Philosophy
Fair Information Practices
• • • • • • • Notice Choice Onward Transfer Access Security Data Integrity Enforcement
Feb 18 2003
55
Privacy Philosophy
Information Asymmetry
“In all of human history, no government has ever known more about its people than our government knows about us. And in all of human history, no people have ever been anywhere near as free.” (Brin)
Feb 18 2003
56
Some Desired Privacy Features
• Intentional ambiguity
– "Where is Victoria?" "Chez Panisse" -> "Berkeley" -> "CA" – Give different answers depending on requestor
• Plausible deniability
– "Is Adam busy?" "Yes" or "Unknown" according to prefs
• Risk Avoidance
– "Mark does not trust this person / infospace"
• Tracking
– Who has my data? What are they doing with it? – (Also a reverse-privacy issue?) Feb 18 2003
57
A Privacy Design Space
• • • • Legal Social Economic Technology
RBAC Prevention Location Support Wearables Anonymization Pseudonymization
Themes for Minimizing Asymmetry
Goal: Provide reusable mechanisms that can User Interfaces for Feedback, Notification, and space populate this design Consent
Privacy Mirrors Detection
Avoidance
P3P
Collection Feb 18 2003
Access Data Lifecycle
Second Use 58
Privacy Trust Model
• Optimistic
– I trust you and your current infospace – Make it easy for others to do "the right thing" [tm]
• Pessimistic
– I don't trust you or your current infospace – Modify the data assuming you will do "the wrong thing" (more blurring or watermarking) – Or don't send the data to you at all
• Make it easy to support spectrum of trust models between full optimistic and full pessimistic
Feb 18 2003
59
Two Privacy Mechanisms
• Operators
Garbage collection Blurring Access Control Logging Filters Remove or aggregate old data Increase ambiguity Check authorization Detection Remove certain data
• Privacy Tags
– Preferences for how personal data should be used – "Don't forward to anyone else" – "Don't fuse with other pieces of data"
Feb 18 2003 60
Talk Overview
Motivation Research Overview Confab Architecture – Scalability Confab Architecture – Privacy Status Context + Whisper thoughts Context + SpeakEasy thoughts
Feb 18 2003
61
Status
• Still in early-to-mid phases
– Currently developing initial implementation – JDK, JXTA (Java P2P), XML – Possibly also WSDL, SOAP
• Target applications
– SpeakEasy (PARC) – Suite of Emergency Response apps – Possible Educational Technology apps
• "Metrics"
– Types of and effectiveness of apps that can be built – Ease of adoption – Robustness Feb 18 2003 62
The Ultimate Metric
Feb 18 2003
63
Some Context + Whisper Thoughts
• Use location + activity to help determine level of security
– Within "safe" boundaries use low security – Within "unsafe" boundaries switch to high security, provide more feedback, and avoid risky situations (talking to strange computers)
• Boundaries can be based on:
– People nearby (Social) – Activity – Location (Physical)
• Use contextual information from sensors and other sources to help determine these Feb 18 2003 64 boundaries
Some Context + SpeakEasy Thoughts
• Useful context for components
– History of usage / Inferred patterns of usage – Location of component
• Useful context for people
– – – – Location of person Personal history of usage / Inferred patterns Shared history of usage (how others have used) Activity
• • • •
Feb 18 2003
ie "It looks like you're doing a presentation" Make it easy, or automate some things How well can you guess activity from simple data? How well can you do it over time?
65
Q&A
Privacy is good here, but be careful not to fall into the systems tarpit.
Focus, Jason, focus!
Jen Mankoff Asst Prof Berkeley
Feb 18 2003
Bill Schilit Intel Labs Seattle Co-director
66
Q&A
Agree with Bill do I, beware the dark side of systems you must!
Yoda Jedi Master Kickass Dude
Feb 18 2003 67
Good work, Jason, Q&A I think you deserve a raise!
This party's started!
James Landay Assoc Prof Berkeley My Advisor
Feb 18 2003
Mace Windu Jedi Master Also a Kickass Dude
68
Group for User Interface Research
Thanks to: DARPA Expeditions PARC Intel Fellowship NSF ITR Yoda
University of California Berkeley
Context the circumstances in which an event occurs; a setting; to join; to weave
Jason I. Hong http://guir.berkeley.edu/cfabric
Q&A
Maybe privacy won't be a large issue in the future. Very difficult to say because of the tradeoffs in value, safety, convenience. One way of evaluating is to describe the design space, and show how your work makes it easy to build in that space.
Feb 18 2003
70
Q&A
But do we really need ubicomp at all? And if so, how do we build and evaluate it so that it's socially relevant and meaningful? Maybe context itself isn't really the issue, because activity orders and delineates what is and isn't relevant at any point.
Feb 18 2003
71
Functional Requirements
• Context Acquisition
– Getting the data from a variety of sources
• Context Modeling
– Representing the data
• Context Storage and Dissemination
– Storing the data – Making the data available when it is needed
• Context Usage
– Using the data in a program
Feb 18 2003
72
Context Data
• Problem: how to represent context data? • Entities
– Like nouns, people, places, and things
• Attributes
– Like adjectives or properties, key-value pairs
• Relationships
– How one entity relates to another entity
• Aggregates
– Actions, Groups of people
Feb 18 2003 73
Context Data
Person="jasonh@cs.berkeley.edu"
Name="Location" Value="Room 525" Schema="Building:Room" Metadata= Time="1023498143" Time-to-Live="60sec" Source="SmartDust"
Name="Device" Value=http://zzz.com Schema="Device"
Feb 18 2003
Attribute Relationship
Entity
74
Key Architectural Abstractions
• Information Spaces
– Repositories of context data and operators
• Context Data
– Representation for context data
• Operators
– Composable code operating on context data
• Context Queries / Notifications
– Simple query language (like SQL for DB) – Push / Pull semantics
Feb 18 2003 75
Information Spaces
• Problem: where to store context data? • Information Spaces analogous to web servers
– Have a unique name – Have an owner – Contain multiple (and not necessarily related) pieces of data – Can get / put pieces of data (given security and privacy prefs)
Feb 18 2003
76
Operators
• Problem: how to manipulate context data in a reusable manner? Data-type Conversion • Chainable Operators Ex. Celsius -> Farenheit
Fusion Composition Garbage collection Blurring Access Control Logging Filters
Feb 18 2003
Refine same data type Merge different data types Remove or aggregate old data Increase ambiguity Check authorization Detection Remove certain data
77
Context Queries
• Problem: how to use context data?
Feb 18 2003
78
Related Work
• Context Toolkit • EventHeap • ParcTab infrastructure
Feb 18 2003
79
Existing Examples of Using Context
Existing Examples Auto Lights On / Off File Systems Calendar Reminders Smoke Alarm Barcode Scanners
Feb 18 2003
Context Types Room Activity Personal Identity & Time Time Room Activity Object Identity
Human Concern Convenience Finding Info Memory Safety Efficiency
80
Potential Examples of Using Context
PotentialExamples Existing Examples Context Types Activity Identity Time Activity Location Human Concern Convenience Finding Info Memory Safety Efficiency
81
Auto Cell Phone Off In Meetings
Tag Photos Proximal Reminders Health Alert
Proximity Identity
Activity Identity & Time History … Time
Service Fleet Dispatching
Feb 18 2003
Defining Context
Abowd & Dey / Moran & Dourish
• "Any information that can be used to characterize the situation of an entity, where 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 the application themselves. Context is typically the location, identity, and state of people, groups, and computational and physical objects." (Abowd and Dey) • "Context refers to the physical and social situation in which computational devices are embedded" (Moran and Dourish)
Feb 18 2003
82
Defining Context
Distributed Cognition
• Distributed cognition
– Need to go beyond physical attributes (ex. temp) – Look at “state of digital resources, people’s concepts, task state, social relations, local work culture” (Kirsh) – Model key attributes and deep structure of whole system (individuals, offices, social structs, work practices)
• Problems
– What are the key attributes? – How to represent?
Feb 18 2003 83
Defining Context
Situated Action
• Situated action
– Actions are fluid, moment-by-moment, improvised, often unplanned, and highly contextdependent – “[T]he context in which actions take place is what allows people to find it meaningful” (Dourish)
• Problems
– Very high-level form of context – Can low-level computer-based context be useful? – Also, how does this really help us build systems?
Feb 18 2003 84
Defining Context
Phenomenology
• Phenomenology
– Reality consists of objects and events as they are perceived in human consciousness and not of anything independent of human consciousness. – Meaning (and hence context) arises from the ways in which we engage with and act within the world
•
Problems
– Need this level of sophistication to make progress? – How does this help us build systems? Feb 18 2003
85
Defining Context
My Perspective
• Point #1 – Not clear if we need a solid definition
– Operating systems and Artificial Intelligence
• Point #2 – Let's treat it like "information"
– Shannon treated it from a mechanical perspective (i.e. transmission) made great inroads – We are still debating the meaning of "information" – But now we can do it electronically
• Let's treat context from computer perspective
Feb 18 2003
– Let designers define context app-by-app – Provide generic reusable mechanisms (like DB)
86
Privacy
• Privacy is a relatively new concept in society, and is “ultimately a psychological construct, with malleable ties to specific objective conditions” (Grudin)
– Convenience, Safety, Efficiency – Ex. Credit cards and cell phones
• Open access to online calendars for efficiency and awareness (Palen)
Feb 18 2003
87
Designing Context-Aware Systems
• Minimize automatic actions
– Probably cost-to-benefit via decision theory (value, error, correctness)
• Provide feedback
– What is being captured? – Why did the system do that?
• Feed-forward
– If you do that, then the system will do this
• Confirmation
– The system just did the following action
• Endpoint
– Context for people or context for computers?
Feb 18 2003 88
Vision
Feb 18 2003
Context-Aware Computing Today
89
Vision
January
Feb 18 2003
Context-Aware Computing in the Future90
Example Model
Organizing
January
(Perso
Feb 18 2003
91
Example Model
Organizing
End-User Devices, Services And Applications
???
Data Sources Sensors and Beacons (Personal, Group, Public) (Mobile and Infrastructure)
Feb 18 2003 92
Example Model
Organizing
Sinks
Context Data Model Layer
Sources
Feb 18 2003
93
Example Model
Organizing
Active Properties Confab Client
HTTP Front-end
InfoSpace Server
Alice’s InfoSpac Feb 18 2003 e Bob’s InfoSpac e Room 22 InfoSpac e
94
Example Model
Active Properties
“scott.location” “scott.activity” “current-device.room”
Feb 18 2003
95
Example Model
Division of Responsibilities
Analogous to web servers Manages a collection of InfoSpaces InfoSpace Server Unit of administration and deployment Unit of deployment Analogous to a web site / homepage Represents context data about an entity Represents zone of protection Manages collection of context tuples Unit of ownership and addressing
InfoSpace
Tuple
Feb 18 2003
Analogous to individual web page Represents single piece of context data Contains privacy preferences and metadata Unit of storage 96
Example Model
Evolution of Context-Aware Systems
Feb 18 2003
97
Example Model
A Predicted Evolution of Context-Aware Systems
Train Info Board
(Local Scope) (Context for people)
Web
(Global Scope) (Context for people)
Web Service
(Global Scope) (Context for computers)
Feb 18 2003
(Global Scope) (Global Scope) (Context for computers) (Context for computers) (Network effects) (Network effects)
Unified API
Restricted Scope
98
Example Model
A Predicted Evolution of Context-Aware Systems
Manual Input
Sensor Input
Train Info Board
Feb 18 2003
99
Example Model
Physical, Logical, and View
Sinks Data Stores Sources
Context-Aware Applications Context Data Sensors, Beacons, Databases, Web pages
Feb 18 2003
100
Example Model
Intrinsic and Extrinsic Context
Loc
Feb 18 2003
101
Example Model
Single InfoSpace Server
HTTP Front-end In-Operators
InfoSpaceAccess On-Operators Alice’s InfoSpace
Tuple Tuple Tuple
Room 525’s InfoSpace
Tuple Tuple
Out-Operators
Berkeley CS InfoSpace Server Feb 18 2003
102
Example Model
Context Data Model
Health
Alice’s InfoSpace
Loc Activit y
Person
Room 525’s InfoSpace Person
Feb 18 2003
Device
PDA1138’s InfoSpace
Owner
103
Example Model
InfoSpaces
Calorie Tracker Health Monitor Service Alice’s InfoSpace Personal Loc Triggers Auto Diary
GPS
Feb 18 2003
Motion
Heartbeat
104
Example Model
InfoSpaces
Health Alice’s InfoSpace Loc Activit y
Person
Room 525’s InfoSpace Person
Feb 18 2003
Device
PDA1138’s InfoSpace
Owner
105
Example Model
Adding Data
SUBSCRIBE Loc.* Loc. ActiveBadge Loc.Tri
Active Badge
Alice’s InfoSpace
SUBSCRIBE Loc
Wireless Triangulation
Feb 18 2003
SUBSCRIBE Loc.*
Alice’s Loc.Tri Laptop’s InfoSpace
106
Example Model
Adding Data
POST Loc. ActiveBadge Loc. ActiveBadge Loc.Tri
Active Badge
Alice’s InfoSpace
POST Loc.Tri
Wireless Triangulation
Feb 18 2003
POST Loc.Tri
Alice’s Loc.Tri Laptop’s InfoSpace
107
Example Model
Transforming Data
Alice’s InfoSpace
Type=“Location” User=“Alice” Loc=“525 Wozniak Hall” Time=“Oct 06 1:05 PM” Time-to-live=“Forever”
Building’s InfoSpace
Type=“Location” User=“xyzzy” Loc=“5th floor Wozniak Hall” Time=“Oct 06 1:05 PM” Notify=“someone@me.com” Pref=“Do not forward” Pref=“Emergency use only” Time-to-Live=“1 hour”
Acquaintance’ Type=“Location” s InfoSpace User=“Alice”
Feb 18 2003
Location=“Berkeley, CA” Time=“Oct 06 1:05 PM” Notify=“alice@me.com” Pref=“Do not forward” Time-to-Live=“1 week”
108
Hospital
Room Number
Temperature
Doctor Room Patient
Name Phone# Name Address
Occupied
Feb 18 2003
109
Example Model
Physical, Logical, and View Hospital's
InfoSpace
Room Room Room Number
Temperature
Patients Doctor
Room 525's InfoSpace
Dr. X's InfoSpace
Room
Name Phone#
Occupied
Room 527's InfoSpace
Feb 18 2003
Room Number
Temperature
Patient Y's Name InfoSpace Address
Heart Rate Room
110
Occupied
Feb 18 2003
111
Context Sinks
Example Model
Personal InfoSpaces and Tuples
Diary
Power Monitor
Context Data Model
Name
Dr. X's InfoSpace
Phone#
Room Activity
Room 525's InfoSpace
Room Number
Temperature
Occupied
Context Sources
525
535
527
537
Dr. X
Feb 18 2003 112
A
B
C D
Feb 18 2003
113
Access
Second Use
A
Alice's Location
F
Alice's Location
C
Feb 18 2003
114
A
B
Feb 18 2003
115