Skip to content

Instantly share code, notes, and snippets.

@maxerickson
Last active March 7, 2020 14:20
Show Gist options
  • Save maxerickson/950009772e4cc177203977daa8223eb4 to your computer and use it in GitHub Desktop.
Save maxerickson/950009772e4cc177203977daa8223eb4 to your computer and use it in GitHub Desktop.
JOSM validation rules for US addresses.
/* JOSM Validator rules for flagging potential issues with US addresses.*/
/* check addr:city for capitalization. */
*["addr:city"]["addr:city"!~/([A-Z][^\s]*)/]{
group: tr("US Address");
throwWarning: tr("Check capitalization of addr:city.");
}
*["addr:city"=~/,/]{
group: tr("US Address");
throwWarning: tr("Check addr:city for extra info.");
}
*["addr:street"]["addr:street"!~/([A-Z][^\s]*)/]{
group: tr("US Address");
throwWarning: tr("Check capitalization of addr:street.");
}
*["addr:city"=~/(?i)(^|\s|;)(St)[.]?(\s|;|$)/]{
group: tr("US Address");
throwWarning: tr("Abbreviated addr:city?");
}
/* check addr:street" for abbreviations. */
*["addr:street"=~/(?i)(?:^|\s)(N|S|W|E|W|NW|NE|SW|SE)[.]?(?:\s|$)/]{
group: tr("US Address");
throwWarning: tr("Abbreviated cardinal direction?.");
}
*["addr:street"=~/(?i)(N|S|North|South) (W|E|West|East) /]{
group: tr("US Address");
throwWarning: tr("Check split directional prefix.");
}
*["addr:street"=~/(?i)(^|\s|;)(Abnd|Aly|Anx|Appts|Ave|Bch|Blvd|Br|Brg|Brv|Byp|CC|Cct|Cem|Ch|Cir|Ck|Cl|Clfs|Cnty|Co|Cpl|Cr|Crct|Cres|Crk|Crst|Crt|Ct|Cty|Cv|Dr|Drv|Esp|Espl|Est|Expwy|Ext|Ff|Fl|Fs|Ft|GR|Gr|Grd|Grn|Hgts|Hgwy|Hts|Hw|Hwy|Ind|Industrl|Is|Knl|Lgn|Lk|Ln|Mem|Mh|Mhp|Ml|Mt|Mtn|Mw|Mwy|Nat|Ovps|Pk|Pkw|Pkwy|Pky|Pl|Pr|Psge|Pvt|Qy|Qys|RR|Rd|Rdg|Regnl|Rev|Rt|Rte|Sch|Scho|Sq|Srv|St|Ste|Sthwy|Sthy|Str|Stte|Svc|Tce|Ter|Terr|Tk|Tr|Trfy|Trl|Trlr|Twp|U S F S|Usfs|Vlg|Wy|Xing)[.]?(\s|;|$)/]{
group: tr("US Address");
throwWarning: tr("Abbreviated {0}.", "{0.key}");
}
*["addr:street"=~/(?i)(^|\s)(ALLEE|ALLY|ALY|ANEX|ANNX|ANX|ARC|AV|AVE|AVEN|AVENU|AVN|AVNUE|BAYOO|BCH|BG|BGS|BLF|BLFS|BLUF|BLVD|BND|BOT|BOTTM|BOUL|BOULV|BR|BRDGE|BRG|BRK|BRKS|BRNCH|BTM|BYP|BYPA|BYPAS|BYPS|BYU|CANYN|CAUSWA|CEN|CENT|CENTR|CIR|CIRC|CIRCL|CIRS|CLB|CLF|CLFS|CMN|CMNS|CMP|CNTER|CNTR|CNYN|COR|CORS|CP|CPE|CRCL|CRCLE|CRES|CRK|CRSE|CRSENT|CRSNT|CRSSNG|CRST|CSWY|CT|CTR|CTRS|CTS|CURV|CV|CVS|CYN|DIV|DL|DM|DR|DRIV|DRS|DRV|DV|DVD|EST|ESTS|EXP|EXPR|EXPRESS|EXPW|EXPY|EXT|EXTN|EXTNSN|EXTS|FLD|FLDS|FLS|FLT|FLTS|FORESTS|FORG|FRD|FRDS|FREEWY|FRG|FRGS|FRK|FRKS|FRRY|FRST|FRT|FRWAY|FRWY|FRY|FT|FWY|GARDN|GATEWY|GATWAY|GDN|GDNS|GLN|GLNS|GRDEN|GRDN|GRDNS|GRN|GRNS|GROV|GRV|GRVS|GTWAY|GTWY|HARB|HARBR|HBR|HBRS|HIGHWY|HIWAY|HIWY|HL|HLLW|HLS|HOLLOWS|HOLW|HOLWS|HRBOR|HT|HTS|HVN|HWAY|HWY|INLT|IS|ISLES|ISLND|ISLNDS|ISS|JCT|JCTION|JCTN|JCTNS|JCTS|JUNCTN|KNL|KNLS|KNOL|KY|KYS|LCK|LCKS|LDG|LDGE|LF|LGT|LGTS|LK|LKS|LN|LNDG|LNDNG|LODG|LOOPS|MDW|MDWS|MEDOWS|MISSN|ML|MLS|MNR|MNRS|MNT|MNTAIN|MNTN|MNTNS|MOUNTIN|MSN|MSSN|MT|MTIN|MTN|MTNS|MTWY|NCK|OPAS|ORCH|ORCHRD|OVL|PARKWY|PATHS|PIKES|PKWAY|PKWY|PKWYS|PKY|PL|PLN|PLNS|PLZ|PLZA|PNE|PNES|PR|PRK|PRR|PRT|PRTS|PSGE|PT|PTS|RAD|RADIEL|RADL|RANCHES|RD|RDG|RDGE|RDGS|RDS|RIV|RIVR|RNCH|RNCHS|RPD|RPDS|RST|RTE|RVR|SHL|SHLS|SHOAR|SHR|SHRS|SKWY|SMT|SPG|SPGS|SPNG|SPNGS|SPRNG|SPRNGS|SPURS|SQ|SQR|SQRE|SQRS|SQS|SQU|ST|STA|STATN|STN|STR|STRA|STRAV|STRAVEN|STRAVN|STREME|STRM|STRT|STRVN|STRVNUE|STS|SUMIT|SUMITT|TER|TERR|TPKE|TRACES|TRACKS|TRAK|TRCE|TRFY|TRK|TRKS|TRL|TRLR|TRLRS|TRLS|TRNPK|TRWY|TUNEL|TUNL|TUNLS|TUNNELS|TUNNL|TURNPK|UN|UNS|UPAS|VALLY|VDCT|VIA|VIADCT|VILL|VILLAG|VILLG|VIS|VIST|VL|VLG|VLGS|VLLY|VLY|VLYS|VST|VSTA|VW|VWS|WL |WLS|WY|XING|XRD|XRDS)[.]?(\s|$)/]{
group: tr("US Address");
throwWarning: tr("Abbreviated postal {0}.", "{0.key}");
}
/* check housenumbers for unit addresses */
*["addr:housenumber"]["addr:housenumber"~/(?i)(unit|suite|ste|room|floor)/]{
group: tr("US Address");
throwWarning: tr("addr:housenumber looks like it has unit address information in it.");
}
/* check addr:unit for additional keywords
*[“addr:unit”][“addr:unit”~/(?i)(unit|suite|ste|room)/]{
group: tr(“US Address”);
throwWarning: tr(“addr:unit has additional unit keywords in it.”);
}*/
/* verify addr:country */
*[inside(“US”)][“addr:country”][“addr:country”!=”US”]{
group: tr(“US Address”);
throwwarning: tr(“Wrong value for addr:country in the United State of America.”);
}
/* verify addr:state */
*[inside("US-AL")]["addr:state"]["addr:state"!="AL"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Alabama.");
}
*[inside("US-AK")]["addr:state"]["addr:state"!="AK"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Alaska.");
}
*[inside("US-AS")]["addr:state"]["addr:state"!="AS"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in American Samoa.");
}
*[inside("US-AZ")]["addr:state"]["addr:state"!="AZ"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Arizona.");
}
*[inside("US-AR")]["addr:state"]["addr:state"!="AR"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Arkansas.");
}
*[inside("US-CA")]["addr:state"]["addr:state"!="CA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in California.");
}
*[inside("US-CO")]["addr:state"]["addr:state"!="CO"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Colorado.");
}
*[inside("US-CT")]["addr:state"]["addr:state"!="CT"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Connecticut.");
}
*[inside("US-DE")]["addr:state"]["addr:state"!="DE"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Delaware.");
}
*[inside("US-DC")]["addr:state"]["addr:state"!="DC"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in District of Columbia.");
}
*[inside("US-FL")]["addr:state"]["addr:state"!="FL"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Florida.");
}
*[inside("US-GA")]["addr:state"]["addr:state"!="GA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Georgia.");
}
*[inside("US-GU")]["addr:state"]["addr:state"!="GU"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Guam.");
}
*[inside("US-HI")]["addr:state"]["addr:state"!="HI"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Hawaii.");
}
*[inside("US-ID")]["addr:state"]["addr:state"!="ID"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Idaho.");
}
*[inside("US-IL")]["addr:state"]["addr:state"!="IL"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Illinois.");
}
*[inside("US-IN")]["addr:state"]["addr:state"!="IN"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Indiana.");
}
*[inside("US-IA")]["addr:state"]["addr:state"!="IA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Iowa.");
}
*[inside("US-KS")]["addr:state"]["addr:state"!="KS"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Kansas.");
}
*[inside("US-KY")]["addr:state"]["addr:state"!="KY"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Kentucky.");
}
*[inside("US-LA")]["addr:state"]["addr:state"!="LA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Louisiana.");
}
*[inside("US-ME")]["addr:state"]["addr:state"!="ME"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Maine.");
}
*[inside("US-MD")]["addr:state"]["addr:state"!="MD"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Maryland.");
}
*[inside("MH")]["addr:state"]["addr:state"!="MH"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Marshall Islands.");
}
*[inside("US-MA")]["addr:state"]["addr:state"!="MA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Massachusetts.");
}
*[inside("US-MI")]["addr:state"]["addr:state"!="MI"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Michigan.");
}
*[inside("FM")]["addr:state"]["addr:state"!="FM"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Micronesia.");
}
*[inside("US-MN")]["addr:state"]["addr:state"!="MN"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Minnesota.");
}
*[inside("US-MS")]["addr:state"]["addr:state"!="MS"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Mississippi.");
}
*[inside("US-MO")]["addr:state"]["addr:state"!="MO"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Missouri.");
}
*[inside("US-MT")]["addr:state"]["addr:state"!="MT"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Montana.");
}
*[inside("US-NE")]["addr:state"]["addr:state"!="NE"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Nebraska.");
}
*[inside("US-NV")]["addr:state"]["addr:state"!="NV"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Nevada.");
}
*[inside("US-NH")]["addr:state"]["addr:state"!="NH"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in New Hampshire.");
}
*[inside("US-NJ")]["addr:state"]["addr:state"!="NJ"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in New Jersey.");
}
*[inside("US-NM")]["addr:state"]["addr:state"!="NM"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in New Mexico.");
}
*[inside("US-NY")]["addr:state"]["addr:state"!="NY"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in New York.");
}
*[inside("US-NC")]["addr:state"]["addr:state"!="NC"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in North Carolina.");
}
*[inside("US-ND")]["addr:state"]["addr:state"!="ND"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in North Dakota.");
}
*[inside("US-MP")]["addr:state"]["addr:state"!="MP"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Northern Mariana Islands.");
}
*[inside("US-OH")]["addr:state"]["addr:state"!="OH"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Ohio.");
}
*[inside("US-OK")]["addr:state"]["addr:state"!="OK"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Oklahoma.");
}
*[inside("US-OR")]["addr:state"]["addr:state"!="OR"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Oregon.");
}
*[inside("PW")]["addr:state"]["addr:state"!="PW"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Palau.");
}
*[inside("US-PA")]["addr:state"]["addr:state"!="PA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Pennsylvania.");
}
*[inside("US-PR")]["addr:state"]["addr:state"!="PR"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Puerto Rico.");
}
*[inside("US-RI")]["addr:state"]["addr:state"!="RI"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Rhode Island.");
}
*[inside("US-SC")]["addr:state"]["addr:state"!="SC"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in South Carolina.");
}
*[inside("US-SD")]["addr:state"]["addr:state"!="SD"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in South Dakota.");
}
*[inside("US-TN")]["addr:state"]["addr:state"!="TN"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Tennessee.");
}
*[inside("US-TX")]["addr:state"]["addr:state"!="TX"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Texas.");
}
*[inside("US-UT")]["addr:state"]["addr:state"!="UT"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Utah.");
}
*[inside("US-VT")]["addr:state"]["addr:state"!="VT"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Vermont.");
}
*[inside("US-VA")]["addr:state"]["addr:state"!="VA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Virginia.");
}
*[inside("US-VI")]["addr:state"]["addr:state"!="VI"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Virgin Islands.");
}
*[inside("US-WA")]["addr:state"]["addr:state"!="WA"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Washington.");
}
*[inside("US-WV")]["addr:state"]["addr:state"!="WV"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in West Virginia.");
}
*[inside("US-WI")]["addr:state"]["addr:state"!="WI"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Wisconsin.");
}
*[inside("US-WY")]["addr:state"]["addr:state"!="WY"]{
group: tr("US Address");
throwwarning: tr("Wrong value for addr:state in Wyoming.");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment