Large scale change of traffic_sign to traffic_sign:id

There are a few assumptions in here that I’d like to unpack. I’m not sure how rigorously you mean “the same”. Pedantically, there are only a few types of traffic signs that come close to being universal. Stop and yield come to mind, but even they aren’t fully universal. But if you mean that two countries can use visually different signs that share the same function, that much is true. How then, should we handle two visually different signs in the same country that share the same function, such as R6-1R versus R6-2R? Mapillary makes this distinction because the detection model necessarily differs, but a router couldn’t care less.

Plenty of traffic signs can’t reasonably be tagged as nodes on a roadway. Earlier, you correctly pointed out that some countries assign traffic sign codes to road markings. The U.S. isn’t one of those countries, but regardless, I think the existing road_marking=* key, flawed as it is, would work better for those traffic signs, especially since they can occur longitudinally across a roadway:

On the other hand, the U.S. national standard does number signs along sidewalks, hiking trails, and bike trails, while some states number anything that a highway department might need to manufacture a sign for, whether or not it belongs on a roadway:

R11-2c S2(CA) S26(CA) D5-H39 D5-H19

Personally I don’t think these discrepancies are a problem at all. Use the country-prefixed sign ID and call it a day. But if you want to promote a universal ontology for traffic signs, these are edge cases you’ll need to deal with.

I’m very much in favor of establishing generic catch-all values of traffic_sign=* that can be used whenever there’s no sign ID. One of the most commonly tagged signs in the U.S. is the neighborhood watch sign, which the sign standards intentionally omit as being irrelevant to traffic safety. But this sign matters a lot in national discourse about social issues.

Somewhat less common are warning and regulatory, corresponding to official MUTCD sign categories. Our regulatory category includes what the Vienna Convention would call mandatory or prohibitory, as well as some information and complementary signs.

But one of the core questions surrounding your proposed scheme is whether we need to tag these categories even when the sign ID is known – as it would be when using Mapillary’s sign detections in an editor. I’m still not sure if you’ve explained why mappers would need to do all this extra work. Is it so that someone can easily write an Overpass query for all the “keep right” signs anywhere in the world, from memory, without consulting a reference page on the wiki?

If you mean that we should reuse highway=*, as in highway=stop for the location of a stop sign, then this is a deal-breaker for me and some others who have commented in this thread. One of the reasons is that a supplementary plaque (complementary sign) can modify the location at which a sign takes effect in all sorts of interesting ways. It is far too late to the change the meaning of tags like highway=give_way so that data consumers need to consider secondary tags to determine where it takes effect.