# JOSM TagChecker validator file # Format: # Each line specifies a certain error to be reported # : messagetype : # Lines starting with a # are considered as comments. # # Data type can be: # node - a node point # way - a way # relation - a relation # * - all data types # # Message type can be: # E - an error # W - a warning # I - an low priority informational warning # # Key and value are expressions describing certain keys and values of these keys. # Regulator expressions are supported. In this case the expressions starts and # ends with a / sign. If an 'i' is appended, the regular expression is # case insensitive. For instance, /foo|bar/i # # The * sign indicates any string. # The texts BOOLEAN_TRUE and BOOLEAN_FALSE in the value part indicate a special # handling for boolean values (yes, true, 0, false, no, ...). # # Expression can be: # != - the key/value combination does not match # == - the key/value combination does match # # To have more complicated expressions, multiple elements can be grouped together # with an logical and (&&). # # The comment at the end of a rule is displayed in validator description # # Empty lines and space signs are ignored way : W : highway == * && name == /.* (Ave|Blvd|Cct|Cir|Cl|Cr|Crct|Cres|Crt|Ct|Dr|Drv|Esp|Espl|Hwy|Ln|Mw|Mwy|Pl|Rd|Qy|Qys|Sq|St|Str|Ter|Tce|Tr|Wy)\.?$/i # abbreviated street name node : W : oneway == * # oneway tag on a node node : W : bridge == BOOLEAN_TRUE # bridge tag on a node node : W : highway == tertiary # wrong highway tag on a node node : W : highway == secondary # wrong highway tag on a node node : W : highway == residential # wrong highway tag on a node node : W : highway == unclassified # wrong highway tag on a node node : W : highway == track # wrong highway tag on a node way : I : highway == unclassified && name != * # Unnamed unclassified highway way : I : highway == secondary && ref != * # highway without a reference way : I : highway == tertiary && ref != * # highway without a reference way : I : highway == motorway && nat_ref != * # highway without a reference * : W : highway == road # temporary highway type * : W : / *name */i == * && name != * # misspelled key name # The following could replace unnamed way check. Still at the moment we keep it as it is #way : W : junction == roundabout && highway == /motorway|trunk|primary|secondary|tertiary|residential|pedestrian/ && /name|ref|(name:.*)|(.*_name)|(.*_ref)/ != * # Unnamed junction #way : W : highway == /motorway|trunk|primary|secondary|tertiary|residential|pedestrian/ && /name|ref|(name:.*)|(.*_name)|(.*_ref)/ != * # Unnamed way : W : highway == cycleway && bicycle == BOOLEAN_FALSE # cycleway with tag bicycle way : W : highway == footway && foot == BOOLEAN_FALSE # footway with tag foot #way : I : highway == cycleway && bicycle == * # cycleway with tag bicycle #way : I : highway == footway && foot == * # footway with tag foot way : W : highway == cycleway && cycleway == lane # separate cycleway as lane on a cycleway way : W : highway == * && barrier == * # barrier used on a way #way : I : waterway == * && layer != * # waterway without layer tag way : I : highway == footway && maxspeed == * # maxspeed used for footway way : I : highway == steps && maxspeed == * # maxspeed used for footway way : W : oneway != BOOLEAN_FALSE && /.*:(backward|forward)/ == * # oneway combined with *:backward/forward * : W : layer == /\+.*/ # layer tag with + sign * : I : name == /.*Strasse.*/i # street name contains ss relation : E : type != * # relation without type node : I : amenity == /restaurant|cafe|fast_food/ && name != * # restaurant without name #way : I : highway != * && railway != * && waterway != * && name == * # unusual named way type #* : W : natural == water && waterway == * # unusual tag combination (natural=water & waterway) * : W : highway == * && waterway == * # unusual tag combination (highway & waterway) * : W : highway == * && natural == * # unusual tag combination (highway & natural)