[OSM-talk] Abandon all ways: a polemic
lorp at lorp.org
Mon Mar 19 19:07:11 GMT 2007
The proposal of John McKerrell (2007-03-16) to use tags to avoid the
new layer of superways reminded me I'd been wanting to get a clear
explanation of why we have ways in the first place.
What is so bad about attaching tags to segments?
And abandoning ways altogether?
Instead, we'd add multiple "name=High Street" style tags to that
One geeky horror of the idea may be that lots of segments with,
broadly, the same set of tags is a bad idea in terms of data
redundancy. The two obvious problems are a bloat in data storage needs
(we'd store for some ways 100s of times the data in key-value
strings), and an increased risk of lack of consistency (one segment
marked Main St instead of Main Street).
But can't this be sorted out by, at the back end, having good data
compression, storing identical strings just once; and at the front
end, giving editing apps easy ways to copy & paste a set of tags from
one segment to others, and to encourage easy re-selection of strings
from the locality?
Keeping ways might be justified if it helped the noble causes of
route-finding and map rendering. But on balance, ways don't help:
directions algorithms need to consider every node of degree >2 as a
potential turn, so must work at the segment level; rendering street
names is _a_little_bit_ easier to code if the segments are nicely
ordered, but that adds a significant burden to the person drawing the
roads in the first place.
The common problem of giving a road multiple names needs fixing. Our
main editor, JOSM, hasn't cracked it. I simply don't think I'll get
around to tagging correctly the single stretch of road near me that is
Gloucester Row, Suspension Bridge Road and the B3129.
Non-contiguous roads have also been mentioned in this thread. Segment
tagging removes the question of whether to keep such roads as one way
or two. The problem of complex estate street layouts all having the
same name also goes away. Keeping these things as ways invites tagging
problems that take effort to sanitize.
Bus routes were also mentioned in the same thread. I don't like the
idea of adding ways for these. What's up with adding a "bus_route=37"
tag to each of the segments the bus runs through? (Ok, some
directional or segment ordering stuff might have to be added, but
segment tags are the perfect place to add that too.)
Ways demand taggers follow rules, seemingly made for the convenience
of developers rather than ease of tagging, rules that aren't needed
with a wayless data structure. Superways are a hack upon a hack that
will give us more grief as we get in a muddle just where tags come
from. They add complexity when a move in the other direction makes
using OSM data simpler and does no damage. Oh, and how many
hierarchies of superway should be allowed? Superduperways anyone?
More information about the talk