bcgov / ols-geocoder

Physical Address Geocoder
Apache License 2.0
10 stars 6 forks source link

Add a Street schema to Physical Address eXchange Schema Standard #254

Open mraross opened 3 years ago

mraross commented 3 years ago

In the PAX schema, streetNamePhonetic is a fact about a Street. Do we need a separate street schema to provide the proper home for this field? localityNamePhonetic is a fact about a locality so is best left as a proposed addition to BCGNIS.

A street schema can also be used to validate street fields in the new-civic-addresses file. For example, let's say the Salmon Arm address authority provides the following street records:

Name Value
streetName 10
streetType Ave
streetDirection NE
localityName SalmonArm
subCountryCode BC

If they also provide the following civic addresses:

Name Value
civicNumber 101
streetName 10
streetType Ave
streetDirection N
localityName SalmonArm
subCountryCode BC

this address will be rejected by the geocoder data integration process because there is no 10 Ave N in Salmon Arm according to their street schema.

The street schema can also be used to validate streets in submitted road segment files . This allows for checking for mispelled streetNames between blocks of a street in the same locality, and unknown streetTypes, streetDirections, and streetQualifiers

mraross commented 3 years ago

Here is the proposed definition of the Street Schema. It includes spoken versions of the street and locality in .wav format. If this proposal is acceptable, streetNamePhonetic and localityNamePhonetic can be taken out of the civic address schema.

Field Name Data Type Required Default Description
streetName String Yes Official spelling of street name (e.g., Dallas)
streetNamePhonetic String No Phonetic spelling of streetName; only needed if a first-language English speaker would have difficultly pronouncing streetName
streetNameSpoken URL No A link to a .WAV file containing the streetName spoken by a person proficient in the language.
streetType String No Street type suffix( e.g., the Rd in Herd Rd); an address usually has a streetType
isStreetTypePrefix Boolean No false true if street type appears before street name as in HWY 17; false otherwise
streetDirection String No Canada Post street direction (the W in Burnside Ave W); one of C, E, N, NE, NW, SE, SW, or W (e.g., NW); Canada Post does not allow both prefix and suffix street directions in the same address as in: 103 N 52 St SW
isStreetDirectionPrefix Boolean No false true if street direction appears before street name as in SW Marine Dr; false otherwise
streetQualifier String No The qualifier of a street as assigned by a municipality (e.g., the Bridge in Johnson St Bridge); here is a complete list of streetQualifiers
localityName String Yes Locality name (e.g., Victoria)
subCountryCode String Yes ISO 3166-2 two-character subCountry code (e.g., BC for British Columbia, Canada)
dataOwner String Yes Name of address authority (e.g., MLIB)
changeDate String Yes Date this address data was last changed by the dataOwner; in format YYYYDDMM
notes String No Additional info about the street
mraross commented 3 years ago

Here is the proposed Locality Schema:

Name Type Default Description Required
latLon String A comma-separated pair of latitude, longitude values representing the population centre (e.g., city hall, town hall, post office) Yes
localityName String Official name of locality (e.g., Victoria) Yes
localityType String Locality type No
localityPhonetic String Phonetic spelling of localityName; only needed if a first-language English speaker would have difficulty pronouncing localityName No
localitySpoken URL A link to a .WAV file containing the localityName spoken by a person proficient in the language No
subCountryCode String ISO 3166-2 two-character subCountry code (e.g., BC for British Columbia, Canada) Yes
dataOwner String Name of address authority (e.g., MLIB) Yes
changeDate String Date this locality data was last changed by the dataOwner; in format YYYYDDMM Yes
notes String Additional info about the locality No

There should be one record for every locality with civic addresses.

This schema would be used for place name data coming from the toponomy authority (e.g., BCGNIS), not from the address authority.