I've been contemplating the various OSM tagging disputes and disagreements, and I thought of this: If you take 100 regular people to a park with benches, grass, trees, and some gravel paths, and ask them what they're seeing, they will probably all say "benches, grass, trees, gravel paths". There would be close to a 100% consensus and no major disputes.
So why is OSM tagging different? Our problem is that the system forces us to categorize those physical objects into abstract, artificially constructed buckets called "keys", and, naturally, this categorization is subjective and different mappers will want different schemes. Should grass be put in the "landuse" bucket, or the "natural" bucket? Wait, what if a landuse=military has grass? Maybe we should create a new bucket called "landcover" and put grass there? How do we reconcile all that with man_made? What do we do with the prexisting tags? And on and on.
Why not abandon the buckets?
Clearly, many tags do require key=value pairs. e.g. name or website. But these are usually non-physical and non disputed. In our hypothetical eutopia, a node can have both traditional tags and value-only tags. The former are usually abstract, the latter usually physical.
I am well aware this requires API changes. I don't know if it's worth it, I know it has shortcomings, and I don't know if it's practical any time soon, or ever, but I thought I'd share for the sake of discussion, brainstorming, and so on.
Here are some tagging examples:
format: key=value, key=value ... [value, value, value, ....]
- A grassy park with some picnic tables [park, grass, picnic_tables] (If someone wants to fine-grain it in the future, removes picnic_tables from the area and adds picnic_table for specific nodes).
- Plaza with concrete floor: name="The Plaza", website="http://etc" [plaza, concrete] (nowadays: Is plaza man_made or landuse or amenity? Let me check the Wiki one more time...)
- Military base with trees and grass on a sandy beach. name="base1", [militaryBase, trees, grass, sand] (nowadays: Disputed tagging mess involving landcover,landuse,man_made,surface,natural)
As a bonus, this resolves the "double values" problem. If a shop sells both flowers and watches, by all means: name="John's flowers & watches", [florist, watches] (Or perhaps [shop, florist, watches])