Midori web browser supports “geo:” URIs

July 16th, 2012 by alex No comments »

The lightweight “Midori” web browser supports “geo:” URIs natively since version 0.3.6. Here’s the respective release announcement (from May 2011, only discovered now):

http://mail.xfce.org/pipermail/xfce/2011-May/028718.html

The browser extracts latitude and longitude from a geo: URI entered or clicked on, and redirects the user to the respective location on OpenStreetMap.

Very cool.

GeoSMS – “geo:” URIs in mobile short messages

October 6th, 2010 by alex 5 comments »

An initiative called “GeoSMS” proposes the use of “geo:” URIs in text messages (mobile short messages – SMS). This was actually a use case that i discussed with several IETF fellows during the development of the geo: URI specification – i’m happy that someone took the effort to write a formal specification.

The proposal got an amazing amount of press coverage, including articles on  New York Times, der Standard (german), Times of India, intomobile and various other news sites in the mobile and tech industry.

It’s nice to see how the design properties of the “geo:” URI (short, simple, human-readable) are the base for another simple and straightforward standard proposal. Let’s hope that mobile phone developers implement GeoSMS (and, hence “geo:” URIs) in their future products. The GeoSMS developers themselves have already created an Android application called “I am Here”. More details and the actual specification are available here:

GeoSMS – “geo:” URIs in text messages

RFC5870 – the “geo:” URI specification

“geo:” and SIP Location Conveyance

August 6th, 2010 by alex 1 comment »

“geo:” is getting more attention in other areas of the Internet Engineering Task Force. After the VCARDDAV working group has included “geo:” URIs in their revision of the vCard scheme, the SIPCORE working group is now discussing the use of “geo:” in their “Location Conveyance” draft.

SIP is the IETF’s protocol for establishing Realtime Application Sessions, and is very commonly used for Voice over IP. It has gained massive popularity in recent years, and is not just be used in VoIP-Software, but also in Public Branch Exchanges from various vendors, open source products such as Asterisk, Kamailio and a wide range of carrier products. SIP is the base for telephoney in the upcoming Next Generation networks such as LTE, and a major component of IMS systems. A good percentage of phone calls being routed between carriers as of today already uses SIP.

For those reasons, the IETF is looking into ways to embed location information into SIP messages. This is important for services such as Emergency Services, but can of course be used for any other realtime application that needs to transmit location information in its session setup. An example of that could be location conveyance between contacts in a social network, or applications for “checking in”, such as Gowalla and Foursquare.

The current version of the SIP Location Conveyance Specification uses “Content ID” URIs (besides “sip”/”sips”/”pres”) to refer from the new “Geolocation:” header to a MIME body part, which then contains the location embedded in a PIDF-LO Presence/Location document. Such a geolocation header (and respective body part) would look like this:

Geolocation: <cid:[email protected]>
     ;inserted-by="[email protected]"

   --boundary1

   <?xml version="1.0" encoding="UTF-8"?>
      <presence xmlns="urn:ietf:params:xml:ns:pidf"
          xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
          xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
          xmlns:gml="http://www.opengis.net/gml"
          entity="pres:[email protected]">
        <dm:device id="point2d">
         <timestamp>2007-12-02T14:00:00Z</timestamp>
         <status>
          <gp:geopriv>
            <gp:location-info>
              <gml:location>
                <gml:Point srsName="urn:ogc:def:crs:EPSG::4326">
                  <gml:pos>33.001111 -96.68142</gml:pos>
                </gml:Point>
               </gml:location>
            </gp:location-info>
            <gp:usage-rules>
              <gp:retransmission-allowed>no</gp:retransmission-allowed>
              <gp:retention-expiry>2007-12-07T18:00:00Z</gp:retention-
                            expiry>
            </gp:usage-rules>
            <gp:method>DHCP</gp:method>
            <gp:provided-by>www.example.com</gp:provided-by>
          </gp:geopriv>
         </status>
        </dm:device>
      </presence>
   --boundary1--

PIDF-LO allows for great flexibility of location types, can contain civic addresses, and extensive privacy rules. However, conveyance of a simple “point” type location could also be achieved by using the “geo:” URI in the Geolocation header directly as follows:

Geolocation: <geo:33.001111,-96.68142>

Which, obviously, would be much more compact, probably easier to parse, and not in the need of a seperate MIME body part.

However, the “geo:” URI specifically lacks privacy rules, because an URI itself does not identify a Target, but rather reflects just a physical location in space. In SIP Location Conveyance as a “GEOPRIV Using Protocol”, privacy is required.

There is currently a discussion going on the SIPCORE mailing list, and the proposal is that a “geo:” URI (when used in an “Geolocation” SIP header) would come with implicit default rules (currently under discussion whether those default rules would be GEOPRIV’s general default rules, or defaults specific to the use of “geo:” in the context of the “Geolocation:” header).

We’ll keep watching the discussion.

“geo:” and vCards

June 10th, 2010 by alex 3 comments »

vCard – the first spec to use “geo:”?

The first specification that is using the “geo:” scheme seems to be the revision of the vCard format. vCards are “virtual business cards”, and contain a multitude of contact information about a person or an organization.

vCard GEO property

The geographic location of a person’s office is of course one of those properties – even the original specification of vCard (RFC 2426) contained an “GEO” property (defined in Section 3.4.2). That property has a range of shortcomings:

  • There’s no way to specify altitude
  • the Coordinate Reference System is not defined (see here [PDF] why you should care)
  • Recommends to always use six decimal places (roughly one meter) rather than allowing for uncertainty values

New revision of vCard includes “geo:” URI

The current revision of the vCard specification (currently worked on in the IETF’s VCARDDAV working group) has changed the format of the “GEO” property. The new definition requires a URI rather than the lat/lon tupel as value, and notes in an example that the “geo:” URI scheme is “particularly well-suited”, although other URI schemes are allowed too. A example vCard using the “geo:” URI looks like this (edited for brevity):

BEGIN:VCARD
VERSION:4.0
FN:Simon Perreault
...
GEO;TYPE=work:geo:46.772673,-71.282945
...
CLASS:PUBLIC
END:VCARD

As outlined above, the structure of vCards allows to supply parameters for properties – in the example above, the GEO property is specified for the “work” location of the contact.

vCard applications become geo: aware

The integration of the URI scheme into the very popular vCard format means that very likely future revisions of vCard applications will be able to parse and use “geo:” URIs. Looking at the list of applications that support vCards, it looks like a bright future for our newly-born URI scheme.

RFC 5870: “A Uniform Resource Identifier for Geographic Locations”

June 7th, 2010 by alex 5 comments »

It’s Done.

RFC 5870 (“A Uniform Resource Identifier for Geographic Locations”) has finally been published by the Internet Engineering Task Force as “Proposed Standard”. The RFC contains the final, stable and approved IETF specification of the “geo” URI scheme – the 23 pages document is the result of 3 years of hard work, several presentations at IETF meetings, hundreds of email conversations about protocol details, discussing the proposal again and again, and – finally – interacting with not just one, but two sets of Area Directors in the IESG (Approval was perfectly timed with the end of the term of several Area Directors, so it had to be reviewed by the incoming IESG members as well).

Now that the “blueprint” part of the URI scheme is done, we’re looking forward to applications actually using the “geo” scheme (besides the ones we know of already). The URI scheme will also very likely see adoption in other IETF documents. If you know of an application that you think should support the “geo” URI scheme – let us know.

“geo:” Specification is Approved in the IETF

April 19th, 2010 by alex 5 comments »

Great news for the standardization of the “geo:” URI scheme: After three years of hard work, the Internet Draft describing the URI scheme was approved by the IESG on April 16th 2010. This means that the most important hurdle for “geo:” to become a (Proposed Standard) RFC has been taken.

It will take another 3 – 4 months for the document to be edited and a final RFC number to be assigned. But with the approval of the document, the current specification is stable, and can be used as a draft reference for implementations

There are currently two implementations of the “geo:” URI scheme out:

  • Andy Armstrong has written a “geo:” Perl Module available through CPAN.
  • The mobile Operating System “Android” contains support for the “geo:” URI out of the box (API Documentation) – unfortunately it’s not fully compliant to the latest specs. However, this is particularly exciting because it’s out there in millions of devices.

The specification is also already being used in other IETF work: For example, the updated vCard Specification recommends to use “geo:” URIs for the GEO property of vCards, and i’m sure we’ll be seeing “geo” URIs pop up in other specifications as well!

Perl module URI::geo

April 28th, 2009 by alex No comments »

Andy Armstrong of hexten has created yet another implementation of the “geo” URI scheme – this time it’s CPAN module for all the Perl fans out there: URI::geo provides a class to create and parse “geo” URIs from within Perl scripts – a simple example to create a URI from latitude and longitude information looks like this:

use URI::geo;
my $guri = URI::geo->new( { lat => 55, lon => -1 } );

The current module version 0.0.4 is available from CPAN here, API documentation can be found here.

Andy, thanks for implementing and getting the module into CPAN!

Android implements “geo” URI, IETF accepts draft specification

April 2nd, 2009 by alex No comments »

A new version of the “geo” URI specification was discussed at the IETF’s 74th meeting in San Francisco. As more and more applications pop up around the internet, the GEOPRIV working group recognized that there is definitely a need for a simple, short, but yet standardized way to refer to a spatial location.

Following the 20 minute presentation of the new draft version (which primarily incorporated some clarifications regarding WGS84, and the semantics of coordinates reflecting the poles), the working group was asked whether it would want to accept the “geo” URI draft as an official working group item.

The draft was accepted with overwhelming concensus, and will soon be renamed to reflect the working group adoption. That also means we’re a big step closer towards publication of the document as a draft standard RFC.
In other news, an esteemed colleage of mine discovered that Google’s mobile operating system “Android” already supports the “geo” URI! So anybody who happens to use such a phone (or has installed the emulator) can already make use of web pages containing “geo” URIs – once they are clicked, the phone starts the mapping application, and pans to the location indicated in the URI.

This is the first wide-spread implementation we’re aware of – see the relevant API documentation page. We’re quite excited, and looking forward to more platforms containing early implementations of the URI scheme.

Internet Draft updated to version 01

July 6th, 2007 by alex No comments »

The Internet Draft specifying the “geo:” URI has been updated, the new version is already available from the IETF draft archives.

The new version 01 (which is the second version after 00) removes the “query” part of the URI, as this was pretty much underspecified in the initial version, and has proven to be rather controversial. Since it does not actually identify the spatial location, but provides meta information (like location classification & type, preferred map scale) we decided to remove it from the specification.

Please note that this is work in progress, which also means that any feedback is appreciated.

Presentation at IETF 68, Prague

March 21st, 2007 by alex No comments »

IETF68 slidesThe Internet Engineering Task Force is currently hosting it’s 68th meeting in the Hilton Hotel, Prague, Czech Republic.

The geo: URI proposal is on the agenda of tomorrows session of the Geographic Location/Privacy working group:

  • GEOPRIV WG meeting
  • March 22, 2007, 9:00 – 11:30
  • IETF 68, Hilton Hotel Prague, Room “Congress I”

According to the agenda, the presentation of the “geo” URI scheme is scheduled for about 10:55.

For remote participation, session audio will be available via the IETF audio streaming effort (Channel 1), a supplemental Jabber discussion room at [email protected] can be used as a backchannel for remote participants to ask questions and provide feedback.

Slides of the presentation