Upload
jason-hong
View
49
Download
1
Embed Size (px)
DESCRIPTION
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
Citation preview
liquidcontext-aware queries
chris beckmannjeffrey heer
alan newbergerjason hong
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”
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!
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
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
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
entity type paths
location.occupant.publication
entity type paths
location.occupant.publication
entity type paths
location.occupant.publication
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>
query evaluation
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
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
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