[Tagging] My "weirdly unnatural aversion to relations"

Martin Koppenhoefer dieterdreist at gmail.com
Mon Oct 1 08:18:06 UTC 2018

Am So., 30. Sep. 2018 um 05:01 Uhr schrieb Bryan Housel <bhousel at gmail.com>:

> On Sep 29, 2018, at 6:56 PM, Paul Johnson <baloo at ursamundi.org> wrote:
> I honestly don't understand why, ten years since it's introduction as
> OSM's third basic primitive, there's still this weirdly unnatural aversion
> to relations, even though they're quite a powerful primitive in our toolbox.
> From my own perspective as the main developer on the main editor for OSM,
> the reason I don’t like relations very much is because:
> - every type of node basically works the same.
> - every type of linear way basically works the same.
> - every type of polygonal area basically works the same
> *- every type of relation is an edge case that requires special code in
> order not to break.  *

This is somehow misrepresenting the status quo, in particular as there is
no such thing as a "polygonal area" or a "linear way" object type.
Not sure what "type of node" means, is this to be read as differently
tagged nodes, or nodes in different context? A node on a way has different
implications than a POI node inside a polygon, than an isolated tagged node
without an enclosing polygon for instance, or place areas within a place
node inside (this is currently discussed) might have to be treated
differently than place ways where no place node is inside.
Ways can be either linear objects or polygonal features, and we can only
guess about this, or rely on explicit area=yes/no tagging in the few cases
where it is present (980 561 times on ways, or 0.2%, one third of them in
combination with highways), linear ways with direction dependent tags
(retaining wall, coastline, oneway, incline, forward/backward/left/right
....) have to be treated more complexly than those ways without them, etc.

Yes, every type of relation is a new datatype (with some being very
similar, like multipolygons and boundary relations), but all of those which
are widely in use, are required to map a certain kind of thing. Unlike the
interpretation of nodes and ways which is more complex than what it might
seem at first glance, the interpretation of relations seems more
straightforward because they are explicit about how they should be read
(tag "type", roles) and they are taylored around the specific usecase for
which they are intended.

I would expect from any editing software that aims to be an universal
OpenStreetMap editing tool, that it strives to handle (at least) the most
used relation types reasonably well, or has good arguments why it doesn't
for a specific type. For reference:


> Anyway, I’m not totally against them, but every one of them is different
> and I can't spend weeks or months supporting every kind of relation or
> public transport schema people dream up unless it’s super critical for
> building a useful map (like turn restrictions).  They are really best for
> features that can not be mapped any other way.

Yes, relations should only be used to map relationships that otherwise
cannot be represented. And of course nobody is asking you to implement all
of these on your own.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/tagging/attachments/20181001/8af2ef0c/attachment.html>

More information about the Tagging mailing list