[OSM-dev] likenesses

Dave Stubbs osm.list at randomjunk.co.uk
Thu Oct 1 11:06:48 BST 2009


On Thu, Oct 1, 2009 at 3:25 AM, SteveC <STEVE at asklater.com> wrote:
> I want to revive a very old idea - tag equivalences. It might be
> solving a problem that doesn't exist or someone might have done it and
> I've missed it.
>


Closest I got was the osmosis tagtransform plugin [1].

I made that because people keep insisting on tagging things like
highway=path;bicycle=yes|designated, which is essentially like a
highway=cycleway and we want those rendered on the cycle map. Now for
various reasons, mostly due to laziness, version mismatches, and not
being entirely sure about what the different path combinations mean,
this has never been deployed on the cycle map for real, but anyway.

What I was originally thinking was that what would be nice (and
therefore almost certain to be never developed) would be a proper
tagging app on the OSM website which let people describe their tagging
schemes. Part of that would then be how to get from one scheme to
another. In thinking how you might do that some of the weird and
wonderful ways that schemes differ come to mind and tagtransform was
born.

Back to the likenesses, saying an autobahn is like a motorway makes
sense, is a good start, but very limited. One of the first problems
you hit is what "like" actually means. In the UK a lot of footpaths
look a lot like a lot of bridleways. So therefore highway=footway is
like highway=bridleway, one allows horses but the other doesn't
otherwise they're mostly the same. But a lot of foot paths are like
cycle paths, which are a lot like tracks which are a lot like service
roads which are a lot like unclassified roads. Anyway it turns out
that just about all roads and paths are transitively like each other
which is a little confusing and not a very useful result. With the
likenesses XML you could sort this out with overlapping likeness
groups but it quickly becomes a problem for renderers if they're
trying to find things which are like a footpath, and things which are
like a cycle path, because lots of things are like both and you don't
know why.

So the way in which something is alike is actually very important.
What may be a better idea is object hierarchies -- ie: is-a links or
mediawiki-like categories.

This way you end up doing things the other way round...

<feature>
   <tag k="highway" v="motorway"/>
   <is-a>road</is-a>
   <is-a>major-road</is-a>
   <is-a>biggest-roads-we've-got</is-a>
   <is-a>road-with-speedlimit</is-a>
   <is-a>road-which-meets-uk-reg-blah15</is-a>
   <is-a>road-which-meets-eu-reg-blah01</is-a>
</feature>

<feature>
   <tag k="<insert german for road or whatever>" v="autobahn"/>
   <is-a>road</is-a>
   <is-a>major-road</is-a>
   <is-a>biggest-roads-we've-got</is-a>
   <is-a>road-which-meets-de-reg-blah97</is-a>
   <is-a>road-which-meets-eu-reg-blah01</is-a>
</feature>

(that's very flat, there's no reason you couldn't actually structure
it a bit by introducing the categories as objects with categories, and
those is-a parts could easily be OSM tags specifying actual
speedlimits etc with the expectation these represent the defaults)

So now the renderer can just go for the "biggest-roads-we've-got"
category, and render anything that matches.

And surprise surprise it ends up looking a heck of a lot like an
editor presets description file [2].

And that fact is interesting because of the question: why didn't we
just tag all the motorways like that in the first place? Screw
highway=motorway, just add
road=yes;major_road=yes;biggest_road_we_have=yes... I can think of a
couple of reasons.
 - we're all lazy and don't want to type it -- editor presets can
negate that one
 - the german government decides to impose a speedlimit so we
immediately get to change the autobahn definition rather than retag
all the objects using an evil bot

One of the big questions is whether all of this would make life easier
or harder for the renderers -- it would definitely raise the tech
start bar.

Dave


[1] http://wiki.openstreetmap.org/wiki/Osmosis/TagTransform
[2] See the potlatch 2 map-features.xml
http://trac.openstreetmap.org/browser/applications/editors/potlatch2/resources/map_features.xml
 -- but there you're limited to one category because it's more for
menu structure than proper categorisation.




More information about the dev mailing list