Skip to main content

Falsehoods programmers believe about administrative hierarchy

Falsehoods

Programmers consistently assume addresses have statesregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality., counties, and a single unambiguous citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. — modeled after the US Postal Service's preferred format. Most of the world does not.

"Every address includes a state."

No address in the United Kingdom includes a stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.. No address in France, Germany, Japan, or China uses the concept. "StateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality." is a US/Australia/Mexico/Brazil/India federal concept. Most of the world's countries are unitary statesregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. with no first-level administrative division that corresponds to a US "stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.."

Even within federal countries that do have statesregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality., the stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. is sometimes omitted in informal addressing. A letter addressed to Sydney, NSW 2000 and a letter addressed to Sydney, 2000 are both deliverable in Australia — the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. uniquely identifies the stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.. A parser that requires a stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. will reject the second form.

PeliasPeliasAn open-source geocoder, Mailwoman's spiritual predecessor.'s whos_on_first classifier handles statesregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. through WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations. gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture. lookup. If the tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. matches a known stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. or regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. abbreviation, it is classified as region. If no tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. matches, the field is left empty — no false positive. But PeliasPeliasAn open-source geocoder, Mailwoman's spiritual predecessor. does not learn that 2000 implies NSW; that inferenceinferenceRunning the trained model on new input to get predictions, as opposed to training, which produces the model. In Mailwoman that means a small transformer encoder reads an address string and classifies every token — house number, street, locality, region, postcode, and the rest. A Who's On First gazetteer can feed soft location hints into the pass, but the model makes the final call on every label. Where a generative model writes text token by token, Mailwoman's output is a retrieval-augmented token classification: one label per input piece. is outside the parser's scope.

"Every address includes a county."

The UK's Royal Mail stopped using postal counties in 1996. Belgium, Norway, the Netherlands, and most other European countries do not use counties in addresses. In the US, counties are rarely included in mailing addresses — they appear in government records and parcelparcelA property polygon or record carrying a situs (site) address and often a separate owner mailing address. County GIS parcel aggregations are a training source for address-point variety and situs-vs-owner divergence. data but not in the address as written by a human.

Even where counties exist, they don't always align with postal delivery areas. The USPS does not use counties for routing — it uses ZIP codes and carrier routescarrier routeThe delivery path one postal carrier covers on a shift. A ZIP code is fundamentally a set of carrier routes, not a geographic polygon, which is why ZIP boundaries are fuzzy and shift over time.. A county boundary can bisect a ZIP code. A geocoder that resolves county from the ZIP code will be wrong for the part of the ZIP code in the neighboring county.

"A city name is unique within a country."

The UK has three Newports. The Netherlands has two cities called Eursinge — in the same provinceregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.. The US has 34 Springfields. A parser that resolves Springfield to a coordinate without stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. or postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. context is guessing.

This is where concordanceconcordanceA joint-decode signal that rewards a parse whose spans form a consistent Who's On First parent-child chain and vetoes contradictory ones — a hard veto for conflicts, a log-space bonus for full agreement. scoring (StagestageOne of the dataflow stages in the runtime pipeline (normalize, locale gate, kind classify, phrase group, token classify, sequence correct, reconcile, resolve). Distinct from tier (model vocabulary) and phase (plan milestone). 5) is essential: the resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. returns all 34 Springfields, and the reconciler picks the one whose parent chainparent chainThe sequence of administrative parents above a place — Springfield → Sangamon County → Illinois → United States. Used to check the geographic coherence of a parse. matches the rest of the address. If the address is Springfield, IL, the reconciler picks Springfield, IL because its parent is Illinois. If the address is just Springfield, the reconciler returns all 34 candidates and surfaces the ambiguity.

"A city is always a city."

Singapore is a city-statedual-role placeA place that is two placetypes at once — Berlin as both a city and a state, Washington DC as city and district. Resolved using the coincident-roles relation plus hierarchy completion.. Quebec can mean the provinceregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. or Quebec City. Washington can mean the stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality., the citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. (DC), or the university. Mexico can mean the countrycountryThe top-level address component (an ISO country). Closed-vocabulary, so it is best handled by a deterministic matcher feeding a proposal rather than a retrained model head. or Mexico City. New York can mean the citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy., the stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality., or the county (Manhattan).

A parser that classifies Quebec as region will be wrong when the user means Quebec City. A parser that classifies Washington as region because it matches the stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. abbreviation WA will be wrong when the user means DC. The ambiguity cannot be resolved from the tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. alone — it requires context from the surrounding address.

"A locality is a municipality."

Brooklyn, NY is a boroughboroughAn administrative or historical division of a city — e.g. the five boroughs of New York City. May be postal, legal, or both, and complicates the locality hierarchy. of New York City, not a municipalitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.. USPS accepts it as a "preferred last line" citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. for many NYC ZIP codes. The legal municipalitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. is New York. The postal citypostal cityThe city name the postal service uses for a ZIP, which can differ from the legal municipality a resident lives in — e.g. many suburbs share a larger city's postal name. A source of locality ambiguity. is Brooklyn. Both are correct in different contexts.

Hollywood, CA is a neighborhood of Los Angeles, not an independent citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.. USPS accepts it. Beverly Hills, CA 90210 is an independent citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy., but USPS allows "Los Angeles, CA 90210" as an alternate mailing citypostal cityThe city name the postal service uses for a ZIP, which can differ from the legal municipality a resident lives in — e.g. many suburbs share a larger city's postal name. A source of locality ambiguity. name. The same ZIP code can map to different municipal cities and different postal cities.

"Overseas territories are part of the parent country's postal system."

The Falkland Islands share the postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. FIQQ 1ZZ. The British Virgin Islands have their own postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. system. French overseas territories use French postcodespostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. but route through different postal hubs. District de Kerguelen, Terres Australes et Antarctiques Françaises, via la Réunion, France is a valid address — three administrative regionsregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. plus a routing indicator, all for one island in the Indian Ocean.

"Administrative boundaries don't change."

Counties are created, dissolved, and renamed. Cities annex neighboring areas. PostcodespostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. are split and merged. The county of Gwent, UK no longer exists. Lenin Street became something else in post-Soviet countries. A Douglas Perreault condo in Florida changed from Lutz to Tampa after a post office change — same physical location, different citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy..

Geocoders that maintain their own administrative boundary snapshots go stale. The resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. must be updatable independently of the parser. Mailwoman's architecture supports this — the resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. is a separate stagestageOne of the dataflow stages in the runtime pipeline (normalize, locale gate, kind classify, phrase group, token classify, sequence correct, reconcile, resolve). Distinct from tier (model vocabulary) and phase (plan milestone). that consumes a WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations. SQLite distribution. Updating the resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. is a data operation, not a code change.

How traditional geocoders handled these

libpostallibpostalAn open-source C address parser used by Pelias. Mailwoman's rule-based v0 and neural classifier supersede it. handles administrative hierarchy through per-labelcomponent tagOne of the 33 labels in Mailwoman's address schema — street, locality, region, postcode, house_number, unit, po_box, country, venue, intersection, and others. Each parsed span carries exactly one component tag. classification. The CRFCRF (Conditional Random Field). A statistical modeling method that predicts structured outputs by modeling dependencies between adjacent labels. Mailwoman uses a linear-chain CRF as the Viterbi decoder at inference time to enforce BIO label consistency — a B-street must be followed by I-street or O, never I-locality. learns that a tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. after a localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. and before a postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. is likely a regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.. The CRFCRF (Conditional Random Field). A statistical modeling method that predicts structured outputs by modeling dependencies between adjacent labels. Mailwoman uses a linear-chain CRF as the Viterbi decoder at inference time to enforce BIO label consistency — a B-street must be followed by I-street or O, never I-locality. does not know that IL is Illinois — it learns the statistical distribution of where regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.-shaped tokenstokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. appear. This works for structural identification but not for disambiguation: libpostallibpostalAn open-source C address parser used by Pelias. Mailwoman's rule-based v0 and neural classifier supersede it. correctly identifies region=IL but cannot tell you whether Springfield, IL is a valid combination.

PeliasPeliasAn open-source geocoder, Mailwoman's spiritual predecessor. uses WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations. gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture. lookup for the whos_on_first classifier. TokenstokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. matching known administrative names are classified by placetypeplacetypeThe Who's On First hierarchical classification of places: planet → continent → country → region → county → locality → neighbourhood. The resolver uses placetype to rank candidates — an exact locality match outranks a county-level match. (countrycountryThe top-level address component (an ISO country). Closed-vocabulary, so it is best handled by a deterministic matcher feeding a proposal rather than a retrained model head., regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality., localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy., neighbourhood). PeliasPeliasAn open-source geocoder, Mailwoman's spiritual predecessor. also uses the Elasticsearch-backed resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. to find candidate places and score them by name match + population. But PeliasPeliasAn open-source geocoder, Mailwoman's spiritual predecessor.'s parser and resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. are separate — the resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. cannot feed back into the parser to correct a misclassification. If the parser tags Quebec as region when the user meant Quebec City, the resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. searches for regionsregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. named Quebec and returns the provinceregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality., not the citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy..

Google's API handles most of these through its integrated modelneural classifierThe machine learning model at the core of Mailwoman's parser — a transformer encoder (~30M parameters) trained from scratch to do BIO token classification over addresses. It learns the 'grammar' of address formats; the gazetteer supplies the 'atlas.'. Brooklyn, NY resolves to Kings County, New York City. Springfield alone returns the most-popular Springfield (IL) with a structured address that includes the stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.. But the user cannot inspect how Google disambiguated — the result is a single coordinate, not a candidate set.

What the neural approach changes

The classifier (StagestageOne of the dataflow stages in the runtime pipeline (normalize, locale gate, kind classify, phrase group, token classify, sequence correct, reconcile, resolve). Distinct from tier (model vocabulary) and phase (plan milestone). 3) learns administrative name distributions from corpuscorpusThe BIO-labeled training data used to train Mailwoman's neural classifier. Assembled from real sources (OpenAddresses, National Address Database) and synthetic shards (boundary stress, order variants, negative space). Managed by @mailwoman/corpus. co-occurrence. A tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. matching a known stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. abbreviation appearing after a localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. and before a postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. is region. A tokentokenOne word or subword in the tokenized input. For the neural classifier, tokens come from SentencePiece (subword units); for the rule classifiers, tokens are whitespace- and punctuation-separated words. matching a known stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. abbreviation appearing at the start of the address without surrounding components is ambiguous. The modelneural classifierThe machine learning model at the core of Mailwoman's parser — a transformer encoder (~30M parameters) trained from scratch to do BIO token classification over addresses. It learns the 'grammar' of address formats; the gazetteer supplies the 'atlas.' learns the positional distribution on top of the dictionary match.

The resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. (StagestageOne of the dataflow stages in the runtime pipeline (normalize, locale gate, kind classify, phrase group, token classify, sequence correct, reconcile, resolve). Distinct from tier (model vocabulary) and phase (plan milestone). 6) returns top-K candidates per administrative spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree.. Springfield returns 34 candidates. Quebec returns both the provinceregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. and the citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.. The resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. does not pick one — it surfaces all of them.

The reconciler (StagestageOne of the dataflow stages in the runtime pipeline (normalize, locale gate, kind classify, phrase group, token classify, sequence correct, reconcile, resolve). Distinct from tier (model vocabulary) and phase (plan milestone). 5) uses WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations. parent chainsparent chainThe sequence of administrative parents above a place — Springfield → Sangamon County → Illinois → United States. Used to check the geographic coherence of a parse. to pick the coherent candidate. If the address is Springfield, IL, the reconciler picks the Springfield whose parent chainparent chainThe sequence of administrative parents above a place — Springfield → Sangamon County → Illinois → United States. Used to check the geographic coherence of a parse. contains Illinois. If the address is just Springfield, the reconciler returns all candidates and lets the downstream application decide. The parser identifies components, the resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. returns possibilities, and the reconciler picks the coherent one. If no single candidate is coherent, the reconciler surfaces the ambiguity instead of picking one anyway.

What Mailwoman still can't do

  • Postal citypostal cityThe city name the postal service uses for a ZIP, which can differ from the legal municipality a resident lives in — e.g. many suburbs share a larger city's postal name. A source of locality ambiguity. vs. legal municipalitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.. The resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. uses WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations.'s administrative hierarchy, which reflects legal boundaries. Brooklyn, NY as a postal citypostal cityThe city name the postal service uses for a ZIP, which can differ from the legal municipality a resident lives in — e.g. many suburbs share a larger city's postal name. A source of locality ambiguity. is not in WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations.'s hierarchy — WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations. has Kings County (legal) and New York City (legal), with Brooklyn as a neighbourhood. The reconciler can find that the ZIP code's parent chainparent chainThe sequence of administrative parents above a place — Springfield → Sangamon County → Illinois → United States. Used to check the geographic coherence of a parse. includes Kings County, but it cannot return "Brooklyn" as the municipalitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. name without an alias layerlayerOne transformer block — attention plus a feed-forward network, with normalization and residual connections — applied to every position. Stacking layers lets the model build up richer representations; Mailwoman's encoder has 6..
  • Real-time administrative boundary updates. WOFWOF (Who's On First). An open-source gazetteer of places maintained by Mapzen/whosonfirst. Mailwoman builds a custom SQLite database from WOF GeoJSON repos, extended with postcode data, importance scores, and coincident-role relations. SQLite is a snapshot. When cities annex or counties dissolve, the snapshot drifts. The resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. can be updated independently, but the update must be triggered.
  • City-statedual-role placeA place that is two placetypes at once — Berlin as both a city and a state, Washington DC as city and district. Resolved using the coincident-roles relation plus hierarchy completion. disambiguation without context. Singapore, Singapore is unambiguous because the countrycountryThe top-level address component (an ISO country). Closed-vocabulary, so it is best handled by a deterministic matcher feeding a proposal rather than a retrained model head. IS the citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.. Mexico without context is ambiguous between the countrycountryThe top-level address component (an ISO country). Closed-vocabulary, so it is best handled by a deterministic matcher feeding a proposal rather than a retrained model head. and Mexico City. The resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. returns both candidates; the downstream application must decide which the user meant.

References