[jdev] Driving/Routing directions via XMPP

Trejkaz Xaoza trejkaz at xaoza.net
Tue Aug 17 06:56:24 CDT 2004

On Tue, 17 Aug 2004 03:20, Stephen Pendleton wrote:
> The proposed protocol is listed below, but I would like feedback on the
> protocol before drafting a JEP. If you have any comments please let me
> know, either by replying to the post - or sending me email directly.

This does sound like a good idea.  Unless, of course, the destination location 
is continuously moving. :-D  But I guess that just means the person doing the 
query will need to ask the question again each time the destination changes.  
Car chase via Jabber!  Nice diversion.  Anyway...

> Requesting and Returning Routing Information with XMPP
> Entities can request routing information between two jids or two locations
> specified by either latitude/longitude pairs or the postal address of the
> endpoints.

The postal address is the bit which interests me the most.  It makes me wonder 
whether it belongs, or whether the user should perform a separate query to 
convert the postal address into a lat&long.  That way, the query just passes 
a lat&long in all cases, which makes life simpler.

> Entity requests routing information between postal address pairs 4555 Main
> Street,Philadelphia PA,USA,19117 and 9000 West Elm Street,Philadelphia
> PA,USA,19117 :
> <iq
>     to='lbs at movsoftware.com/lbs'
>     from=' juliet at capulet.com/balcony'
>     type='get'
>     id='route1'>
>   <query xmlns='http://www.movsoftware.com/protocol/routing'>
>     <src street= '4555 Main Street ' city='Philadelphia' state = 'PA'
> country='USA' code='19117'/ >
>     <dst street= '9000 West Elm Street ' city='Philadelphia' state = 'PA'
> country='USA' code='19117'/ >

Careful of the inconsistent XML schema.  Users can easily craft evil stuff 
like this:

    <src street='4555 Main Street' jid='bob at jabber.org'/>

Uh-oh, which do we use?  The main street from the query?  Or the main street 
from the user's actual location?  Better if these children were elements, 
sort of like...

        <street>4555 Main Street</street>

That allows you to have a constraint where street and jid are mutually 
exclusive, without resorting to RELAX NG.  And it doesn't add too many 
characters evil. :-)

>     <segment id = '1'>Depart Start on Chevy Chase Lake Dr (West)</segment>
>     <segment id = '2'>Turn RIGHT (North) onto SR-185 [Connecticut
> Ave]</segment>
>     <segment id = '3'>Take Ramp (Right) onto I-495 [I-495
> Outerloop]</segment>
>     <segment id = '4'>Turn RIGHT (South) onto S Sherwood Rd [Sherwood Rd]
> </segment>

I would love to see some structure in these, so that non-English users don't 
get turned off.  The street element might even find some use again, who 
knows.  Something like...
    <segment id='4'>
        <turn dir="right">
            <street>S Sherwood Rd</street>

The only question would be how to specify things like ramps, bridges, compass 
directions, with regards to this.  Perhaps there could be multiple turn 
attributes.  One for direction, one for compass/orientation, one for a 
description?  But the description might want to be internationalisable.

Also, be careful of using terms like "city".  My address has a "suburb" and a 
"state", but the same can't be said for every location in the world.  I've 
seen schemas use "locality" (city/suburb/town) and "region" (state/province) 
to get around this snag.

Anywhere that addresses are involved it would be nice to have cooperation 
between different JIDs trying to do the same thing.  Whatever succeeds 
vcard-temp would LOVE it if your address and their address formats were the 
same.  And so would everyone writing the clients to support these 
features. :-)

That's all off the top of my head!


'Every sufficiently advanced technology is indistinguishable from magic' - 
Arthur C Clarke
'Every sufficiently advanced magic is indistinguishable from technology' - Tom 

             Email: Trejkaz Xaoza <trejkaz at xaoza.net>
          Web site: http://xaoza.net/trejkaz/
         Jabber ID: trejkaz at jabber.xaoza.net
   GPG Fingerprint: 9EEB 97D7 8F7B 7977 F39F  A62C B8C7 BC8B 037E EA73

More information about the JDev mailing list