
Return to the Wherehoo Home Page
OVERVIEW
Wherehoo is an interactive location service for software agents. It binds a link to data (e.g. the URL of a web page) or data itself (e.g. a music file) to some precise location on Earth. Agents query existing data and insert records for use by themselves or other agents. Wherehoo is equally good at indexing long-lived things such as restaurants, and short lived-things like subway trains at stations, buses at bus stops, or GPS-wired rollerbladers.
New in Version 2.0, a "place" may be either a point or a polygonal area.
The Wherehoo server was designed primarily for use by personal software agents and wireless devices/digital tools used by people to explore and interact with agents representing places in the physical world, or with information situated at a"place" in the physical world. It has served research projects that use geolocation and time to personalize information and control agent behaviors.
The Wherehoo server was also designed to demonstrate a working example of the proper size and scope of an embedded Internet service for softrware agents and small personal devices. The protocol was engineered to use minimal bandwidth, and to balance the limited processor/memory/connectivity budget of small portable devices, with those capabilities over which a time- and location-server is authoritative. Further, the server is fully bidirectional - some agents interacting with it will write records, some will read them, others may do both.
Scale: The Wherehoo server was designed to store location data at GPS resolution (around 7 meters), with time scales from about 6 seconds to thousands of years.
The server provides a TCP/IP socket interface for client software interactions, and this is the primary and best way to use the server. We have also provided a web-based front end "search" (available here and on other Wherehoo servers) simply for basic demonstrations, debugging and basic human interaction with the server.
The database server behind Wherehoo is Postgresql. The Wherehoo TCP server is written in Java with a little help from JDBC.
MORE INFORMATION
& PUBLICATIONS
Current technical documentation - server specs and Wherehoo protocol for socket communications
Source code - please e-mail the author, jim -at- media dot mit dot edu
9/2000: Abstract
for the Workshop on Infrastructure for Smart Devices -- How to Make Ubiquity
an Actuality,
The Second International Symposium on Handheld and Ubiquitous Computing, Bristol
(UK), Wed September 27, 2000 (HUC2K)
9/2000: Slides from HUC2K talk (PDF)
12/2001: Video of Periscope - the first tangible Wherehoo client (68mb QuickTime movie)
CONTRIBUTORS
Wherehoo server and server documentation by Jim Youll.
Additional coding of Wherehoo Server 2.0 and Posgresql transition overseen by
Aleksandra Szelag.
Version 1.0 clients, Java abstract interface and other widgets by
Raffi Krikorian and Jim Youll.
Logo by Joe Meiring @ Factor-e
DATA PROVIDERS
Thanks to the data providers
who have helped to populate the Wherehoo database with the stuff around us!
|
Street address geocoding uses the ETAK EZ-Locate service, http://www.etak.com |
|||
|
Search-area maps
in the web interface use the Tiger Mapping Service of the US Bureau of
the Census |