Last active
March 7, 2020 14:20
-
-
Save maxerickson/950009772e4cc177203977daa8223eb4 to your computer and use it in GitHub Desktop.
JOSM validation rules for US addresses.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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