[OSM-talk] Abandon all ways: a polemic

Laurence Penney 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 
street's segments.

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?

-- Laurence






More information about the talk mailing list