2007 (old posts, page 12)

A GML Critique

Charlie Savage writes:

In my view, the fundamental premise of GML is wrong. The ability to create custom data models is an anti-feature that makes integration between different computer systems impossible because it assumes that those systems can actually understand the data.

I read, in a very recent GeoRSS mailing list thread, the assertion that GML is the lingua franca of geospatial information on the Web. It's just not true anymore, if it ever was.

Update: Bryan Lawrence has a rebuttal.

Comments

Re: A GML Critique

Author: James Fee

"GML is the lingua franca of geospatial information on the Web" Are you kidding me? Who would say such a thing?

Re: A GML Critique

Author: James Fee

Nevermind, I Googled lingua franca and GML and I get Ron Lake, no surprise there.

Re: A GML Critique

Author: Sean

James, you should put Charlie back on the Planet Geospatial roll. Maybe give him the slot of the guy who wanks endlessly about Twitter.

Re: A GML Critique

Author: Matthew Giger

Even the new WFS simple shows how non-simple this format is to read from and write to. Sadly KML is the only viable option now.

Re: A GML Critique

Author: James Fee

@Sean, yea I have no idea why Charlie isn't in there. Making the change now.

Re: A GML Critique

Author: Charlie

Sean - thanks for the link and comments. James - thanks for adding me back to planet geospatial.

Re: A GML Critique

Author: Bryan Lawrence

Thanks for the heads up, but I don't think it's that straightforward!

Blogosphere and Ivory Tower

Tom Kralidis points us to a new book, and I was struck by how few of the authors I know by name. Am I not getting out enough, or are these folks not taking their ideas to the web like they should?

Comments

Re: Blogosphere and Ivory Tower

Author: James Fee

You and me both Sean. Ivory Tower is a good post title IMO.

Re: Blogosphere and Ivory Tower

Author: Allan

hmm. Michael Gerlek - OGSeo guy. Mike Dean - top notch DAML/OWL type person, Jim Farley - long time geo guy who's been around, Tom Kralidis - knows his stuff. If the others are like these guys, it's not ivory tower. It's more likely that they travel in different circles. Don't get caught in the trap of "if I'm not reading their blogs they must not be well known". That being said, I'm leery of these kinds of books. They tend to be designed to do one thing - make money for the publisher.

Re: Blogosphere and Ivory Tower

Author: James Fee

Who is this Allan guy?

Re: Blogosphere and Ivory Tower

Author: GeoMullah

I feel like a shut-in these days. James knows why. . . It's my friggin' day job.

Re: Blogosphere and Ivory Tower

Author: Allan

Hey, and Jason Birch has just posted a pointer to a map of this thread.

Re: Blogosphere and Ivory Tower

Author: Sean

Usenet as a submerged island? That's funny.

Stop Using Mapscript: Almost There

MapServer revision 6064 (my first contribution in quite a while) has an example of loading a mapfile from a string: fragments.txt. We're getting very close to the point where we can practically stop using mapscript. Users, feel free to add comments to this feature's story.

Comments

Re: Stop Using Mapscript: Almost There

Author: Al

I am just getting into MapServer and have found your posts to be very enlightening. I have only gotten to the point that I can see how I would use MapScript to overlay a map with icons positioned via data in a MySQL DB. Is it possible to duplicate that sort of functionality with map files? Any pointers on where I could see examples of that? Thanks, Al

Re: Stop Using Mapscript: Almost There

Author: Sean

Al, you can use the mapfile language to define an OGR wrapper for your MySQL table. Google for "mapserver ogr virtual mysql" and you'll find examples.

Made it

I just finished one the most challenging and rewarding 8 days of my life as the single parent of an 18 month-old. Whew. Single moms and dads of the world, I salute you!

Comments

Re: Made it

Author: Yves Moisan

Indeed. Investing into 1) oneself (keep runnin' and climbin' pal) and 2) one's family/couple [investment mode TBD by yourself :-)] pays off in ensuring you'll never become a single parent ;-)

Only one?

Author: Gari

Well, we recently discovered that two teams one kid-one parent is much more performing than two parents-two kids. But congratulations, anyway! :-)

Our Friend, the Atom

I too think so. Dear geospatial community, please do not propose yet another special protocol until you can demonstrate that Atom won't work.

Comments

Re: Our Friend, the Atom

Author: Allan

OK. I'm excited. But I can't shake the feeling of square peg and round hole. APP is brilliant at what it does, but like any decent 21st century spec, it only does a very little bit. APP is a great pattern for dealing with feed-like data. I.e. "here's a feed of the ancient coin discoveries" or "here's a feed of real-time earthquakes". But it's not a great pattern for dealing with "get me the paved roads in california." For that we're going to need another pattern.

Re: Our Friend, the Atom

Author: Allan

One quirk baked into APP is that you MUST return things ordered by time (APP 10.1) if you're returning partial collection lists. Another quirk is the notion of categories. These are the *only* metadata elements treated specially in APP. Again, I think APP is good for what it is. Maybe the best thing for the GIS community is to take a long, hard look at Section 5 of the APP draft and come to grips with what REST is. And, to be slightly pedantic - Atom is a format. Atom Publishing Protocol is a protocol.

Re: Our Friend, the Atom

Author: Sean

Allan, why isn't APP -- or something from the same abstract super group of protocols -- a good pattern for getting representations of entities in a spatial context? I don't accept "spatial is different because it is" anymore.

Re: Our Friend, the Atom

Author: Allan

Note that I didn't say APP is not "a good pattern for getting representations of entities in a spatial context". I said it was not a great pattern for a certain class of queries. Mostly what I'm trying to say is that as a pattern, it might have its limits. I'm not against trying to bump into the limits. It's a gut feel. I'm also not saying that spatial is different. I would have the same reservations about using APP to find all the sentences in all the books at Amazon that have the words "if" in them where the preceding sentence had the word "the" in it. To do that you'd (a) have to define a query protocol that APP does not give you, and you can imagine that the result set could be quite huge. Most importantly, the things that APP makes "first class" - time and categories, are irrelevant to the problem of searching a text corpus. Again, I'm not saying APP is not a good protocol. I'm saying I get the sense that it should properly be viewed as a component, not as the salvific balm to all of geospatial's prior sins.

Re: Our Friend, the Atom

Author: Allan

I'm actually quite enthusiastic about the winds of change that are blowing through the geo hacker community. The current debate/investigation of REST, things like tilecache, featureserver, geojson, rtree, etc. will, in combination, blow away layers of crud.

Re: Our Friend, the Atom

Author: Sean

Well, there's never a silver bullet, but switching to protocols that are of the web is a big step in the right direction.

Restful Versioning

In a discussion of restful features the other day, a good question came up: where's the back button? POST and PUT are easy to understand, but how about rolling back or undoing changes? I have a simple solution which is going to look pretty familiar to Subversion users.

Let's beginning by modifying a feature:

PUT /features/1
{ ... }

The curly braces and ellipsis stand in for a JSON object, the details of which aren't important now. From a versioning feature resource, I'd want to get a response like:

200 OK
feature: http://example.org/features/1
revision: http://example.org/features/1/revisions/1

Representations of the feature and its most recent revision are identical. Want to rollback this change? First, let's get the previous revision:

GET /features/1/revisions/0
{ ... // revision 0 }

and then put it back:

PUT /features/1
{ ... // revision 0 }

With the response:

200 OK
feature: http://example.org/features/1
revision: http://example.org/features/1/revisions/2

That's the restful equivalent of:

$ svn merge -r 1:0 http://example.org/features
$ svn commit

OSM, by the way, has node history, but no URIs for node revisions.

Comments

Re: Restful Versioning

Author: Christopher Schmidt

Actually, there's a strong reason that I don't like this: this is less like: svn merge -r 1:0 http://example.org/features and more like: svn merge -r 1:0 http://example.org/features/1 How do I roll back an entire feature storage by a single revision? Is the version for the feature per item, or for the whole repository of features? I think OSM's model here is lacking: what they really want is the ability to do multiple edits in a single transaction, and to roll them back just as easily -- but maybe this doesn't apply in other arenas.

Re: Restful Versioning

Author: Bill Thorp

"I have a simple solution which is going to look pretty familiar to Subversion users" Seeing that WebDav is shall-we-say "RESTful", and Subversion relies on the Delta-V extension to WebDav, perhaps... oh forget it.

Re: Restful Versioning

Author: Sean

I'm a believer in repository-wide revision numbering. Maybe /features/tags/foo/1 is a better URL than /features/1/revisions/42. But you can't roll back changes to many features at once in a single go without using yet another protocol to bundle the changes. Personally, I'm sick and tired of new procotols. What was that, Bill? Put all our features in Subversion (as JSON or GML) with auxiliary spatial and text indexes? Maybe we will :)

Re: Restful Versioning

Author: Bill Thorp

Proxy Subversion with a spatial transformation engine and I'm sold. "layer/1/feature/1/asGML" or "layer/1/features/1/asWKT" Heck, you write the transformation engine and I'll write the proxy for you!

Feature Paging

I've just been hand-waving, but Chris Holmes is getting ready to blaze a trail for GeoServer from WFS to restful features. He, more than anyone, has clued me into the significance of paging links for GIS applications, and his post has a good introduction to the concept.

Feature paging should let us reduce the latency in some web GIS applications. Break a huge query response -- and I've seen the GeoServer bloggers mention gigabytes of GML -- into chunks of N (hundreds? thousands?) features, and you can render or analyze chunk i while chunk i+1 is coming through the intertubes.

Paging helps on the server end as well. An intriguing MapServer development proposal to allow XSL transformation of outgoing features was just ditched because WFS doesn't accomodate chunked responses, and it seemed too expensive and slow to build and transform an entire, potentially huge XML document before even beginning to send it. XSLT of reasonably-sized chunks, each with a link to the next, is rather more feasible.

The only thing in Chris's post that I'll dispute is his exaggeration of my credentials. I'm just an HTTP enthusiast, but I do see a huge potential for REST in the geospatial community and I'd like to help realize it.

Novelty of REST and GIS

Christopher Schmidt is exactly right:

(Note that I did this before I even saw posts about it -- I think this is just more evidence that all the things we're talking about here are well understood and not novel, though it is interesting that we're all implementing them at the same time.)

Being the first geospatial project to jump on an already filling bandwagon, 6-7 years after the publication of RFC 2616, is really no big deal. The interesting question is why it took us (the industry and community) so long. Personally, I didn't get what REST was about until I started reading about atompub and Rails.