Under the Influence of Metcalfe’s Law

Its not every day someone takes the time to write me an open letter – I have to say its kind of fun. Brian added some additional thoughts to our ongoing conversation about GML. In truth, this is where blogging breaks down a bit, it would be much easier to sit down in a room for an hour and have a great in-depth technical discussion (of course, then our discussion wouldn’t be available for the whole world to see which is significant downside).

Since its a bit hard sifting through where things stand in a long discussion, let me recap the points I think we agree on:

  • GML is a toolkit that provides rules for translating your proprietary data model into XML
  • Having translated your data model into GML/XML, it is then necessary to code both clients and servers to understand it

Where we disagree is whether this is a good idea or not.

I see at least three very different use cases here:

  • I want to share within my own organization
  • I want to share with a preselected set of outside organizations
  • I want to share with the world

I’ll agree with Brian that for the first two use cases, GML 2 (and 3) provides a workable solution (although I think GML 1 was a better solution and that the overhead of GML 2 is prohibitive).

Its item #3 though that really matters. One of the things that makes the Web different is Metcalfe’s Law (and Reed’s Law) becomes predominant – the value of something becomes much more important the more people use it. Which leads me to the conclusion that everyone has to agree to a shared data model and format. Otherwise you end with thousands of one-off data integrations, which does nothing to solve the general problem.

There are obvious downsides to agreeing to a general data model – it will always be a lowest common denominator and wont work for many complex integrations that live in the realm of the first two use cases. But there is an obvious upside – it is the only thing that has any chance of working out on the web. If you don’t agree, then please show me a real-life example that disproves it.

So where does that leave us? I believe that GML as it is formulated has no chance of success out on the Web because its simply not designed for it. The obvious consequence is the emergence of the Atom / GeoRSS combination and KML. And truth be told, those standards solve the problem of rendering maps made up of multiple geographic data sources well enough.

What they don’t solve is exchanging attribute data between systems. And this leads right into the hornet’s nest of the Semantic Web and data modeling – no one has every come up with a solution to this problem and I doubt anyone ever will.

So faced with that daunting task – why not try the simplest thing that could possibly work – which ironically was more or less GML 1:

<Feature typeName="Road">
  <property typeName="classification">motorway</property>
  <property typeName="number" type="integer">11</property>
  <geometricProperty typeName="linearGeometry">
    <LineString srsName="EPSG:4326">
        0.0,100.0 100.0,0.0

In today’s world, I’d modify this a bit and start with Atom, add in GeoRSS, and then add in an new namespace that encodes properties like above. And I’d stick the same stuff in the KML metadata tag.

Now, I don’t expect this to do diddly-squat for machine to machine integration. What I do expect it to do is make it easy for clients to show a nice property browser to users when they mouse over a feature on a map. And for the web, that’s good enough since it all comes down to humans in the end anyway.

  1. May 10, 2007

    Charlie – I’ve been following you posts about GML over the last few days, and the responses from Bryan’s Blog. The debate is all too familiar – especially re the Astronauts and the Standards Police. See here and here .

    I especially like the “dropsondes” example that Bryan makes – hardly a common usage example.

  2. Charlie Savage –
    May 11, 2007

    Hey Nick – Great links, and great blog (I saw your [post](http://www.blacksworld.net/blog/?p=104) about GML a bit earlier today).

    Are you involved with Rails and OpenStreetMap? All the MapBuzz stuff we’ve been doing is using Rails and PostGis – it would be interesting to compare notes….

    Agreed on the example Bryan used – it seemed a bit esoteric to me also.

  3. Bryan
    May 17, 2007

    I understand why you think my example was esoteric, but it was deliberate. That sort of stuff really is core for me (and plenty of others)… so what part of it do we have in common, and how should we deal with the part in common? What common language do we have that is available? Yes KML will get us some places … but I would argue that GML can get us further. But we can agree to disagree 🙂 Like I said in comments to Nick and my original post: it’s all about use cases 🙂

    And one of personal bugbears: geo-integration is NOT ONLY ABOUT MAPS 🙂

  4. Bryan
    May 17, 2007

    (sorry I managed to get my own website link wrong …)

  5. Charlie Savage –
    May 22, 2007

    Hey Bryan,

    Yup, its is all about use cases.

    Geodata is particularly interesting because its fairly easy to intergrate systems if all you care about is making maps. But once you go beyond that, its become fiendishly difficult.

    As far as a common language for what you need – GML is an obvious choice. GML 1 is another, RDF another and I suppose if you really wanted to torture yourself then XMI. And undoubtedly there are others.