[[TranslatedPages(outdated=This page is incomplete. Lot's of tests not described. Screenshot for rules is missing.)]] [[PageOutline(2-4,Table of Content)]] = Preferences > Data Validator = [[JOSMImage(preferences/validator,48,link=,middle,margin-right=20,margin-bottom=10)]] **An OSM data validator that checks for common errors made by users and editor programs.** == Tests ==#Tests Following four general settings are available: Use ignore list:: enable/disable the use of the ignore list ''(default: enabled)'' \\ ''Advance preference: `validator.ignore`'' Use error layer:: enable/disable the creation of a validator layer highlighting the problematic objects ''(default: enabled)'' \\ ''Advance preference: `validator.layer`'' Show informational level:: enable/disable tests on informational level know as "Other" ''(default: disabled)'' \\ ''Advance preference: `validator.other`'' Show informational level on upload:: enable/disable tests on informational level on upload ''(default: disabled)'' \\ ''Advance preference: `validator.otherUpload`'' All check boxes below are settings which test should be run on which action with a check box on the left for manual runs, **''On demand''**, and **''On upload''** on the right side. By default, all error and warning tests are active. 1. If you are a OSM newbie and encountered validation error about objects you haven't touched, please ignore these messages for now. 1. Validator can be wrong or incomplete about all tagging practices. Don't fix errors when you aren't sure something is really wrong. 1. First, refer to [wikitr:/Help/Dialog/Validator Validator panel] - how to use validator [[Image(PreferencesValidatorTests.png,link=,600)]] The fourth column contains also **(video)** explanations. The table is incomplete. [=#TestsTable] ||= **Type** =||= **Message** =||= **''What is checked''** =||= **Additional help** =||= **Autofix** =|| |||| ||||= **Addresses** =|||||| errors in [[osmwiki:Addresses]] and [[osmwiki:Relation:associatedStreet]]. \\ \\ ''Advanced preferences:'' \\ `validator.addresses.max_duplicate_distance` ''(default: `200.0`)'' \\ `validator.addresses.max_street_distance` ''(default: `200.0`)'' || || [[JOSMImage(data/warning)]] || House number without street || objects that have an `addr:housenumber` tag, but neither `addr:street` nor `addr:place`. The street name can also be provided using an `associatedStreet` relation or on interpolation way. || Add the missing street name information. || no || || [[JOSMImage(data/warning)]] || Duplicate house numbers || two members of an `associatedStreet` relation have the identical house number. || It is possible with a low chance. || no || || [[JOSMImage(data/warning)]] || Multiple street names in relation || `name` tag of an `associatedStreet` relation matches the `name` tags of the members with role `street` and the `addr:street` tag of the members with role `house`. || || no || || [[JOSMImage(data/warning)]] || House number too far from street || the houses of an `associatedStreet` are far away from the corresponding street. || Verify that the house really belongs the the street that is given by the relation. || no || || [[JOSMImage(data/warning)]] || Multiple associatedStreet relations || an object is in more than one `associatedStreet` relation. || || no || |||| ||||= **API Capabilities** =|||||| errors against API capabilities || || [[JOSMImage(data/error)]] || Way contains more than … nodes. It should be replaced by a multipolygon || || || || || [[JOSMImage(data/error)]] || Way contains more than … nodes. It should be split or simplified || || || || |||| ||||= **Barriers and entrances** =|||||| errors in [[osmwiki:Barriers]] and [[osmwiki:Key:entrance]]. || |||| ||||= **Coastlines** =|||||| [[osmwiki:Coastline]] are correct. || || [[JOSMImage(data/error)]] || Reversed coastline: land not on left side || coastlines that are not counter-clockwise or that are otherwise misplaced (coastline misused as inland lake) || Reverse coastline || || || [[JOSMImage(data/error)]] || Unconnected coastline: coastline ways do not form closed loops || coastlines ways that are not connected to the end of other coastline ways || || || || [[JOSMImage(data/error)]] || Unordered coastline: coastline ways are not connected start-to-end || coastline ways of which either the start is not connected to the end of another coastline or the end is not connected to the start of another coastline || Reverse coastline || || |||| ||||= **Conditional Keys** =|| usage of `*:conditional` tags. |||| Imprecise rules covered at [osmwiki:Conditional_restrictions osm wiki page "Conditional restrictions"] || |||| ||||= **Connectivity Relations** =|||||| Validates connectivity relations || || [[JOSMImage(data/error)]] || Connectivity tag missing comma between optional and non-optional values || || || no || || [[JOSMImage(data/error)]] || Connectivity tag contains unusual data || || || no || || [[JOSMImage(data/warning)]] || Connectivity relation without connectivity tag || || || no || || [[JOSMImage(data/warning)]] || Inconsistent lane numbering between relation and member tags || || || no || || [[JOSMImage(data/warning)]] || Multiple `via` roles only allowed with ways || || || no || || [[JOSMImage(data/warning)]] || Relation member is missing a `lanes` or `*:lanes` tag || || || no || || [[JOSMImage(data/warning)]] || Relation should not contain mixed `via` ways and nodes || || || no || || [[JOSMImage(data/warning)]] || This connectivity may already be implied || || || no || |||| ||||= **Crossing barriers / boundaries / ways** =|||||| || || [[JOSMImage(data/warning)]] || Crossing ways || ways (with highway/railway/waterway tags) that cross in same layer with no crossing node || 1. [https://commons.wikimedia.org/wiki/File:JOSM_9900_en_validator_message_%22Crossing_ways%22_with_shortcuts.ogv (video) usually you need to add a common node] or \\ 2. add appropriate [[osmwiki:Key:layer]] (and possibly [[osmwiki:Key:bridge]] or [[osmwiki:Key:tunnel]]) || no || || [[JOSMImage(data/warning)]] || Crossing barrier/building || barrier crossing a building in same layer with no crossing node || || no || |||| ||||= **Cycle detector** =|||||| Detects cycles (loops) in [[https://en.wikipedia.org/wiki/Drainage_system_(geomorphology)|drainage systems]]. \\ \\ ''Advanced preference:'' \\ `validator.CycleDetector.directionalWaterways`: directional waterway values ''(default: `["river", "stream", "tidal_channel", "drain", "ditch", "fish_pass"]`)'' || || [[JOSMImage(data/error)]] || Cycle in directional waterway network || || || no || |||| ||||= **Duplicated nodes** =|||||| ''Advanced preference:'' \\ `validator.duplicatenodes.precision`: rounding precision in degree ''(default: `1e-6` since r17612, `1-e7` before)'' || || [[JOSMImage(data/error)]] || Duplicated nodes || no nodes in the very same location || Merge the nodes into only one, adding the properties from all nodes to the merged one || || |||| ||||= **Duplicated relations** =|||||| no relations with same tags and same members with same roles. || |||| ||||= **Duplicated ways** =|||||| no ways with same node coordinates and optionally also same tags. || |||| ||||= **Duplicated way nodes** =|||||| ways with identical consecutive nodes. || || [[JOSMImage(data/error)]] || Duplicated way nodes || ways contain no loop edges (i.e., a single step from a node to itself) || Split the way, and delete the way consisting of the loop edge. || || |||| ||||= **Highways** =|||||| semantic checks on highways. || |||| ||||= **Internet tags** =|||||| errors in internet-related tags || |||| ||||= **Lane tags** =|||||| `lanes:*` tags, see [osmwiki:Lanes] || |||| ||||= **Long segments** =|||||| long way segments, which are usually errors \\ \\ ''Advanced preference:'' `validator.maximum.segment.length`: maximum segment length in meters ''(default: `15,000`)'' || || [[JOSMImage(data/warning)]] || Long segments - Very long segment of … kilometers || way segment length above certain configured value || For real world objects it makes sence to add some way nodes. || no || |||| ||||= **Tag checker (MapCSS based)** =|||||| different kind of checks based on MapCSS, including [wikitr:/Rules external rules]. See [#TagCheckerRules Tag checker rules] tab and detailed description [#MapCssBasedTests below]. || |||| ||||= **Multipolygon** =|||||| multipolygons are valid. || || [[JOSMImage(data/warning)]] || Style for outer way mismatches || Within a multipolygon relation, one of the tags of the relation and the outer ways is shared but with different values || Copy relation related tags to the relation itself || no || || [[JOSMImage(data/warning)]] || Style for inner way equals multipolygon || Within a multipolygon relation, one of the tags of the relation and the inner ways is shared and has the same value || Remove tag from inner way || no || || [[JOSMImage(data/other)]] || No style in multipolygon relation || The multipolygon relation is missing a tag describing what it represents || For a building, add `building=yes` to the relation etc. || no || |||| ||||= **Missing name:* translation** =|||||| finds multilingual objects whose ''name'' attribute is not equal to some ''name:*'' attribute and not a composition of ''name:*'' attributes, e.g., Italia - Italien - Italy. || |||| ||||= **Opening hours syntax** =|| correct usage of the opening hours syntax. |||| [osmwiki:Key:opening_hours#Examples common OH examples] [osmwiki:Key:opening_hours#Common_mistakes common mistakes] [osmwiki:Key:opening_hours/specification complete OH spec] || || ||= **Enable strict mode.** =|||||| even stricter rules, disabled by default \\ \\ ''Preference:'' \\ `validator.OpeningHourTest.strict` ''(default: `false`)'' || |||| ||||= **Overlapping ways** =|| a connection between two nodes is not used by more than one way. \\ \\ ''Advanced preferences:'' \\ `overlapping-ways.ignored-keys` - list of ignored keys \\ `overlapping-ways.ignore-layer` ''(default: `false`)'' \\ `overlapping-ways.only-known-linear` ''(default: `true`)'' |||| [https://commons.wikimedia.org/wiki/File:JOSM_9900_en_validator_message_%22Overlapping_ways%22_with_shortcuts.ogv (video) Using selection, split and middle mouse] || || [[JOSMImage(data/error)]] || Overlapping high-/rail-/waterways || two ways with `highway=*`, `railway=*` or `waterway=*` that share the same nodes || || no || || [[JOSMImage(data/error)]] || Way contains segment twice || || || no || || [[JOSMImage(data/warning)]] || High-/Rail-/Waterway shares segment with linear way || a way with `highway=*`, `railway=*` or `waterway=*` sharing consecutive nodes with another open way || || no || || [[JOSMImage(data/other)]] || High-/Rail-/Waterway shares segment with other way || a way with `highway=*`, `railway=*` or `waterway=*` sharing consecutive nodes with a closed way or multipolygon || Depending on the mapping style and the tags of the involved area these overlaps are ok or not. It definitively makes selecting the objects and distinguishing between them harder || no || || [[JOSMImage(data/other)]] || Ways share segment || || || no || |||| ||||= **Power lines** =|||||| ''Advanced preferences:'' \\ `validator.PowerLines.hilly_compensation` ''(default: `0.2`)'' \\ `validator.PowerLines.hilly_threshold` ''(default: `4.0`)'' || || [[JOSMImage(data/warning)]] || node without power=* || nodes in power lines/minor_lines that do not have a power=tower/pole/portal tag || || no || || [[JOSMImage(data/warning)]] || Mixed reference numbering || node ref numbering continuity on power supporting features (pole, tower etc.) along the line || ways are highlighted || no || || [[JOSMImage(data/warning)]] || Reference numbering don't match majority of way's nodes || node ref numbering continuity on power supporting features (pole, tower etc.) along the line || nodes are highlighted || no || || [[JOSMImage(data/warning)]] || Node connects a power line or cable with an object which is not related to the power infrastructure || || || no || || [[JOSMImage(data/warning)]] || Possibly missing line support node within power line || ways where are unusually long segments without line support feature || when water data is also in the dataset, the intersecting length is discarded, e.g. line over a river || no || || [[JOSMImage(data/warning)]] || Possibly wrong power line type used || ways where the line type is possibly misused || || no || |||| ||||= **Public Transport Route** =|||||| errors in [osmwiki:Public_Transport#Service_routes public transport route relations] |||| ||||= **Relation checker** =|||||| errors in relations. || |||| ||||= **Almost right angle buildings** =|||||| buildings with an almost right angle. \\ \\ ''Advanced preferences:'' \\ `validator.RightAngleBuilding.maximumDelta` ''(default: `10.0`)'' \\ `validator.RightAngleBuilding.minimumDelta` ''(default: `1.0`)'' || || [[JOSMImage(data/other)]] || Building with an almost square angle || || If the angle should be a right angle, orthogonalize the way. || yes, #20038 || |||| ||||= **Self-intersecting ways** =|||||| ways that contain some of their nodes more than once. || || [[JOSMImage(data/warning)]] || Self-intersecting ways || a way crosses itself || Remove the self-crossing, remove overlapping parts or split way || || |||| ||||= **Sharp angles** =|||||| sharp angles on roads \\ \\ ''Advanced preferences:'' \\ `validator.sharpangles.maxlength` ''(default: `10.0`)'' \\ `validator.sharpangles.maxangle` ''(default: `45.0`)'' \\ `validator.sharpangles.ignorerailway` \\ `validator.sharpangles.ignorehighway` || |||| ||||= **Similarly named ways** =|||||| ways with similar names that may have been misspelled. || || [[JOSMImage(data/warning)]] || Similar named ways || ways with very similar names, possibly a typo || || || |||| ||||= **Tag checker** =|||||| errors in tag keys and values. || || ||= **Check property values** =|||||| misspelled property values. Uses the loaded [wikitr:/TaggingPresets tagging presets] files for checking || || [[JOSMImage(data/other)]] || Presets do not contain property key || the property key is in no preset || Check the key ''or'' \\ Load the preset || no || || [[JOSMImage(data/other)]] || Presets do not contain property value || the property value is in no preset || Check the value ''or'' \\ Load the preset || no || || ||= **Check for fixme.** =|||||| any property with the word "fixme" inside || || [[JOSMImage(data/other)]] || fixme || || Check if you can fix the issue or if it was fixed already. If so, remove the "fixme", otherwise do nothing. || no || |||| ||||= **Turn-restrictions** =|||||| [osmwiki:Relation:restriction turn-restrictions] are valid. || || [[JOSMImage(data/error)]] || No "from" way found \\ No "to" way found \\ No "via" node or way found || all necessary elements of a turn restriction relation are present. || || no || || [[JOSMImage(data/error)]] || More than one "from" way found \\ More than one "to" way found \\ More than one "via" node found || at most one way with role `from` and `to` and at most one node with role `via` in a turn restriction relation. || || no || || [[JOSMImage(data/error)]] || Cannot mix node and way for role "via" || there is either a "via" node or multiple "via" ways, but not a mix of nodes and ways with role `via`. || || no || || [[JOSMImage(data/error)]] || The "from" way does not start or end at a "via" node. \\ The "to" way does not start or end at a "via" node. \\ The "from" and the first "via" way are not connected. \\ The "via" ways are not connected. \\ The last "via" and the "to" way are not connected. || the different parts of a turn restriction relation are connected. is also aware of oneway streets and considers parts unconnected, if they cannot be traveled in the intended order due to the oneway restriction. || Make sure that consecutive member of a turn restriction relation are connected. (Ways must be connected end-to-end.) || no || || [[JOSMImage(data/warning)]] || Unknown role || the role for members of a turn restriction relation is either `from`, `to` (ways) or `via` (nodes and ways) || || no || || [[JOSMImage(data/warning)]] || Unknown member type || only nodes and ways (and not relations) are members of a turn restriction relation. || || no || || [[JOSMImage(data/warning)]] || Superfluous turn-restriction as "to" way is oneway || The turn restriction is not needed, because the corresponding turn would mean to enter a oneway street from the wrong side. || Verify that the "from" and "to" ways are correctly assigned and delete the relation if it is indeed superfluous. || no || |||| ||||= **Unclosed Ways** =|||||| ways which should be circular are closed. || || [[JOSMImage(data/warning)]] || Unclosed ways || way types, which should be closed really are closed || Close unclosed ways || no || |||| ||||= **Unconnected highways / natural lands and landuses / power ways / railways / waterways** |||||| a way has an endpoint very near to another way. \\ \\ ''Advanced preferences:'' \\ `validator.UnconnectedWays.node_way_distance` ''(default: `10.0`)'' \\ `validator.UnconnectedWays.node_way_distance_railway` ''(default: `1.0`)'' \\ `validator.UnconnectedWays.way_way_distance` ''(default: `0.0`)'' || || [[JOSMImage(data/warning)]] || Way end node near other highway || End point of a way is very near to other ways || Connect the ways or when really unconnected add `noexit=yes` tag to prevent further warnings || no || || [[JOSMImage(data/warning)]] || Way end node near other way || || || no || || [[JOSMImage(data/other)]] || Connected way end node near other way || || || no || || [[JOSMImage(data/other)]] || Way node near other way || || || no || |||| ||||= **Untagged and unconnected nodes** =|||||| untagged nodes that are not part of any way. || || [[JOSMImage(data/warning)]] || Unconnected nodes without physical tags - \\ No tags \\ Has key `created_by` or `converted_by` \\ Has key `source` \\ Has key `watch` || nodes not part of any way without tags or only `created_by`, `converted_by`, `source` or `watch` || 1. If the node was created by yourself, you are to decide if to remove it otherwise \\ 2. [wikitr:/Help/Action/DownloadParentWaysAndRelation Download parent relations] and contact mappers who added these nodes in unclear cases || yes || || [[JOSMImage(data/warning)]] || Unconnected nodes without physical tags - \\ Has key `note` or `comment` or `description` \\ Has tag containing `fixme` || nodes not part of any way with only `note`, `comment`, `description` or `fixme` || 1. If the node was created by yourself, you are to decide if to remove it otherwise \\ 2. [wikitr:/Help/Action/DownloadParentWaysAndRelation Download parent relations] and contact mappers who added these nodes in unclear cases || no || |||| ||||= **Untagged, empty and one node ways** =|||||| untagged, empty and one node ways. || || [[JOSMImage(data/error)]] || Empty ways \\ \\ One node ways || Invalid ways with zero or only one node || 1. Look at the [wikitr:/Help/Action/ObjectHistory object's history] \\ 2. Remove the way (autofix) || yes || || [[JOSMImage(data/warning)]] || Unnamed ways || highway without `name` or `ref` || Add `name` or `ref` if known or `noname=yes` if sure that the way does not have a name || no || || [[JOSMImage(data/warning)]] || Untagged ways (commented!) || ways without any tag (or only with `comment`, `description`, `fixme` or `note`) and without membership in a relation || 0. if working with incomplete data, [wikitr:/Help/Action/DownloadParentWaysAndRelation download parent relations] \\ 1. describe them correctly if you know this objects or \\ 2. leave them until somebody describes them || no || || [[JOSMImage(data/other)]] || Unnamed junction || highway with `junction` and without `name` or `ref` || Add `name` or `ref` if known or `noname=yes` if sure that the junction does not have a name || no || |||| ||||= **Way connected to Area** =|||||| ways connected to areas. || || [[JOSMImage(data/warning)]] || Way terminates on Area || First/Last node of way connected with area || Optionally, either continue the way, unglue it from area or add a tag describing an entrance. || no || |||| ||||= **Wrongly Ordered Ways** =|||||| direction of water, land and coastline ways. || || [[JOSMImage(data/warning)]] || Reversed coastline: land not on left side \\ \\ Reversed land: land not on left side || wrong way direction of `natural=coastline` \\ \\ wrong way direction of `natural=land` || [wikitr:/Help/Action/ReverseWays Reverse way] direction || no || |||| ||||= **''Uncategorized''** =|||||| Descriptions that need to be checked, updated and added to one of the categories above or MapCSS below || || || Check property keys || misspelled property keys. See the [source:/trunk/resources/data/validator/words.cfg words.cfg] for file of misspelled property keys || Replace wrong key with right one || || || || Empty properties || properties with empty values || || || || [[JOSMImage(data/other)]] || Key 'x' invalid. - ... || illegal key combinations, names and similar issues || || || [[JOSMImage(data/other)]] || Nodes with the same name || two nodes have equal name || || || || [[JOSMImage(data/other)]] || Unknown property value || proper use of tags || If it is your new tag, it is a good idea to document it at the OSM-wiki ([osmwiki:"Any tags you like"]) || no || == Tag checker rules ==#TagCheckerRules This tab consists of two list and some buttons. On the left side all available rules are listed and on the right side all downloaded and local rules. === Available rules (left) === There is a search text box on top and below first the internal MapCSS rules and then the [wikitr:/Rules external ones] are listed. Some more info about each item will be displayed in a tooltip when hovering the mouse over it. Items which are already on the ''Active rules'' list on the right side are highlighted with a different background color which changes if the item is enabled/disabled on the right side. To get items from the left to the right, select them and use the [[JOSMImage(preferences/activate-right)]] blue, right arrow head button between the lists. With the [[JOSMImage(dialogs/refresh)]] button at the bottom reloads the ''available rules'' list from JOSM ([/rules file]). === Active rules (right) === Rules can be enabled/disable with the check box in front of each entry. \\ The three buttons on the right allow to: * [[JOSMImage(dialogs/add)]] manually add rules from url or local file * [[JOSMImage(dialogs/edit)]] modify selected entry * [[JOSMImage(dialogs/delete)]] delete items from the list The [[JOSMImage(preferences/reset,link=,24,middle)]] reset button at the bottom resets the ''active rules'' to default, removing any manually added entry. === MapCSS-based tests ===#MapCssBasedTests ||= **Type** =||= **Message** =||= **''What is checked''** =||= **Additional help** =||= **Autofix** =|| |||| ||||= **Addresses** =|||||| || |||| ||||= **Tag combinations** =|||||| || |||| ||||= **Deprecated features** =|||||| || |||| ||||= **Geometry** =|||||| || || [[JOSMImage(data/other)]] || Overlapping areas || areas overlap || Remove overlapping only when really wrong. || no || |||| ||||= **Highways** =|||||| || || [[JOSMImage(data/other)]] || Highway without a reference || there is a [osmwiki:Key:ref ref tag] for highways that are tagged tertiary. Not always required, see for instance [osmwiki:Map_Features#Highway Highway] || Optionally, add [osmwiki:Key:noref noref=yes] || no || |||| ||||= **Multiple values** =|||||| || |||| ||||= **Numeric values** =|||||| || |||| ||||= **Religion** =|||||| || |||| ||||= **Relations** =|||||| || |||| ||||= **Territories** =|||||| || |||| ||||= **Unnecessary tags** =|||||| || |||| ||||= **Wikipedia** =|||||| || == Advanced Preferences == More advanced preferences not described, yet. * `validator.auto_reload_local_rules` - whether to auto-reload local rules after file changes * `validator.autozoom` - whether to [wikitr:/Help/Action/ZoomToProblem Zoom to problem], automatically * `validator.check_assert_local_rules` - whether to enable MapCSS assertions for local rules * `validator.ignorelist` - the ignore list * `validator.ignorelist.version` - format version of the ignore list == See also == * [[JOSMImage(dialogs/validator)]] [wikitr:/Help/Dialog/Validator Validator panel] * [wikitr:/Rules JOSM Validator Custom rules from "Tag Checker Rules"] * [wikitr:/Help/Validator/MapCSSTagChecker MapCSSTagChecker] - about the syntax of validator checks, which are based on MapCSS ---- Back to [wikitr:/Help/Action/Preferences Preferences Dialog] \\ Back to [wikitr:/Help Main Help]