Full Address
geography.address.full_addressComplete street address (number, street, city, postal code, country). Format and order locale-specific. May include apartment/suite numbers.
Worked samples
DuckDB 1.5.5 · finetype 0.6.64
| Value | As VARCHAR | city | street_name | street_number |
|---|---|---|---|---|
| 123 Main Street, New York, NY 10001, USA | 123 Main Street, New York, NY 10001, USA | New York | Main Street | 123 |
| 456 Oxford Street, London, W1C 1AX, UK | 456 Oxford Street, London, W1C 1AX, UK | London | Oxford Street | 456 |
| 789 Rue de Rivoli, Paris, 75004, France | 789 Rue de Rivoli, Paris, 75004, France | Paris | Rue de Rivoli | 789 |
Background
Origin
FineType defines Full Address as a complete street address of number, street, city, postal code and country, whose format and order are locale-specific.[1] The Universal Postal Union says there are more than 200 address formats in the world.[2] The Universal Postal Union says at least 20 language scripts are officially used to write addresses.[2] Read a full address column as a family of national conventions rather than one format. (Meridian's view)
The Universal Postal Union has developed two addressing standards, S42 and S53.[2] UPU S42 comprises a generic list of address elements and country-specific templates that tell users how to turn those elements into an accurately formatted address.[2] UPU S53 facilitates the exchange of name and address data between postal authorities, businesses, mailers and other organisations.[2] ISO 19160-1:2015, Addressing — Part 1: Conceptual model, was published by ISO in December 2015.[3]
In most of the world, addresses are written in order from most specific to general, starting with the addressee and ending with the largest geographical unit.[4] Chinese, Japanese, Korean and Taiwanese addresses written in their native scripts run from the largest geographical area to the smallest.[4] When addresses are written inline, line breaks are replaced by commas.[4]
Use
Conventions on the placing of house numbers differ: either before or after the street name.[4] In the UK, postal codes are written on a separate line at the end of the address.[4] In Australia, Canada and the United States, postal codes usually appear immediately after the state or province, on the same line.[4]
Google's Places API returns formattedAddress, described as a full, human-readable address for a place.[5] Google's Geocoding API documentation says not to parse the formatted address programmatically, and to use the separate address components instead.[6] When a source system also offers address components, keep them and treat the full address as a display string. (Meridian's view)
libpostal is a C library for parsing and normalising street addresses around the world using statistical NLP and open data.[7] libpostal's international address parser is trained on over 1 billion addresses in every inhabited country on Earth.[7] usaddress is a Python library for parsing unstructured United States address strings into address components.[8] The usaddress documentation says it cannot identify address components with perfect accuracy, nor verify that a given address is correct or valid.[8] Treat any parsed street, city or postcode as a best guess to be checked, not as a validated value. (Meridian's view)
RFC 4180 says fields containing line breaks, double quotes and commas should be enclosed in double quotes.[9] Check that a CSV of full addresses quotes its fields, and count the columns on a few rows before loading it. (Meridian's view) Addresses identify people and places, so handle the column as personal data. (Meridian's view)
Sources
- [1]finetype/labels/definitions_geography.yaml at main · meridian-online/finetypeFineType
- [2]Addressing Solutionsorganisation
- [3]ISO 19160-1:2015 - Addressing — Part 1: Conceptual modelcatalogue entry
- [4]Address - Wikipediasecondary source
- [5]REST Resource: places | Places API (New) | Google for Developersdocumentation
- [6]Geocoding request and response | Geocoding API | Google for Developersdocumentation
- [7]GitHub - openvenues/libpostal: A C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.secondary source
- [8]GitHub - datamade/usaddress: :us: a python library for parsing unstructured United States address strings into address componentssecondary source
- [9]RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Filesstandard
Detection notes
v1 migration: Was address.address. Locale-specific for address format (US format vs European format, etc.). Decompose extracts components but requires more sophisticated parsing for reliability.
Use it
$ finetype infer -i "123 Main Street, New York, NY 10001, USA" --mode column
→ geography.address.full_address
SELECT ft_infer('123 Main Street, New York, NY 10001, USA');
-- → 'geography.address.full_address'CAST({col} AS VARCHAR)Schema
https://meridian.online/schemas/geography.address.full_address · Frictionless type string
finetype taxonomy geography.address.full_address -o json-schema