I’m seeing some conflicting documentation on the criteria for zone.tab. It says it’s equivalent to zone1970.tab further broken up by country. However, the project documentation says this practice has been discontinued and zones should cross international borders. But maybe that’s only talking about zone1970.tab.
Regardless, as you noted, what we have in the database is a mishmash of incomplete coverage of different layers, all using the same tags on boundary relations. I don’t think we can realistically resolve this using the existing approach:
- zone.tab and zone1970.tab rely to some extent on historical administrative boundaries (albeit not to the same extent as backzone). If we aim for complete coverage of either layer, we’ll probably need to map more historical boundaries in OSM. That would apparently annoy OSM mappers, and it would also be unfair to OHM.
- tz intentionally ignores official time zone boundaries in favor of actual time observance. To do justice to the IANA time zones, we’d need to shift the boundaries to the other side of numerous small towns. The more we aim for accurate coverage of tz, the further we’ll get from representing designated boundaries that are obviously in scope for OSM. Governments would complain that we’re misrepresenting the boundaries, and they’d be right for a change.
What if we freeze our current coverage of boundary=timezone relations while we use them to clean up Wikidata? Once we vet the time zone statements on Wikidata, timezone-boundary-builder can confidently migrate from the Overpass API to QLever, allowing us to delete the boundary=timezone relations without breaking data consumers. For IANA time zones that don’t correspond to OSM features – such as Germany minus Büsingen, Spain minus the Canary Islands, and Norway minus Bouvet Island – Wikidata would push the time zone statements down to multiple administrative subdivisions, like we were talking about doing in OSM.
This would leave boundary=timezone for a demarcated time zone boundary (which apparently doesn’t exist in Europe). Any local exception to the law can be tagged as timezone:iana=* on a boundary, POI, or railway, to say that it observes the time zone most similar to a certain IANA time zone – but not so that data consumers can build a comprehensive, coherent time zone geometry. time_name:xy=* would be available if anyone wants to tag the name of the locally observed time in the local languages. It would only be a note for reference, not for anything automated.