I had a discussion about topology in OSM the other day at the local meetup. About how roads nodes shouldn’t be shared with surrounding areas as such:

Grass Water Road natural=waterwater=* natural=grassland highway=*

I wanted to explain why I now also think that way. But before that, let’s talk about why it would seem to be the right thing to do at first glance.

Personally, I was enclined to do so in order to follow the “one feature, one OSM element” practice. Because the two areas are separated by the road, it would make sense that the way they share should be the road. Especially since in OSM, roads are tagged as ways, and less commonly as areas.

But this would be wrong, because the road would either have no width (unrealistc), or it would overlap with the surrounding areas. The greater argument is that roads are tagged as ways that represent the middle of the road. If you consider that each node represents a point in space, then the road nodes should represent the middle of the road, and area nodes should represent the edges of the road. Like this:

natural=grassland natural=waterwater=* highway=*

Now, one could also argue that, for example, a barrier which is mapped as a way, has volume, and thus shouldn’t be a way. I think that is a valid concern, but in practice, they are either used to delimit areas, in which case you can consider that they belong to the area. Or they are not linked to any other object, so it doesn’t really matter.