A system we developed a while back for supporting multi-device context-aware queries.
As low-level architectural support for context-aware comput-ing matures, we are ready to explore more general and powerful means of accessing context data. Information required by a context-aware appli-cation may be partitioned by any number of physical, organizational, or privacy boundaries. This suggests the need for mechanisms by which ap-plications can issue context-sensitive queries without having to explicitly manage the complex storage layout and access policies of the underlying data. To address this need, we have developedliquid, a prototype query service that supports distributed, continuous query processing of context data. This paper articulates the current need for such systems, describes the design of theliquid system, and presents both a room-awareness application and notification service demonstrating its functionality.
Authors are Jeffrey Heer, Alan Newberger, Chris Beckmann, and Jason Hong
2. liquid introduction
Context Fabric: storage and subscription
services at InfoSpace level
What about cross infospace concerns?
“Give me the e-mails of all people in the room”
What about complex relations?
“Give me all the people in the conference hall
with whom I have a co-author in common”
3. liquid introduction
“Give me all the people in the conference hall
with whom I have a co-author in common”
Currently, a context-aware app must
handle all this complexity on its own!
4. liquid introduction
Enter liquid, a prototype query service
distributed across infospaces
location.occupantperson.email
handles persistent, continuous queries
people exiting, entering rooms
supports rich set of data selection criteria
selection, projection, joins
5. liquid concepts
entity type paths
a naming mechanism for context data
query specification
how to issue a query
query execution
how a query is evaluated
result items
encapsulation for query results
6. entity type paths
Each infospace in the sequence is specified by its
relation to the preceding infospace, and addressed by
an entity-link.
An entity type path specifies a ContextTuple to be retrieved at the end of a
sequence of infospaces.
location.occupant.publication
10. query specification
queries are specified using XML syntax
future work: a high-level query language that
maps down to this intermediate XML rep.
<?xml version=“1.0” encoding = “UTF-8” ?>
<Query>
<QuerySpec persist=“true”>
<EntityTypePath>location</EntityTypePath>
</QuerySpec>
</Query>
12. result items
result items == collection of context tuples
+ query metadata (timestamp, status)
query result status types
inserted new tuple inserted into an infospace
deleted tuple deleted from an infospace
updated tuple updated in infospace (and still matches query)
exited tuple updated in infospace (and no longer matches)
expired tuple fell out of window watched by liquid
13. future work
testing / evaluation / deployment
once confab deploys, this will be natural
query language
already have the basics of an OQL-like natural query
language, but need a parser
perfect scope for an undergrad project
advanced entity type paths
intra-infospace scoping
optimization
making liquid faster, more robust in response to usage
14. conclusion
liquid provides distributed, continuous
queries over collected context data
a necessary component for enabling the
easy development of c/a-apps
as c/a-architectures deploy, liquid will
hopefully grow to match developers’
needs
liquid source code is bundled with the context fabric distribution
-check out package edu.berkeley.guir.confab.query
-context fabric home: http://sourceforge.net/projects/confab