Choosing a tagging scheme for disputed boundaries

The wiki lists several proposals for tagging disputed boundaries. Of these, boundary=disputed disputed=yes is listed as the most widely used tag, with boundary=claim a distant second. Have things settled down to the point where the wiki can simply recommend boundary=disputed disputed=yes as the tag combination to use for disputed boundaries? (This would seem to be compatible with OpenMapTiles and probably other data consumers.)

Whoever edited the wiki was unable to track down any discussion about boundary=disputed disputed=yes. As a result, the tag description page is quite sparse. Should this combination appear only on boundary ways or relations, or should it appear on the member ways of a boundary relation, or both?

Currently, coverage of any of these tagging schemes is so uneven that I’m not sure how renderers are coping, other than by special-casing specific way and relation IDs or bboxes on their end. For example, of the ten dashes in the nine-dash line, only four are tagged as boundary=disputed, and none are disputed=yes. Meanwhile, two reefs in the same sea are tagged disputed=yes but nothing else is. That’s rather unlikely; the various neighboring countries dispute every aspect of the sea, from its islands to its non-islands, its extent and even its name in English. But just having clearer tagging guidance globally would be an improvement to the situation there.


Not knowing the background I would say that disputed=yes seems redundant when combined with boundary=disputed. By analogy to things like the construction tags I would expect something more along the lines of disputed=administrative.

In the reefs example I would assume disputed=yes to be raising doubts about their existence rather than their ownership.

I vaguely remember there being a more comprehensive tagging system for mapping overlapping and conflicting claims, but it looks like there may just have been discussions about making one rather than a finalised proposal?

Yes, I wonder if this guidance on the wiki is conflating two different tagging schemes:

  • boundary=administrative/protected_area/etc. plus disputed=yes
  • boundary=disputed (with a poor assumption that only administrative boundaries can be disputed)

Naïvely, I would expect disputed=yes to be unnecessary if there’s already enough information to tag disputed_by=*. By analogy, community_adopted=* becomes unnecessary if community_adopter=* is present.

Good point. If I remember correctly, there are several features in the South China Sea whose very nature or existence is disputed. A general disputed=yes would be useful for that purpose, although one could argue that it’s a bit of a troll tag and should be replaced by a lifecycle prefix instead. disputed:boundary=administrative does appear on a few features in the Philippines, but this seems to be because of dual-tagging a boundary on a waterway rather than creating a relation.

Yes, it was all discussions, from the looks of it. It figures that OSM would respond to the issue of disputed boundaries by creating an indeterminate state of affairs. :wink:

Back in 2019, @nvk tried to resolve the situation somewhat by adding disputed=yes, claimed_by=*, and recognized_by=* to known international boundary disputes. It looks like he focused on South Asia but didn’t get around to disputes elsewhere, like in the South China Sea. Nextzen/Tilezen supports all three of these keys, though recognised_by=* seems to be more than twice as common as recognized_by=*. Do we need to account for linguistic disputes too? :man_facepalming:

For its part, OpenMapTiles does something muddled involving disputed=* or dispute=* or border_status=disputed or disputed_by=* to determine whether the boundary is disputed. It also exposes disputed_name=* and claimed_by=*. However, not all of these keys have ever appeared in the OSM database. I’m unsure if it’s a case of the developers throwing spaghetti at the wall and seeing what sticks, or if there was a corresponding discussion somewhere that ended without consensus.

Meanwhile, the Shortbread schema, which is planned for this year, only supports boundary=disputed. So until this Shortbread issue is fixed, an astute mapper hoping to avoid an edit war with other mappers would need to tag both boundary=disputed and disputed=yes, at a minimum, to cover Nextzen/Tilezen, OpenMapTiles, and Shortbread.

… or (I presume) use some sort of preprocessing step that gets the data into the state that the renderer pipeline expects?

I’ve not done that with vector tiles yet, but literally every other map I’ve created myself with OSM data has needed that in some form, and I can’t imagine it isn’t possible here too.

I’m looking at this from a mapper’s perspective – what a mapper would need to tag in order to avoid causing a stir among other mappers and among end users, since some of these disputes are carefully scrutinized. Of course with postprocessing anything is possible, including simply blotting out everything in the South China Sea[1] to make everyone equally unhappy. :sweat_smile:

  1. Itself a disputed name in English. ↩︎

I suspect that the problem is that, in the case of many disputes (/me waves vaguely at other threads here) there is literally nothing that the most independent mapper in the world could do to avoid annoying one side or another (or both) of some disputes.

What I hope that we’d be able to say is that, once they’d got over that initial annoyance, both sides could create a map that fits their views.

The lack of clear tagging guidelines compounds the uncertainty for mappers in an already tricky environment. I think level-headed mappers would be willing to take more responsibility for these areas if there are clearer tagging guidelines. If we don’t know what our tags mean, data consumers can only guess.

I think I understand now why the wiki suggests a blatantly redundant tagging combination as one possibility: it’s literally the lowest common denominator for the popular vector tile schemas. Typically there’s no shortage of folks with strong opinions about tagging, but in this case I guess everyone is going :see_no_evil:.

I’m not convinced that it’s all directly related to popular vector tile schemas; I think it’s most down to numerous different proposals made (that you mentioned above) with none getting wide acceptance. Right now, I suspect all renderers of this sort of thing are doing some sort of special-casing. I’ve actually been looking for a while for some OSM data that you could handle “alternate borders” for as a worked example in a diary entry, to somewhat fulfil the promise in the Disputed Territories PDF, but have never found a good example.

I was looking for where the boundary=disputed disputed=yes combination was proposed but came up empty-handed, hence this topic.

Based on a cursory look at the code, the tile generators I’ve mentioned aren’t doing any special-casing to determine whether a boundary is disputed. OpenMapTiles does annotate some disputed boundaries with identifiers that enable stylesheets to special-case disputed boundaries in certain areas, but I haven’t encountered a stylesheet that makes those distinctions.