Title: An Infrastructure for Contextawareness Based on First Order Logic Anand Ranganathan
1An Infrastructure for Context-awareness Based on
First Order LogicAnand Ranganathan
- Jan. 4, 2005
- Choi, Chang Ik
2Overview
- Introduction
- Key Features of First Order Context Model
- The Context Model
- Protocols for Obtaining Context
- The Context Infrastructure
- Context Synthesizer
- Configuration File
- Optimizing Context Expression Evaluation
- Conclusion
3Introduction
- Context simplifies and enriches human-computer
interaction - It is necessary to develop a common, reusable
model for context used by ubiquitous environment - First order calculus
- Allows complex rules
- Enables automated inductive and deductive
reasoning - Express description of context
- Part of GAIA project (UIUC)
4Key Features of First Order Context Model
- Supports gathering of context information from
different sensors and delivery of appropriate
context information to applications - Allows complex reasoning
- Allows applications to specify different
behaviors in different contexts
5The Context Model (1/4)
- The basic structure-the context predicate
- Example
- Location (chris, entering, room 3231)
- Temperature (room 3231, , 98 F)
- StockQuote (msft, gt, 60)
- Arguments are constrained by the type of context
- Structure of context is specified in ontology
- Check validity of context predicate
6The Context Model (2/4)
- Operations on context
- Using Boolean operation conjunction,
disjunction, negation - Example
- Location (Manuel, Entering, Room 3211) ? Social
Activity (Room 3211, Meeting) refers to the
context that Manuel is entering Rom 3211 and that
there is a meeting going on in that room - EnvironmentLighting (Room 3234, Off) ?
EnvironnmentLighting (Room 3234, Dim) refers to
the context tat the lighting in Room 3234 is
either off or dim
7The Context Model (3/4)
- Existential quantifier (There exists)
- Context is true for at least one value of the
variable w/i the indicated scope of the variable - Example
- ?Location y Location (Chris, In, y)
- Chris is in some location
- Universal quantifier (For all)
- Context is true for all values of the variable
that lie in the scope of the variable - Example
- ?people x Location (x, In , Room 3231)
- All people in Room 3231
8The Context Model (4/4)
- Additional Features
- Arguments in the context predicate can be
functions that return some value - ?Person s Location (s, Entering, currentRoom())
- currentRoom() returns the room in which the Room
Controller application is running gt can be used
for all rooms - Derive new context from other sensed contexts
- Sound (Room 3234, gt, 40dB)?Lighting (Room 3234,
Stroboscopic)?People (Room 3234, gt, 6)gt
Social Activity (Room 3234, Party)
9Protocols for Obtaining Context (1/2)
- Query-answer protocol
- Application sends a query to the Context Provider
- One or more fields of the context predicate is
replaced by a variable - Example
- Who is in Room 3231?
- Location (X, In, Room 3231)
10Protocols for Obtaining Context (2/2)
- Subscribe-notify protocol
- To subscribe for certain contexts and gets
notified whenever that context becomes true - Simple callback from the Context Provider
- Event-based mechanism
- Bulletin board kind of system
- In our model, CORBA event mechanism
- Using event channel
- Any interested Context Consumers can listen on
these channels and get notified whenever the
context changes
11The Context Infrastructure
- Context Providers
- Obtain context from sensors or other data source
- Context Consumers
- Context-sensitive applications
- Context Synthesizers
- Derive higher level contexts
- Context Provider Lookup Service
- Context Providers advertise the context they
provide - Allows applications to find appropriate Context
Providers - Context History
- All past contexts are maintained in a database
12Context Synthesizer
- Rule-based synthesizer
- More than one rule can be true at the same time
- If we want the Context Synthesizer to return just
a single value for the context, we use
priority-based mechanism for resolving conflicts - Context Synthesizer re-evaluates the rules
whenever it gets an event from one of the Context
Providers that supply the basic context - May not deduce the right context simply because
the real world may not follow the rules
13Example Scenario
SocialActivity (Room 2401, Lecture)
Activity Context Synthesizer
Location (Manuel, In, Room 2401) Location
(Chris, In, Room 2401) Location (Roy, Entering,
Room 2401)
Temperature (Room 2401, , 68) Lighting (Room
2401, Is, Dim)
Application (PowerPoint, Is, Running) Application
(MP3 Player, Is, Running)
Location Context Provider
RoomEnvironmentContext Provider
Applications Context Provider
14Configuration File
- Gives a set of rules that specify the behavior of
the application in different context - Action with higher priority wins, if same, then
action is randomly executed
15Optimizing Context Expression Evaluation (1/2)
- Whenever a context changes the Context
Synthesizer has to re-evaluate the inferred
context - Re-evaluation takes O(n) time and can be very
inefficient if the number of rules is very large - Use Poset Structure (Partially Ordered Set)
- If context expression of a node in the poset
evaluates to false, then the context expression
of all its descendents will also be false
16Optimizing Context Expression Evaluation (2/2)
Top-down search
Hierarchy of context rules for Jukebox application
17Conclusion
- We can enhance the context model by associating
probabilities with context expressions to handle
the uncertainty in deducing context - An efficient algorithm to generate new inferred
context when changes occur in real-world - A well-defined grammar to represent context is
important for generation, aggregation, inference,
and querying of contexts