Proposal:Wall tagging structure refinement

From OpenStreetMap Wiki
Jump to navigation Jump to search
Wall tagging structure refinement
Proposal status: Draft (under way)
Proposed by: Nadjita
Tagging: structure=* / wall:structure=*
Applies to: way
Definition: Refinement of wall=* by separating function, material, and structure
Draft started: 2025-08-25

Proposal

This proposal aims to refine the tagging structure for walls (barrier=wall) by clearly separating the purpose, material, and construction method of walls. Currently, the wall=* key mixes these three distinct aspects, leading to ambiguity, inconsistent tagging, and having to decide whether to tag one or the other.

Changed tags

  1. structure=*

Deprecated tags

  1. wall=jersey_barrier
  2. wall=dry_stone
  3. wall=stone
  4. wall=brick
  5. wall=concrete
  6. wall=concrete_block
  7. wall=flint
  8. wall=gabion
  9. wall=pise

Rationale

The current wall=* tagging system combines different semantic categories:

This mixing creates several problems:

  • Ambiguity: A noise barrier built with gabions cannot be properly tagged, unless we consider gabions a material
  • Data inconsistency: Similar walls are tagged differently depending on which aspect mappers prioritize (function, material, or construction)
  • Conflicts with OSM principles: No clear separation of function, material, and construction

The key structure=* was chosen to:

  • Avoid confusion with construction=* (used for temporary construction sites, so even prefixed like wall:construction=* isn't perfect)
  • Provide clear semantic separation between wall function, materials, and construction techniques
  • Enable precise tagging of engineering-significant construction methods

Tagging

New tagging scheme

Key Purpose Example values
barrier=wall Identifies the feature as a wall (unchanged)
wall=* Function only wall=noise_barrier
wall=flood_protection
wall=sea_protection
wall=castle_wall
material=* Material (existing key) material=concrete
material=stone
material=brick
material=wood
structure=* Construction method (new key) structure=gabion
structure=dry_stone
structure=masonry
structure=rammed_earth
structure=poured
structure=panel

Proposed wall=* values (function)

Value Description Current equivalent
wall=noise_barrier Protection against noise wall=noise_barrier (unchanged)
wall=castle_wall A castle wall wall=castle_wall (unchanged)
wall=flood_wall Protection against flooding wall=flood_wall (unchanged)
wall=seawall Protection against sea/coastal erosion wall=seawall (unchanged)

Proposed structure=* values

Value Description Current equivalent
structure=gabion Wire cages filled with stones/concrete wall=gabion
structure=dry_stone Stones fitted without mortar wall=dry_stone
structure=rammed_earth Compacted earth/clay (known as pise or taipa) wall=pise
structure=adobe Unfired clay bricks or shaped clay (new)
structure=masonry Stones/bricks with mortar (refined from current material tags)
structure=panel Made from prefabricated panels (e.g., wood or concrete) (new)
structure=poured Concrete poured on-site or sprayed (new)
structure=frame Frame construction (wood/bamboo) with infill material, e.g. timber frame, quincha, wattle and daub (new)
structure=carved Carved out of solid rock (new)
structure=woven Braided or woven out of bamboo, reed, or other plants (new)

Proposed material=* values that were once wall=* values

Value Description Current equivalent
material=stone A wall constructed from stones wall=stone
material=brick A wall constructed from bricks wall=brick
material=concrete Concrete wall, constructed from concrete poured in place, or as precast concrete wall panels wall=concrete
material=concrete_block Concrete block wall, constructed from cement concrete blocks and mortar wall=concrete_block
material=soil Rammed earth wall made from compacted soil wall=rammed_earth

Surface treatment

For walls with surface treatments or coverings, the surface=* key can be used to describe the visible outer layer, separate from the structural material:

Value Description Example
surface=plaster Rendered/plastered surface Concrete wall with cement render
surface=tiles Ceramic or stone tiles Concrete wall with ceramic tile cladding
surface=clinker Clinker brick facing Concrete wall with clinker brick veneer
surface=stone Natural stone cladding Concrete wall with stone facade
surface=stucco Cement-based textured coating Concrete wall with rough stucco finish

Example usage:

barrier=wall
material=stone                 # structural material
surface=plaster                # visible surface treatment
structure=masonry

Note that material=* describes the structural/load-bearing material, while surface=* describes the visible outer treatment or cladding.

Migration strategy

The migration requires determining which aspect (purpose, material, or structure) is missing for each existing wall=* value:

Current value What's missing Suggested approach
wall=noise_barrier Material + structure Add material=* and structure=* if determinable
wall=flood_wall Material + structure Add material=* and structure=* if determinable
wall=seawall Material + structure Add material=* and structure=* if determinable
wall=gabion Purpose Becomes structure=gabion, add wall=* for purpose + material=stone (typical)
wall=dry_stone Purpose Becomes material=stone + structure=dry_stone, add wall=* for purpose
wall=brick Purpose Becomes material=brick + structure=masonry, add wall=* for purpose
wall=pise Purpose Becomes material=soil + structure=rammed_earth, add wall=* for purpose
wall=stone Purpose + structure Becomes material=stone, add wall=* for purpose + structure=masonry/dry_stone
wall=concrete Purpose + structure Becomes material=concrete, add wall=* for purpose + structure=poured/panel
wall=concrete_block Purpose Becomes material=concrete_block + structure=masonry, add wall=* for purpose
wall=flint Purpose Becomes material=flint + structure=masonry, add wall=* for purpose
wall=jersey_barrier Becomes barrier=jersey_barrier

No automatic migration

All conversions require manual review by mappers to determine the missing information from local knowledge or imagery.

Compatibility

Rendering

  • Standard OSM-Carto rendering should remain unchanged (barrier=wall is the primary tag)
  • Specialized renderings can now distinguish by purpose, material, or construction method

Data consumers

  • Applications using only barrier=wall continue to work unchanged
  • Applications can progressively adopt the refined tagging for enhanced functionality

Editors

  • Presets should be updated to support the new structure
  • Legacy wall=* values should show validation warnings after transition period

Examples

Image Description Proposed tagging
Noise barrier built with wood panels barrier=wall
wall=noise_barrier
material=wood
structure=panel
Noise barrier built with gabion barrier=wall
wall=noise_barrier
material=stone
structure=gabion
Noise barrier built with aluminium panels barrier=wall
wall=noise_barrier
material=aluminium or material=metal
structure=panel
Adobe wall barrier=wall
structure=adobe
material=clay
Adobe wall built with unfired bricks barrier=wall
structure=adobe
material=clay
Brick wall barrier=wall
structure=masonry
material=brick
Stone wall barrier=wall
structure=masonry
material=stone
Dry stone wall barrier=wall
structure=dry_stone
material=fieldstone
Boundary wall made of prefabricated concrete panels barrier=wall
structure=panel
material=concrete
Rammed earth wall barrier=wall
structure=rammed_earth
material=soil
Bamboo wall barrier=wall
structure=woven
material=bamboo
Concrete block wall barrier=wall
structure=masonry
material=concrete_block
Poured concrete wall barrier=wall
structure=poured
material=concrete
Flint wall barrier=wall
structure=masonry
material=flint
Wattle and daub filled with clay barrier=wall
structure=frame
material=wood
Seawall made of vertical concrete panels barrier=wall
wall=seawall
structure=panel
material=concrete
Flood wall made of vertical concrete panels barrier=wall
wall=flood_wall
structure=panel
material=concrete
Dry stone castle wall barrier=wall
wall=castle_wall
structure=dry_stone
material=stone

Editor integration and validation

Following approval, the following steps will be taken to ensure smooth migration:

Editor presets

Issues will be opened with major OSM editors to update their presets:

  • iD Editor: Update id-tagging-schema to:
    • Remove deprecated wall=* values from presets
    • Add new structure=* key to wall presets
    • Show warnings for deprecated combinations
  • JOSM: Update presets to:
  • Vespucci: Update presets to match the new tagging scheme

Validation rules

Validator warnings will be requested for:

  • JOSM Validator: Add rules to flag deprecated wall=* values and suggest replacements
  • iD Warnings: Show deprecation notices when deprecated values are used
  • Osmose QA: Add checks for inconsistent wall tagging

Community migration support

  • Documentation: Update all language versions of relevant wiki pages
  • Tagging Guidelines: Coordinate with local communities for consistent adoption

Features/Pages affected

See also

Comments

Please comment on the discussion page or on the forum thread.