intertwingly

It’s just data

Which Way Is Up?


Nigel Tao: we now support GeoRSS as a data format for geographic content in Google Maps.  We want to enable users to create data in whatever format is most convenient for them, and feel that by supporting both KML and GeoRSS we can enable a wider variety of people and applications to contribute content to Google Maps.  We’ve built support for the Simple, GML, and W3C Geo encodings of GeoRSS — all you have to do is enter the full URL of a GeoRSS file into the Maps query box to load the file.  For example, take a look at SlashGeo’s GeoRSS on Google Maps.

That support is certainly cool, but GeoRSS was news to me, and the Feed Validator previously only supported the W3C Geo encoding, so I added the examples from the GeoRSS documentation as an initial set of test cases and set off to add support to the validator.  And thus begins the journey...

Doubling back to validate the SlashGeo feed, and the result is two warnings.  The first represents the transplanting of the controversial RSS 2.0 practice of double encoding titles as HTML — which is discouraged by a number of Google, Microsoft, and Mozilla tools — into the context of RSS 1.0.  The second is the use of a comma as a separator for latitude and longitude values, where the spec requires whitespace.  Another place in the spec requires a [single?] space.  A third place in the documentation indicates that the preferred serialization of this uses a [single?] space to separate the two values.

Update: this latter issue has been addressed in the slashgeo feed.  Thanks!

OK, but the SlashGeo feed is not only supported by Google, but held up as an exemplar, so I’ve downgraded the message that is produced when a comma appears where a space ought to be to a warning.

So, just when I think I’m done, and get ready to commit these changes, I find this:

Simon Willison: My photos tagged “cheese” on a Google Map. You can paste a Flickr GeoRSS feed directly in to the Google Maps query box

Validating that feed produces two errors.

For starters, does anybody know where dc:date.Taken is defined?  If there is documentation, I will add support for it in the Feed Validator.

Update: as spotted by Kevin H, this is valid "Qualified" Dublin Core, and I’ve updated the feed validator to accept it.

But the more interesting one is the second error.  It points to georss:point and says that geo:point is undefined.  Looking further, we find that while the GeoRSS spec suggests:

xmlns:georss="http://www.georss.org/georss"

and the W3C Geo spec suggests:

xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"

... the Flickr feed contains a mashup of these two:

xmlns:georss="http://www.w3.org/2003/01/geo/wgs84_pos#"

These two namespaces aren’t compatible.  The W3C Geo spec defines a Point with a capital P and utilizes nested child elements (per this example), and Simple GeoRSS defines a point with a lowercase p, and omits the child elements (per this example).

If anybody can shed any further light on this, please either leave a comment here or on the feedvalidators-users mailing list; the latter I am seriously considering shutting down and moving the whole Feed Validator project to Google Code as the mailinglist is being overrun by spammers.