UbiComp ’03 – Context Awareness Session liquid context-aware distributed queries jeffrey heer alan newberger chris beckmann jason i. hong group for user interface research university of california, berkeley
UbiComp ’03 – Context Awareness Session the problem monitoring context data is complicated by its distributed and dynamic nature, making application authoring more difficult a solution push advanced support into the infrastructure liquid : a query service supporting distributed, decentralized query processing over continuously changing context data, built atop Context Fabric roadmap
UbiComp ’03 – Context Awareness Session context-aware computing leverage input such as sensor readings to give computers awareness of physical and social environment provide enhanced services by modeling the tasks or activities at hand context data includes the state of people, places, objects, activities
UbiComp ’03 – Context Awareness Session the problem we expect context data to be distributed, but under existing context-aware computing infrastructures dynamic data retrieval can become quite complicated… an example: say I’m hard at work on a research paper and I need to get feedback from my advisor. I want to know when he is in the building and is interruptible…
UbiComp ’03 – Context Awareness Session a scenario (non- liquid ) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 the application must handle multiple network connections, subscriptions, and perform all intermediate data processing!
UbiComp ’03 – Context Awareness Session solution: liquid push needed functionality into infrastructure liquid - context-aware query processing distributed, streaming queries dynamic query re-routing in response to context uses numerous innovations from the database community: distributed databases (R*, Mariposa) streaming databases (TelegraphCQ, Stream, Aurora) semi-structured databases (Lore) ubicomp’s needs lie in this intersection!
UbiComp ’03 – Context Awareness Session scenario revisited ( liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query
UbiComp ’03 – Context Awareness Session scenario revisited ( liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query
UbiComp ’03 – Context Awareness Session scenario revisited ( liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query
UbiComp ’03 – Context Awareness Session scenario revisited ( liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query
UbiComp ’03 – Context Awareness Session scenario revisited ( liquid style) result select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3
UbiComp ’03 – Context Awareness Session scenario revisited ( liquid style) select location.building.occupant where occupant.name = "James Landay" and occupant.interruptibility <= 3 query
UbiComp ’03 – Context Awareness Session liquid concepts entity type paths a naming mechanism for context data e.g., location.building.occupant query specification how to issue a query XML-based query language query execution how a query is evaluated
UbiComp ’03 – Context Awareness Session liquid concepts: query execution
UbiComp ’03 – Context Awareness Session applications: room aware
UbiComp ’03 – Context Awareness Session conclusion liquid provides distributed, continuous queries over collected context data liquid provides dynamic query re-routing in response to changing context take-home message: important to leverage synergies between UbiComp and Database communities.
UbiComp ’03 – Context Awareness Session Questions? Jeffrey Heer Alan Newberger Chris Beckmann Jason I. Hong liquid is bundled with the context fabric distribution -context fabric home:
UbiComp ’03 – Context Awareness Session entity type paths An entity type path specifies a ContextTuple to be retrieved at the end of a sequence of infospaces. location.building.occupant Each infospace in the sequence is specified by its relation to the preceding infospace, and addressed by an entity-link.
UbiComp ’03 – Context Awareness Session entity type paths location.building.occupant
UbiComp ’03 – Context Awareness Session entity type paths location.building.occupant
UbiComp ’03 – Context Awareness Session entity type paths location.building.occupant
UbiComp ’03 – Context Awareness Session query specification queries are specified using XML syntax future work: a high-level query language that maps down to this intermediate XML rep. location.occupant
UbiComp ’03 – Context Awareness Session 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