LoST: Location-to-Service Translation Protocol
LoST is "a protocol for mapping a service identifier and location information compatible with PIDF-LO to one or more service URL." It is designed by IETF-ECRIT working group to determine the location-appropriate Public Safety Answering Point (PSAP) for emergency services.
This demonstration introduces the extensions to LoST, enabling the protocol to support an array of services. The LoST extension draft details the different type of queries defined in the extension and the service classification draft outlines the services supported.
Developers can utilize the LoST protocol to develop Location Based Services by deploying a LoST client and a server.
Quick Links
Cities Covered
New York (Manhattan)
Dublin
Request City
Screen Shots
LoST Extension
LoST Server
A LoST server is deployed on http://lost.cs.columbia.edu:8080/Lost/ajaxServlet
The server is connected to a MySQL database containing services for Dublin and Manhattan. Each listing in the database consists of the Business name, url, latitude, longitude, address and phone number. Developers can query the server to get a list of services near the client. The server currently supports geodetic-2d and civic location profile along with the geodetic-civic location profile. The Geodetic-civic profile has not been standardized yet and has been implemented on a purely experimental basis
LoST Client
To query the server a developer needs to send an HTTP Post request to the server according to the format defined in the LoST extension draft. For the demonstration a sample web based LoST Client has been created, running on http://lost.cs.columbia.edu:8080/Lost The web based client will run on a browser supporting JavaScript. If viewed on an iPhone/iPod Touch, the client utilizes the mapping application to show the location of a business on the map.
Different types of LoST queries: N, X and XN
The N type query finds the N nearest instances of a particular service. The content type for all types should be application/lost+xml
A Sample Query using the geodetic-2d profile:
<?xml version="1.0" encoding="UTF-8"?>
<findService xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:p2="http://www.opengis.net/gml"
serviceBoundary="value" recursive="true" limit ="1">
<location id="6020688f1ce1896d" profile="geodetic-2d">
<p2:Point id="point1" srsName="urn:ogc:def:crs:EPSG::4326">
<p2:pos>40.7128 -74.0092</p2:pos>
</p2:Point>
</location>
<service>urn:service:food.pizza</service>
</findService>
Response:
<?xml version="1.0" encoding="UTF-8"?>
<findServiceResponse xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:p2="http://www.opengis.net/gml">
<mapping expires="2007-01-01T01:44:33Z" lastUpdated="2006-11-01T01:00:00Z" source="authoritative.example" sourceId="7e3f40b098c711dbb6060800200c9b356">
<displayName xml:lang="en">Portobello Pizzeria Restaurant</displayName>
<service>urn:service:food.pizza</service>
</uri>
<serviceNumber>(212) 766-1195</serviceNumber>
<serviceLocation profile="geodetic-2d">
<p2:Point id="point1" srsName="urn:ogc:def:crs:EPSG:4326">
<p2:pos>40.714836 -74.011071</p2:pos>
</p2:Point>
</serviceLocation>
</mapping>
<path><via source="honamsun.cs.columbia.edu"/></path>
<locationUsed id="6020688f1ce1896d"/>
</findServiceResponse>
The X Type query finds all requested services within a radius X.
A sample query using the civic profile:
<?xml version="1.0" encoding="UTF-8"?>
<findService xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:p2="http://www.opengis.net/gml"
serviceBoundary="value" recursive="true" limit="1">
<location id="6020688f1ce1896d" profile="civic">
<civicAddress xmlns="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr">
<country>US</country>
<A1>NY</A1>
<A3>New York</A3>
<A6>240 West, 104 Street</A6>
<HNO>5</HNO>
</civicAddress>
</location>
<service>urn:service:food.pizza</service>
</findService>
The XN Type query finds N instances of the requested services with a radius X. A sample query using geodetic-civic profile:
<?xml version="1.0" encoding="UTF-8"?>
<findService xmlns="urn:ietf:params:xml:ns:lost1"
xmlns:p2="http://www.opengis.net/gml"
serviceBoundary="value" recursive="true" limit="10">
<location id="627b8bf819d0bad4d" profile="geodetic-civic">
<p2:Circle srsName="urn:ogc:def:crs:EPSG::4326">
<p2:pos>40.7128 -74.0092</p2:pos>
<p2:radius uom="urn:ogc:def:uom:EPSG::9001">3</p2:radius>
</p2:Circle>
</location>
<service>urn:service:retail.movies</service>
</findService>
Contact
For any queries regarding the LoST Client or Server please contact Andrea G. Forte or Milind Nimesh.
Copyright (c) 2008 Internet Real Time Laboratory
Department of Computer Science, Columbia University
Geodetic-civic Profile
When a query is sent to the server using Geodetic-2d or Civic profile the server responds using only the profile in which the query was sent. This can be a limiting factor in situations where the client has only geodetic information regarding the user but expects a response in civic or vice-versa. To address this limitation we implemented a profile called ?geodetic-civic? in which query could be either Civic or Geodetic-2d. The reply from the server, however will contain both Civic and Geodetic-2d based location information. By using this profile developers can simply send the coordinates of the user or business and get civic information or vice-versa, avoiding unnecessary geocoding on the client side.