The place-matching decisions registry. Gazetteers of the ancient world — Pleiades, Trismegistos Geo, CIGS, GeoNames — already hold the places. What no shared resource holds is the matching decision: which of those identities a source’s verbatim place-name string actually denotes.
Consider three real strings from the corpora this registry serves:
"Girsu (mod. Tello)" (CDLI’s house composite) — matched:
cigs:GIR, pleiades:912855."Mediolanum" (an epigraphic corpus’s bare name) — six Pleiades
places carry that title; only a recorded decision can say which
Milan is meant."Irisagrig (mod. uncertain)" — the site is unidentified in reality;
unlocatable is the honest answer, not a failed match.names.yml records exactly these judgments, one row per (source,
verbatim string) — and nothing else. An unlisted name is unmatched,
visibly: coverage claims stay honest because only decisions are rows
(the identity-default doctrine, inherited from
nabu-lects).
| status | meaning | example |
|---|---|---|
matched |
the string denotes these gazetteer identities (refs required) |
{refs: [cigs:GIR, pleiades:912855], status: matched} |
unlocatable |
a real ancient place whose site is unidentified (note required) |
Irisagrig |
region |
the string is a regional bin, not a place | “Middle Egypt (from Kairo to Assiut)” |
ghost |
an attested string naming no identifiable place | fragmentary toponyms |
rejected |
examined and deliberately not matched (note required) |
homonym ruled out |
alias_of |
redirects to another verbatim key in the same section | "Roma?" → "Roma" |
certainty: low marks upstream-qualified claims (a ?-suffixed
provenience). Namespaces are declared in namespaces.yml with id
shapes; they are parallel claims — equivalences between gazetteers
are the gazetteers’ own crosswalk data, never inferred here.
Where text analysis, enrichment, or AI-assisted scholarship establishes
a place no gazetteer registers, the registry mints its own record in
places.yml (namespace np:) — name, optional coordinates, and a
required evidence trail, so every minted place is a reviewable
scholarly claim. names.yml rows then cite np:<ID> like any other ref.
Gazetteers stay the authorities for what they cover; the native lane
exists for what they don’t yet.
See the schema for the full grammar and prior art for why this layer exists at all.
bin/validate (dependency-free Ruby) refuses duplicate source/name
keys (YAML’s silent last-wins is a data-loss class), closes the status
vocabulary, checks every ref against its namespace’s id shape, and
requires notes where honesty needs them. Consumers re-run it against
their pinned copy.
CC BY 4.0. Maintained as part of the Nabu research infrastructure.