[Tagging] Trolltags

Mateusz Konieczny matkoniecz at gmail.com
Mon Aug 31 11:41:57 UTC 2015

On Mon, 31 Aug 2015 01:29:45 +0100
"Dave F." <davefox at madasafish.com> wrote:

> What's a 'trolltag'?

It is not OK to use one tag (for example amenity=hotel) and add second
tag that negates or massively change its meaning (for example adding
involuntary=yes to amenity=hotel instead of using amenity=prison).
Additional tags should clarify meaning of main tags rather than negate

In general, any tag tag must be processed to avoid producing false or
invalid data is a trolltag.

For example somebody wants to produce map of cycleways. Simply
processing highway=cycleway and highway=path with bicycle=designated
should be enough. Data consumer in that situation should not be
expected to check for "proposed=yes", "demolished=yes",
"construction=yes", "completely_fictional=yes" or "end_date=1990".

Obviously, one may want to look for more detail - for example to show
proper map of cycleways one would want to check also access, surface,
oneway and other tags. But again - segment of cycleway destroyed in
landslide should be removed from map rather than tagged as
[highway=cycleway, surface=giant_gaping_hole, smoothness=impassable].

Adding tags like proposed=yes is a really poor idea. In case of data
consumers not supporting them it will lead to invalid and highly
misleading data. And data consumers supporting completely broken
tagging schemes (like [highway=tertiary; construction=yes] instead of
supporting just [highway=construction, construction=tertiary])
encourages usage of this tagging method. The danger is that with more
and more data tagged using trolltags other data consumers will either
be forced to add support for trolltags or stop using OSM data.

And possibilities for trolltag are endless. Lets say that somebody
wants to display existing shops and support all tagging schemes. Good
luck with filtering out proposed=yes, abandoned=yes, vacant=yes,
demolished=yes, construction=yes, empty=yes, ruins=yes, parsing
start_date and end_date etc etc.

Some real examples:

http://www.openstreetmap.org/way/36478401 - there was a building. Then
it was demolished. But somebody, instead of deleting it from OSM (or
maybe temporarily converting it into note="there was building here now
it is demolished") decided to add demolished=yes.

http://www.openstreetmap.org/relation/1918067 - railway=route tagged on
highways and footways. To detect that this is not a railway route but
original research about line that was closed over 80 years ago one
would need to process "note=abandoned railway" or

In many cases (like this two cases above) correct mapping is no mapping
whatsoever. What existed in past and is not existing now should not be
mapped in OSM (see http://www.openstreetmap.org/welcome - "What it
doesn't include is opinionated data like ratings, historical or
hypothetical features, and data from copyrighted sources.").

In other cases objects should not be deleted but retagged. For example
in really rare cases mapping proposed roads makes sense. Maybe some
proposal for constructing footways are also verifiable. But in that
case use [highway=proposed, proposed=footway] rather than
[highway=footway; proposed=yes]. At least normal data users will not be
mislead into displaying proposals as reality. (and yes, somebody did it
- see http://www.openstreetmap.org/way/53821342 ).

It is OK to map objects under construction. But [highway=footway;
construction=yes] is the best method to irritate data consumers (real -
Use [highway=construction; construction=footway] instead.

And good luck with interpreting [construction=yes; railway=tram_stop;
start_date=2012]. Is it construction that was supposed to end in 2012?
Is it construction that was supposed to start in 2012? And almost
everybody will process it as an existing tram stop. It would be better
to avoid mapping
until it was really constructed (or use something like
[construction=tram_stop, end_date=2012])

Note that some tags may be OK or trolltag depending on how it is used.
For example abandoned=yes. It is perfectly OK to add it to building -
after all, abandoned building is still building. But using it on
shop=supermarket to indicate that shop is no longer operating and it is
impossible to buy anything there (in other words - it is no longer a
shop) is not OK and should be tagged in proper way (typically - by
deleting shop=supermarket).

Disclaimer - trolltags are frequently not processed and ignored. As
result it is typical that [highway=motorway, construction=yes] is no
longer under construction and may be used. This type of issues as
usually requires survey on the ground to be properly fixed.

And you may use this overpass query to detect more in your region -
http://overpass-turbo.eu/s/bcS (it includes tags that nearly always are
trolltags - but certainly some false positives will appear. For example
vacant=yes is fine for building).

Content of this mail is also posted on

More information about the Tagging mailing list