[OSGeo-Standards] Was: "file" formats. Is: GeoWeb

Rushforth, Peter Peter.Rushforth at NRCan-RNCan.gc.ca
Tue Jul 9 12:14:15 PDT 2013


tl;dr ... apologies!  I'm keeping this to the standards list out of respect for people's in-baskets.

I did not mean to instigate a discussion of file formats.  I have my favourite formats too!  And, I don't want to lecture expert technologists on technology, so I apologize if I seem to be doing that...

Fifteen years ago or so, I thought "Web" Map Service was going to be "it".  It was how I understood you put maps and the Web together. But, it turns out, there's not enough Web in that or any other geo service I know of.  The Web has gone on to scale up exponentially in the interim, leaving behind those parochial services we thought were "Web".  Yet we have kept on repeating the same pattern.  More of the same is not going to help.  

REST built the Web, and the GeoWeb needs REST in order to be built.  Without REST, there will be no 'Web' in Geo.   

The reader's digest nature of REST, as originally specified, and why it is important for geographic services:
Hypermedia As The Engine Of Application State is the key constraint identified by Fielding which constitutes REST.  Everything else is just not REST.

The idea behind that constraint is that the specification of a format which contains links (hypermedia), can be 'easier' to standardize than interfaces.   The format can then be served by many servers, and consumed by many clients.  The contract is not between the client and the server.  There are two contracts, one between the client and the format and another between the server and the format.  The result is the de-coupling of client and server.  If I change my web site, you can still read it, iff I respect the contract between the server and the format (html).  

In order to 'be RESTful', a client application reads the "file" (really the entire response, including headers) which is transferred to it over HTTP, and, discovering links therein, either follows them, thereby replacing/changing its state, or loads the resource, augmenting/changing its current state.  

To try to shorten a long story...

Currently the only RESTful system which matters is the html Web.  

It is my personal professional belief that the only practical way to build a GeoWeb is to add map (client) semantics to directly into html, and thereby build it (html) into the GeoWeb. To be clear:  add a "geomap" tag to html. Browsers already have a contract with html.  In order to create a GeoWeb, we need to change html and concommitantly, browsers, to a new version of that contract.   We need to specify a browser-provided (js) API for maps around a "geomap" tag.

The interface is http.  Browsers are not going to implement your interface.  The only interface they're going to implement is GET.  Browsers are not going to guess / build URI from component hierarchies.  They want links, preferably fully formed.

The service format consumed by the html map client: the only practical way to do this is with hypertext.  The service format(s) must start with hypertext.  I suggest Atom, because it is a  widespread (community) standard hypertext base, having (appropriate) collection/member semantics.  GeoRSS(Atom)-GML would be an excellent extensible starting point for a geo service format.    It is already gaining traction in the OGC.  I am not a tiling expert, but my instinct tells me that tilesets/tiles would have good collection/member semantics.  What would be needed would be suitable hypermedia constructs for map navigation: link relations (e.g. "east", "west", (c.f. Allan Doyle geo-web-rest)..., "zoomin", "zoomout" etc). Possibly URI templates (they are hypertext too, if the client reads them).

Regarding the contract between servers and format. Web servers already serve arbitrary html.  So that is no problem.  But for Web scale, I suggest an actual "mod_geomap" for apache, which could serve the contents of a tiled filesystem as feeds.  The feed format is the contract for both the server *and* the html client.  That's not to say there could not be a plethora of servers.  There could be, just as there are tomcats, jettys, etc. there will be geoservers, mapservers, arcgis servers, whatever.  Respect the contract and you get to play!

That's my view of the needs for (+/- open source) geo software and open standards.  

Regards, and thanks for any feedback,
Peter Rushforth

N.B. I made a presentation on this topic to the OGC Mass Market DWG in Dec 2009, but the artifacts seem to be read-protected.  If anyone is interested let me know. 
P.S. If you reply I may not (be able to) respond until tomorrow.

More information about the Standards mailing list