OpenStreetMap

Trolltags

Posted by Mateusz Konieczny on 31 August 2015 in English. Last updated on 24 July 2023.

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 it.

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, highway=path with and standard access tags should be enough to avoid listing nonexisting ones. 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:

https://www.openstreetmap.org/note/3796521 - 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. Or existing building carries 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 “railway:end_date=1931”

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 - see http://www.openstreetmap.org/way/281018186#map=19/51.50653/-0.01904). 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 http://www.openstreetmap.org/node/1049342953#map=19/53.47988/-2.15500 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).

EDIT: https://wiki.openstreetmap.org/wiki/Trolltag was created (see https://wiki.openstreetmap.org/w/index.php?title=Trolltag&action=history )

EDIT2: 2023-07-24: some examples were updated as links become confusing

Discussion

Comment from redsteakraw on 31 August 2015 at 14:17

I have been tempted to add bullshit tags to homeopathic and psychic establishments. bullshit=yes . Would it be a troll tag, well I am leaning towards no as if their practices weren’t bullshit they would be part of modern medicine or at least one would have claimed the James Randi $1000000.00 prize.

Comment from redsteakraw on 31 August 2015 at 14:30

Some of these edits would be fine if they contributed to the open historic map. I would suggest a script that sends a message to users that add demolished=yes or other historic tags to go to OpenHistoricMap. I wouldn’t ascribe troll behavior to this as it may just be ignorance. These were features people cared about and now they are no longer there and they may have added the tags so they can hold onto the memory of the places while noting it was no longer there. It would be more productive to help channel their knowledge of historic or places to contribute to a project that welcomes such information.

Comment from TheSwavu on 1 September 2015 at 00:09

So to summarise:

Please use life cycle prefixes in preference to life cycle tags.

Comment from SK53 on 1 September 2015 at 09:00

@redsteakraw: OHM is not conceived as a dumping ground for random things which no longer exist in the real world.

As currently constituted it works for the construction of well-defined data sets which are consistently mapped for a specific historic period. These data sets are currently quite small and manageable. Adding every recently demolished building from OSM brings nothing to OHM (you can find them from the OSM Full History dumps) and makes the work of server maintenance, editing and data consumption much harder than it needs to be for a project which is at an early stage.

Comment from Mateusz Konieczny on 15 September 2015 at 09:16

@TheSwavu - it works as tl;dr but it is more complex. In many cases object should be deleted rather than retagged. In some cases (like highways under construction with highway=construction) there are well defined tag values rather than lifecycle prefixes.

Comment from d1g on 13 September 2016 at 15:00

abandoned=yes is deprecated for 5 years already.

RETAG IT: http://wiki.openstreetmap.org/w/index.php?title=Key:abandoned:&action=history

It is not OK to use one tag (for example amenity=hotel) and add second tag that negates or massively change its meaning

Please stop “opening eyes” in 09-2015 about “trolltags” on what was settled in 2011/12?!

Comment from Mateusz Konieczny on 24 July 2023 at 13:29

Note that problem is not specifically about abandoned=yes (which is fine in some cases, like quarries)

It is also about say proposed=yes ( https://taginfo.openstreetmap.org/tags/proposed=yes#overview ) and many other similar tags

Log in to leave a comment