# Vercy AI instruction - YAML 1.2 (JSON-compatible) { "vercy": "1.0-draft", "publication": { "status": "published", "adjudicationStatus": "reviewable-draft", "publishableCanonical": false, "generatedAt": "2026-08-24T09:25:49Z", "synthesisSha256": "9f8bf897cb15a88ed9f193def23a9a0b48b24cece9ce35864c5dc258090dc21e", "providerMode": "dual-provider", "providers": [ "Claude", "Grok" ], "waivedProviders": [] }, "metaModel": { "id": "WM-PLC-010", "registryId": "vr.wm-plc-010", "name": "Gazetteer Place", "version": "0.3.0-research.1", "previousVersions": [], "entryKind": "entity", "family": "World Models", "category": "Physical world and living systems", "industry": [ "Cross-industry" ], "domain": [ "PHY.PLC.GAZ" ], "tags": [ "gazetteer", "place", "phy.plc.gaz" ], "status": "published" }, "canonicalUrl": "https://ver.cy/models/wm-plc-010-gazetteer-place/", "sourceUrl": "https://github.com/ver-cy/world-models/tree/feat/mega-model-registry/research/runs/wm-plc-010", "model": { "registry_id": "vr.wm-plc-010", "model_id": "WM-PLC-010", "name": "Gazetteer Place", "entry_kind": "entity", "purpose": "Provide the format-neutral context an AI agent needs to understand, create, inspect and operate a governed gazetteer place record: a named real-world location identified by a geographic identifier, with temporally scoped toponyms, classification, position, authority, provenance, relationships and access controls.", "scope_statement": "The model covers one place as recorded in a gazetteer, i.e. an ISO 19112 location instance identified by a geographic identifier within a declared location type and gazetteer register. It covers naming (multilingual, multi-script, temporally scoped), place-type classification, representative position and geometry with declared CRS and accuracy, existence and record lifecycle, naming authority and decisions, provenance and attestation, hierarchy and topology, cross-gazetteer concordance, sensitivity and access control, validation and retention. It excludes address semantics, coordinate reference system definition, boundary determination, cartographic rendering and any observation that merely cites a place.", "in_scope": [ "Place record identity, identifier minting, persistence and resolution", "Toponyms with language, script, transliteration, pronunciation, nativeness, status and temporal validity", "Place type / feature type classification including local types and type change over time", "Representative position, geometry set, extent, CRS declaration and coordinate encoding constraints", "Positional accuracy, resolution, viewing-scale bounds and fitness-for-use statements", "Real-world existence period and record version lifespan, including uncertain and open-ended dates", "Supersession, merge, split, deprecation and tombstoning of place records", "Naming authority scope, official status, decision process and effective dates", "Contested, disputed and competing names or claims and their audience-scoped presentation", "Custodian, administrator, contributor, licence and editorial lineage", "Partitive/administrative hierarchy and topological or associative relations to other places", "Concordance to external gazetteers with match type and confidence", "Sensitivity classification, locality generalization and access rules", "Validation, conformance testing and quality measurement", "Exchange encodings and query-service projections as non-semantic renderings" ], "out_of_scope": [ "Address and addressable-object semantics (ISO 19160-1 address model, address components, postal templates)", "Definition of coordinate reference systems, datums and transformations (ISO 19111 / EPSG registry content)", "Legal determination or delimitation of administrative and international boundaries", "Cadastral parcels, property rights and land tenure", "Building, facility and asset management records", "Commercial point-of-interest operations such as opening hours, capacity, booking and pricing", "Transport network topology, route segments and navigation instructions", "Cartographic styling, symbolisation and map production", "Observation, occurrence, event or transaction records that merely reference a place", "Language, script, country and currency code registries themselves" ], "boundary_notes": [ { "neighbor": "Address / addressable object model (ISO 19160-1)", "distinction": "A gazetteer place is a named real-world feature referenced indirectly by a geographic identifier; an address is a structured, human-oriented designation of an addressable object. ISO/TC 211 concluded that addressing requirements are sufficiently different from the scope of ISO 19112, so address components must be referenced, not absorbed.", "source_refs": [ "SRC-001", "SRC-017" ] }, { "neighbor": "Administrative unit and statistical geography registers (UN M49, ISO 3166, INSPIRE AU)", "distinction": "This model records that a place sits in, or is coded to, an administrative or statistical area and carries country codes; it does not define the area hierarchy, its legal basis or its boundary geometry, which remain owned by the register. UN M49 explicitly disclaims political interpretation of its groupings.", "source_refs": [ "SRC-002", "SRC-010", "SRC-011" ] }, { "neighbor": "Coordinate reference system model (ISO 19111 / EPSG)", "distinction": "The place record declares which CRS its coordinates are expressed in and how they are encoded; the definition of the CRS, its datum and its transformations is external. GeoSPARQL 1.1 treats spatial reference system as a broader category than CRS and relies on external CRS identity in geometry literals.", "source_refs": [ "SRC-003", "SRC-004", "SRC-005" ] }, { "neighbor": "Point-of-interest / local business model (schema.org Place and LocalBusiness)", "distinction": "schema.org Place mixes stable physical extension with operational commerce attributes such as opening hours, capacity and booking pages. Only the stable named-place core is in scope; operational and commercial attributes belong to a sibling POI/venue model.", "source_refs": [ "SRC-016" ] }, { "neighbor": "Place type / feature type vocabulary (GeoNames feature classes and codes, Getty AAT, INSPIRE NamedPlaceTypeValue)", "distinction": "The model requires a classification assertion with a resolvable vocabulary concept and optional source label, but the controlled vocabulary itself is a separate classifier model with its own versioning and deprecation rules.", "source_refs": [ "SRC-002", "SRC-011", "SRC-012" ] }, { "neighbor": "Bibliographic source / citation model", "distinction": "Attestations, citations and name sources are first-class here as links plus temporal and confidence qualifiers, but the bibliographic description of the cited work (authors, edition, holdings) is delegated to a citation model.", "source_refs": [ "SRC-011", "SRC-014" ] } ] }, "sources": [ { "id": "SRC-001", "title": "ISO 19112:2019 Geographic information — Spatial referencing by geographic identifiers", "organization": "International Organization for Standardization (ISO/TC 211)", "url": "https://www.iso.org/standard/70742.html", "version_or_date": "Edition 2, published 2019-01", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:05:00Z", "relevance": "Normative source of the gazetteer conceptual schema: gazetteer as a directory of geographic identifiers, location instance, location type and spatial reference system using geographic identifiers. Catalogue page returned HTTP 403 to automated retrieval; scope confirmed from ISO catalogue metadata and the publicly distributed preview." }, { "id": "SRC-002", "title": "D2.8.I.3 INSPIRE Data Specification on Geographical Names – Technical Guidelines", "organization": "European Commission, INSPIRE Maintenance and Implementation Group", "url": "https://inspire-mif.github.io/technical-guidelines/data/gn/dataspecification_gn.pdf", "version_or_date": "v3.1.0, 2024-07-31", "source_type": "schema", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:07:00Z", "relevance": "Normative application schema for NamedPlace, GeographicalName, SpellingOfName and PronunciationOfName, including inspireId, lifespan versioning, viewing-scale bounds, nativeness, name status and script/transliteration handling." }, { "id": "SRC-003", "title": "OGC GeoSPARQL 1.1 — A Geographic Query Language for RDF Data (22-047r1)", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/is/22-047r1/22-047r1.html", "version_or_date": "Version 1.1, published 2024-01-29", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:09:00Z", "relevance": "Feature/Geometry separation, hasGeometry and hasDefaultGeometry, serialisations (asWKT, asGeoJSON), derived properties, three topological relation families (Simple Features, Egenhofer, RCC8) and SHACL shapes for validation." }, { "id": "SRC-004", "title": "Spatial Data on the Web Best Practices (OGC 15-107)", "organization": "W3C and Open Geospatial Consortium", "url": "https://www.w3.org/TR/sdw-bp/", "version_or_date": "W3C Group Draft Note, 2023-09-19", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:11:00Z", "relevance": "Best practices for persistent HTTP URIs for spatial things, linking, geometry usability, CRS choice, coordinate encoding disclosure, relative positioning, relation types, change over time, online validation schemas, positional accuracy and responsible use." }, { "id": "SRC-005", "title": "RFC 7946 — The GeoJSON Format", "organization": "Internet Engineering Task Force", "url": "https://datatracker.ietf.org/doc/html/rfc7946", "version_or_date": "Proposed Standard, August 2016", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:13:00Z", "relevance": "Fixed WGS 84 CRS with longitude-before-latitude decimal degrees, the nine geometry types, Feature id and bbox members, antimeridian cutting rule and the foreign-member extension mechanism used by gazetteer profiles." }, { "id": "SRC-006", "title": "OGC API - Features - Part 1: Core, corrigendum (17-069r4)", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/is/17-069r4/17-069r4.html", "version_or_date": "Version 1.0.1, 2022-05-11", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:15:00Z", "relevance": "Resource paths for collections and items, feature identifier addressing, bbox/datetime/limit query parameters with RFC 3339 intervals, default OGC:CRS84 and required link relations — the reference projection for a gazetteer query interface." }, { "id": "SRC-007", "title": "What is the Geographic Names Information System (GNIS)?", "organization": "U.S. Geological Survey / U.S. Board on Geographic Names", "url": "https://www.usgs.gov/us-board-on-geographic-names/what-geographic-names-information-system-gnis", "version_or_date": "Accessed 2026-08-24", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:17:00Z", "relevance": "National authoritative gazetteer practice: permanent Feature ID, official name and official location standardised by ANSI INCITS 446-2008, one official name per feature for Federal use, variant names, feature classes, BGN decision date, historical features and the explicit limit of BGN authority to Federal use." }, { "id": "SRC-008", "title": "U.S. Board on Geographic Names — Principles, Policies, and Procedures: Domestic Geographic Names", "organization": "U.S. Board on Geographic Names / U.S. Geological Survey", "url": "https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/media/files/DNC_PPP.pdf", "version_or_date": "USGS-hosted edition, accessed 2026-08-24 (exact revision date not machine-readable in this session)", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:19:00Z", "relevance": "Naming decision authority and process: proposal criteria, presumption against changing long-established names, commemorative-name rules including a minimum period after death, and a policy prohibiting derogatory or offensive names." }, { "id": "SRC-009", "title": "UNGEGN Working Group on Toponymic Data Files and Gazetteers", "organization": "United Nations Statistics Division / United Nations Group of Experts on Geographical Names", "url": "https://unstats.un.org/unsd/geoinfo/ungegn/wg2.html", "version_or_date": "Accessed 2026-08-24", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:21:00Z", "relevance": "International mandate for creation, maintenance and output of toponymic data files and gazetteers, recommended content and structure of nationally produced authoritative gazetteers, exchange formats, and liaison with Unicode, ISO and OGC." }, { "id": "SRC-010", "title": "Standard country or area codes for statistical use (M49)", "organization": "United Nations Statistics Division", "url": "https://unstats.un.org/unsd/methodology/m49/", "version_or_date": "Online revision, accessed 2026-08-24", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:23:00Z", "relevance": "Numeric country/area codes with ISO alpha-3 alignment and region/sub-region/intermediate-region grouping, plus the explicit disclaimer that groupings and designations imply no position on legal status or delimitation of frontiers." }, { "id": "SRC-011", "title": "Linked Places Format (LPF) specification", "organization": "Linked Pasts / World Historical Gazetteer, University of Pittsburgh", "url": "https://github.com/LinkedPasts/linked-places-format/blob/main/README.md", "version_or_date": "v1.3, 2024-06-24", "source_type": "schema", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T10:25:00Z", "relevance": "Temporally scoped names, types, geometries and relations on a single place record; required title, ccodes and fclasses; link types exactMatch/closeMatch/primaryTopicOf/seeAlso; per-element citations and certainty; and the 'when' object with timespans, named periods, duration and certainty." }, { "id": "SRC-012", "title": "GeoNames Ontology documentation", "organization": "GeoNames", "url": "https://www.geonames.org/ontology/documentation.html", "version_or_date": "Version 3.3, July 2021", "source_type": "ontology", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T10:27:00Z", "relevance": "Feature and GeonamesFeature classes with a mandatory geonamesID, typed name properties (name, alternateName, officialName, shortName, colloquialName, historicalName), featureClass/featureCode classification and parentFeature/parentADM1-4 hierarchy." }, { "id": "SRC-013", "title": "Who's On First — wof: properties documentation", "organization": "Who's On First", "url": "https://whosonfirst.org/docs/properties/wof/", "version_or_date": "Accessed 2026-08-24", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T10:29:00Z", "relevance": "Operational gazetteer record management: stable numeric wof:id, placetype, parent_id with sentinel values for unknown/complicated/contested/multiple parents, hierarchy and belongsto, breaches, concordances, supersedes/superseded_by, geomhash, lastmodified and the wof:controlled convention protecting human edits from automated overwrite." }, { "id": "SRC-014", "title": "Getty Thesaurus of Geographic Names (TGN): Editorial Guidelines", "organization": "J. Paul Getty Trust, Getty Vocabulary Program", "url": "https://www.getty.edu/publications/vocabularies-editorial-guidelines/tgn-guidelines/", "version_or_date": "2024 edition", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T10:31:00Z", "relevance": "Editorial rules for a curated place authority: required preferred place type, preferred/variant and vernacular/historical names with display and start/end dates, preferred and non-preferred hierarchical parents, point and bounding-box coordinates, notes, sources and contributors, and rules for merging, moving and deleting records." }, { "id": "SRC-015", "title": "Current Best Practices for Generalizing Sensitive Species Occurrence Data", "organization": "Global Biodiversity Information Facility (GBIF)", "url": "https://docs.gbif.org/sensitive-species-best-practices/master/en/", "version_or_date": "Version 1.0, November 2020 (DOI 10.15468/doc-5jp4-5g10)", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T10:33:00Z", "relevance": "Graded sensitivity categories with corresponding coordinate generalization (region-only, 0.1, 0.01, 0.001 degrees), preference for grid-based generalization over randomization, mandatory disclosure of what was withheld or generalized, provider-held decision authority and a recorded date for sensitivity review." }, { "id": "SRC-016", "title": "schema.org Place", "organization": "Schema.org Community Group", "url": "https://schema.org/Place", "version_or_date": "Accessed 2026-08-24", "source_type": "schema", "primary_source": true, "authority_tier": 3, "accessed_at": "2026-08-24T10:35:00Z", "relevance": "Widely deployed web vocabulary defining Place as an entity with fixed physical extension, with containedInPlace/containsPlace, DE-9IM-derived geo relations, identifier and sameAs — and with commercial/operational properties that mark the boundary against a POI model." }, { "id": "SRC-017", "title": "ISO 19160-1:2015 Addressing — Part 1: Conceptual model", "organization": "International Organization for Standardization (ISO/TC 211)", "url": "https://www.iso.org/standard/61710.html", "version_or_date": "Edition 1, 2015", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T10:37:00Z", "relevance": "Boundary reference: defines the address conceptual model and address classes independently of ISO 19112 geographic identifiers, establishing that addressing is a separate concern from gazetteer place identity." }, { "id": "SRC-018", "title": "INSPIRE Data Specification on Geographical Names – Technical Guidelines", "organization": "European Commission INSPIRE Maintenance and Implementation Group (MIG)", "url": "https://knowledge-base.inspire.ec.europa.eu/publications/inspire-data-specification-geographical-names-technical-guidelines_en", "version_or_date": "Technical Guidelines published 2024-07-31 (theme Geographical Names; NamedPlace application schema)", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T16:05:00Z", "relevance": "Authoritative European spatial-object model for NamedPlace and GeographicalName, including inspireId, geometry, type, related objects, lifespan, nativeness, nameStatus, spelling, language and viewing resolution." }, { "id": "SRC-019", "title": "GeoNames Ontology", "organization": "GeoNames / Unxos GmbH", "url": "https://www.geonames.org/ontology", "version_or_date": "ontology_v3.3 (2021-07)", "source_type": "ontology", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T16:10:00Z", "relevance": "Operational linked-data gazetteer feature model: geonamesID, Feature versus document URI, name and alternateName, featureClass/featureCode, parent hierarchy, nearby/neighbours/contains, WGS84 position, population, postalCode and licence metadata." }, { "id": "SRC-020", "title": "Gazetteer Service – Application Profile of the Web Feature Service Best Practice (OGC 11-122r1)", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/rfc/11-122r1/11-122r1.pdf", "version_or_date": "Version 1.0, published 2012-02-17 (OGC Best Practice, not an OGC Standard)", "source_type": "standard", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T16:15:00Z", "relevance": "Service and instance profile implementing ISO 19112 Location Instances: search and retrieve named places, gazetteer metadata, parent-child navigation and WFS transactions. Explicitly a Best Practice, not a conformance standard." }, { "id": "SRC-021", "title": "Manual for the National Standardization of Geographical Names (UNGEGN, Statistical Papers Series M No. 88)", "organization": "United Nations Group of Experts on Geographical Names / United Nations Statistics Division", "url": "https://unstats.un.org/unsd/publication/seriesm/seriesm_88e.pdf", "version_or_date": "2006 (Sales No. E.06.XVII.7)", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T16:20:00Z", "relevance": "UN normative practice for national names authorities, standardized names versus allonyms, romanization, exonyms, indigenous names, gazetteer publication and the principle that a names authority sanctions the preferred name." }, { "id": "SRC-022", "title": "About the Getty Thesaurus of Geographic Names (TGN)", "organization": "Getty Research Institute, Vocabulary Program", "url": "https://www.getty.edu/research/tools/vocabularies/tgn/about.html", "version_or_date": "page as accessed 2026-08-24 (TGN reported 3,020,110 place records)", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T16:30:00Z", "relevance": "Authoritative thesaurus model for a place record: Subject ID, names with flags, place types, polyhierarchy, associative relationships, approximate WGS 84 coordinates, sources, historical and lost places, merge mapping and explicit non-GIS stance." }, { "id": "SRC-023", "title": "Domestic Names and the Geographic Names Information System (GNIS)", "organization": "U.S. Board on Geographic Names / U.S. Geological Survey", "url": "https://www.usgs.gov/us-board-on-geographic-names/domestic-names", "version_or_date": "page as accessed 2026-08-24; GNIS download cycle described as bi-monthly", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T16:40:00Z", "relevance": "Federal names-authority process and national gazetteer for U.S. domestic names: Feature ID, official and variant names, feature class, historical flag, proposal and decision workflow, cave-location restriction, and explicit exclusions (roads, ZIP Codes, most cultural features)." }, { "id": "SRC-024", "title": "About GeoNames", "organization": "GeoNames / Unxos GmbH", "url": "https://www.geonames.org/about.html", "version_or_date": "page as accessed 2026-08-24", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-24T16:45:00Z", "relevance": "Documents GeoNames as a compiled gazetteer integrating NGA GNS, USGS GNIS and other national sources; nine feature classes and 645 feature codes; WGS84; Creative Commons Attribution licensing and wiki-style community update." }, { "id": "SRC-025", "title": "ISO/TC 211 gazetteer schema requirement (ISO 19112:2019 /req/gaz/sch)", "organization": "ISO/TC 211", "url": "https://standards.isotc211.org/19112/-1/2/req/gaz/sch/", "version_or_date": "ISO 19112:2019 requirement identifier 19112/-1/2/req/gaz/sch", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-24T16:02:00Z", "relevance": "Normative statement that gazetteer schema conformance is defined by ISO 19112:2019, grounding the Gazetteer object type as a first-class conformance target distinct from the spatial-reference-system class." } ], "structure": { "bundles": [ { "id": "place-identity-and-naming", "name": "Place Identity and Naming", "description": "What the place is, how it is identified persistently, and how it is named across languages, scripts, statuses and time.", "rationale": "ISO 19112 makes the geographic identifier the referencing mechanism, while INSPIRE, GeoNames, Getty TGN and LPF all separate the stable place object from a set of temporally and linguistically qualified name assertions. Conflating identity with a name string is the single most common failure in gazetteer data.", "source_refs": [ "SRC-001", "SRC-002", "SRC-011", "SRC-012", "SRC-014" ], "layers": [ { "id": "identity-and-identifiers", "name": "Identity and Identifiers", "description": "Establishing and resolving the durable identity of the place record and its position in a gazetteer register.", "source_refs": [ "SRC-001", "SRC-004", "SRC-007", "SRC-013" ], "findings": [ { "id": "place-record-identity", "name": "Place record identity and identifier minting", "description": "A gazetteer place is identified by a persistent, opaque identifier that survives renaming, reclassification and geometry revision. Authoritative master-system identifiers (GNIS Feature ID, INSPIRE inspireId, national gazetteer key) take precedence; a governed HTTP URI is minted for web resolution; only where no external authority exists does the adopting Dimension mint a UUID or ULID. A date, a name or a coordinate pair is never the identifier.", "source_refs": [ "SRC-001", "SRC-004", "SRC-007", "SRC-013", "SRC-002" ], "questions": [ { "id": "q-identity-authority", "text": "Which authoritative master system already identifies this place, and what is its identifier value and namespace?", "kind": "identity", "answer_data": [ "master system name and register URI", "native identifier value", "identifier scheme or namespace URI", "evidence that the identifier is the authority's primary key" ] }, { "id": "q-identity-uri", "text": "What persistent HTTP URI resolves to this place record, and who guarantees that it will not be reused?", "kind": "identity", "answer_data": [ "resolvable HTTPS URI", "namespace controller", "persistence commitment or policy URI", "content-negotiation targets" ] }, { "id": "q-identity-opaque", "text": "Does the identifier remain unchanged when the place is renamed, reclassified or re-delimited, and what evidence supports that?", "kind": "constraint", "answer_data": [ "identifier stability policy reference", "worked example of a rename that preserved the identifier", "list of change classes that force a new identifier" ] }, { "id": "q-identity-collision", "text": "How are two candidate records determined to denote the same place rather than two distinct places?", "kind": "validation", "answer_data": [ "sameness criteria (type, extent overlap, name evidence)", "adjudication rule and reviewer role", "merge decision record reference" ] } ], "data_elements": [ { "id": "place-id", "name": "placeIdentifier", "description": "Opaque persistent identifier for the place record within its gazetteer register.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-007", "SRC-013" ] }, { "id": "place-uri", "name": "placeUri", "description": "Governed resolvable HTTPS URI for the place as a spatial thing.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-003" ] }, { "id": "identifier-scheme", "name": "identifierScheme", "description": "Namespace or register that governs the identifier value and its uniqueness rules.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-007" ] }, { "id": "identifier-assignment-time", "name": "identifierAssignedAt", "description": "RFC 3339 timestamp at which the identifier was first assigned by the governing register.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006", "SRC-002" ] } ], "artifacts": [ { "id": "place-identity-certificate", "name": "Place identifier registration entry", "description": "Register entry recording the minted identifier, its scheme, the assigning authority, the assignment timestamp and the persistence commitment.", "media_or_form": [ "register record", "signed registration statement", "resolvable URI document" ], "serial": true, "identity_strategy": "Keyed by identifierScheme plus placeIdentifier; the registration entry itself carries a monotonic serial and an RFC 3339 assignment timestamp.", "source_refs": [ "SRC-004", "SRC-007", "SRC-001" ] } ], "inline_only_rationale": null }, { "id": "geographic-identifier-and-indirect-referencing", "name": "Geographic identifier, location type and indirect spatial referencing", "description": "ISO 19112 positions a gazetteer as a directory of geographic identifiers describing location instances, where a location type defines the semantics of the instances it admits. The place record must therefore declare which gazetteer register and which location type it belongs to, and must support indirect referencing — resolving a label or code to a position rather than carrying coordinates alone.", "source_refs": [ "SRC-001", "SRC-009", "SRC-004" ], "questions": [ { "id": "q-gi-locationtype", "text": "Which location type does this place instantiate, and what definition and territory of use does that type declare?", "kind": "classification", "answer_data": [ "location type identifier and label", "location type definition text", "territory of use", "owner of the location type" ] }, { "id": "q-gi-register", "text": "Which gazetteer register is authoritative for this geographic identifier, and what is that register's declared scope?", "kind": "authority", "answer_data": [ "gazetteer register identifier", "register scope statement", "custodian", "territory of use" ] }, { "id": "q-gi-resolve", "text": "What position does the geographic identifier resolve to, and is that a point, an extent or both?", "kind": "spatial", "answer_data": [ "resolved position or extent", "resolution method", "CRS of the resolved position" ] }, { "id": "q-gi-alternative", "text": "Which alternative geographic identifiers (codes, legacy keys, statistical codes) also denote this location instance?", "kind": "interoperability", "answer_data": [ "alternative identifier values", "issuing scheme for each", "validity period for each" ] } ], "data_elements": [ { "id": "geographic-identifier", "name": "geographicIdentifier", "description": "Label or code that indirectly references the location instance within its location type.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "location-type-ref", "name": "locationType", "description": "Reference to the location type whose definition the instance satisfies.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "gazetteer-register-ref", "name": "gazetteerRegister", "description": "Reference to the gazetteer that publishes and maintains this location instance.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-009" ] }, { "id": "alt-geographic-identifier", "name": "alternativeGeographicIdentifier", "description": "Additional codes that denote the same location instance in other schemes.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-013" ] } ], "artifacts": [ { "id": "location-type-definition", "name": "Location type definition sheet", "description": "Published definition of the location type: name, theme, definition, territory of use, owner and admissible parent/child types.", "media_or_form": [ "specification section", "register entry" ], "serial": false, "identity_strategy": "Identified by the location type URI issued by the owning gazetteer register.", "source_refs": [ "SRC-001", "SRC-009" ] } ], "inline_only_rationale": null }, { "id": "gazetteer-register-membership-and-item-status", "name": "Gazetteer membership and register item", "description": "ISO 19112:2019 defines a gazetteer as a register of location instances of one or more location sub-types containing some information regarding position, and recognises the gazetteer as a sub-type of ISO 19135-1 Register, with Location a RegisterItem. OGC WFS-G exposes gazetteer metadata and location instances over a feature service. A place may appear in more than one gazetteer.", "source_refs": [ "SRC-001", "SRC-020", "SRC-025" ], "questions": [ { "id": "gazetteer-register-membership-and-item-status-q01", "text": "Which gazetteer or names register holds this location instance?", "kind": "identity", "answer_data": [ "gazetteer_id", "gazetteer_name", "gazetteer_scope" ] }, { "id": "gazetteer-register-membership-and-item-status-q02", "text": "What is the register-item status of this location in that gazetteer?", "kind": "state", "answer_data": [ "register_item_status", "valid_from", "valid_to" ] }, { "id": "gazetteer-register-membership-and-item-status-q03", "text": "Who is the custodian or overall owner of the gazetteer and of this location instance?", "kind": "ownership", "answer_data": [ "gazetteer_custodian", "location_administrator", "contact_party" ] }, { "id": "gazetteer-register-membership-and-item-status-q04", "text": "What is the territory of use and language or character-set scope of the gazetteer?", "kind": "constraint", "answer_data": [ "territory_of_use", "gazetteer_language", "character_set" ] } ], "data_elements": [ { "id": "gazetteer-register-membership-and-item-status-data01", "name": "Gazetteer identifier", "description": "Identifier of the gazetteer register that contains this location instance.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-020" ] }, { "id": "gazetteer-register-membership-and-item-status-data02", "name": "Register item status", "description": "ISO 19135-style status of the location as a register item, such as valid, superseded or retired.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "gazetteer-register-membership-and-item-status-data03", "name": "Gazetteer custodian", "description": "Responsible party that maintains the gazetteer.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-020" ] }, { "id": "gazetteer-register-membership-and-item-status-data04", "name": "Territory of use", "description": "Geographic extent within which the gazetteer or location class is intended to be used.", "value_kind": "object", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] } ], "artifacts": [ { "id": "gazetteer-register-membership-and-item-status-artifact01", "name": "Gazetteer location-instance record", "description": "Canonical register item for the location instance, including gazetteer metadata, status and custodian.", "media_or_form": [ "GML", "JSON", "XML", "RDF" ], "serial": true, "identity_strategy": "Composite of gazetteer identifier plus master location identifier.", "source_refs": [ "SRC-001", "SRC-020", "SRC-025" ] } ], "inline_only_rationale": null } ] }, { "id": "toponymy-and-multilingual-naming", "name": "Toponymy and Multilingual Naming", "description": "Name assertions attached to the place: their written forms, scripts, transliteration, pronunciation, status, nativeness and preference.", "source_refs": [ "SRC-002", "SRC-009", "SRC-011", "SRC-012", "SRC-014" ], "findings": [ { "id": "toponym-spelling-script-and-transliteration", "name": "Toponym form, language, script and transliteration", "description": "A name is not a string: INSPIRE models GeographicalName with language, and one or more SpellingOfName each carrying text, ISO 15924 script and an optional transliteration scheme, plus optional PronunciationOfName with IPA and a sound link. Romanized forms must be traceable to the romanization system used, which is a standing UNGEGN concern.", "source_refs": [ "SRC-002", "SRC-009", "SRC-011" ], "questions": [ { "id": "q-name-script", "text": "For each spelling of this name, what is the text, the script code and the transliteration or romanization scheme applied?", "kind": "definition", "answer_data": [ "name text as written", "ISO 15924 script code", "transliteration scheme identifier", "whether the form is original or derived" ] }, { "id": "q-name-language", "text": "What language is each name asserted in, and how is an undetermined or multi-language name handled?", "kind": "classification", "answer_data": [ "ISO 639 language code", "fallback value for undetermined language", "policy for names without a language" ] }, { "id": "q-name-normalisation", "text": "What Unicode normalization, diacritic and case-folding rules apply before comparison or indexing?", "kind": "validation", "answer_data": [ "normalization form (e.g. NFC)", "diacritic retention rule", "fold/index variant generated for search" ] }, { "id": "q-name-pronunciation", "text": "Is a pronunciation recorded, and in what notation or audio form?", "kind": "evidence", "answer_data": [ "IPA string", "audio resource URI", "recording provenance" ] } ], "data_elements": [ { "id": "toponym-text", "name": "toponymText", "description": "The written form of the name in a specific script.", "value_kind": "text", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-002", "SRC-011" ] }, { "id": "toponym-language", "name": "toponymLanguage", "description": "Language code of the name assertion.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-011" ] }, { "id": "toponym-script", "name": "toponymScript", "description": "Script code of the spelling, per ISO 15924.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "transliteration-scheme", "name": "transliterationScheme", "description": "Identifier of the romanization or transliteration system used to derive the spelling.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-009" ] }, { "id": "pronunciation", "name": "pronunciation", "description": "IPA string and/or link to an audio rendering of the name.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] } ], "artifacts": [ { "id": "pronunciation-recording", "name": "Name pronunciation recording", "description": "Audio file capturing the local pronunciation of the toponym, referenced from the name assertion.", "media_or_form": [ "audio recording", "IPA transcription note" ], "serial": false, "identity_strategy": "Content-addressed by checksum with a resolvable URI; linked from the name assertion rather than embedded.", "source_refs": [ "SRC-002" ] } ], "inline_only_rationale": null }, { "id": "name-status-nativeness-and-preference", "name": "Name status, nativeness and preference", "description": "Names carry a status (official, standardised, historical, variant) and a nativeness (endonym or exonym), and exactly one preferred label is normally selected per audience. GNIS permits only one official name per feature for Federal use with variants retained; Getty TGN requires a preferred name plus vernacular and historical variants; GeoNames types names as official, short, colloquial or historical.", "source_refs": [ "SRC-002", "SRC-007", "SRC-012", "SRC-014", "SRC-011" ], "questions": [ { "id": "q-status-official", "text": "Which name is official, under whose authority, and for which territory and usage domain?", "kind": "authority", "answer_data": [ "official name text", "deciding authority", "territory and usage scope", "decision reference" ] }, { "id": "q-status-nativeness", "text": "Is each name an endonym or an exonym, and against which language community is that judged?", "kind": "classification", "answer_data": [ "nativeness value", "reference language community", "source supporting the judgement" ] }, { "id": "q-status-preferred", "text": "How is the single display label chosen when several names compete, and does the choice vary by audience locale?", "kind": "decision", "answer_data": [ "preference ranking rule", "locale-to-name mapping", "default fallback label" ] }, { "id": "q-status-variant", "text": "Which variant, historical or deprecated names must be retained for search recall even though they are not displayed?", "kind": "retention", "answer_data": [ "variant name list with status", "reason for retention", "suppression-from-display flag" ] } ], "data_elements": [ { "id": "name-status", "name": "nameStatus", "description": "Status of the name assertion, such as official, standardised, historical or other variant.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-007" ] }, { "id": "name-nativeness", "name": "nativeness", "description": "Whether the name is an endonym or an exonym.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "preferred-label", "name": "preferredLabel", "description": "The single preferred display title for the place, optionally qualified by locale.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-011", "SRC-014" ] }, { "id": "display-suppressed", "name": "displaySuppressed", "description": "Whether a retained name is excluded from default display while remaining searchable.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-008" ] } ], "artifacts": [], "inline_only_rationale": "Name status, nativeness and preference are qualifiers on inline name assertions within the place record. They generate no separate deliverable; the evidence that justifies a status is carried by the naming-decision artifact and the attestation artifact in other findings, which are referenced rather than duplicated here." }, { "id": "deprecated-derogatory-and-community-restricted-names", "name": "Historical, deprecated and sensitive names", "description": "TGN retains historical, misspelled, pejorative and avoid-use names for retrieval of legacy materials and flags them so they are not used for new indexing. GNIS marks obsolete names and vanished features as historical without implying age. GeoNames records historical and colloquial alternate-name types. These forms remain in the name set rather than being deleted.", "source_refs": [ "SRC-022", "SRC-023", "SRC-019" ], "questions": [ { "id": "deprecated-derogatory-and-community-restricted-names-q01", "text": "Which names are historical, local-use, misspellings or otherwise non-current, and for what period were they used?", "kind": "temporal", "answer_data": [ "historical_flag", "name_start_year", "name_end_year", "display_date" ] }, { "id": "deprecated-derogatory-and-community-restricted-names-q02", "text": "Is any name flagged pejorative, deprecated or avoid-use, and may it still be used for retrieval of historical sources?", "kind": "constraint", "answer_data": [ "sensitivity_flag", "avoid_use", "retrieval_only" ] }, { "id": "deprecated-derogatory-and-community-restricted-names-q03", "text": "Are indigenous, minority or local-use names recorded, and under what community or authority warrant?", "kind": "authority", "answer_data": [ "indigenous_name_flag", "community_source", "use_constraint" ] } ], "data_elements": [ { "id": "deprecated-derogatory-and-community-restricted-names-data01", "name": "Historical name flag", "description": "Whether the name is current, historical, both, unknown or local-use.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022", "SRC-023" ] }, { "id": "deprecated-derogatory-and-community-restricted-names-data02", "name": "Sensitive or avoid-use flag", "description": "Flags such as pejorative, deprecated, avoid-use or misspelling.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022" ] }, { "id": "deprecated-derogatory-and-community-restricted-names-data03", "name": "Name use period", "description": "Display date plus start and end years delimiting attested use of the name, not the existence of the place.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022" ] } ], "artifacts": [], "inline_only_rationale": "Sensitivity and historical flags are inline attributes of name forms. Deletion is not used; restriction of display is a policy overlay rather than a separate artifact." } ] }, { "id": "place-type-classification", "name": "Place Type Classification", "description": "Assigning and governing the feature or place type of the place, including local types and type change over time.", "source_refs": [ "SRC-002", "SRC-011", "SRC-012", "SRC-014" ], "findings": [ { "id": "feature-type-and-local-type-classification", "name": "Feature type, local type and classification change", "description": "Every governed place carries at least one type drawn from a resolvable vocabulary. INSPIRE separates a coarse NamedPlaceTypeValue from a free localType; LPF requires broad fclasses (A, H, L, P, R, S, T) plus optional vocabulary-typed types with source labels; GeoNames uses featureClass plus featureCode; Getty TGN requires a preferred place type. Types are temporally scoped because a village can become a suburb.", "source_refs": [ "SRC-002", "SRC-011", "SRC-012", "SRC-014", "SRC-007" ], "questions": [ { "id": "q-type-vocab", "text": "Which controlled vocabulary and version supplies the place type, and what is the concept URI?", "kind": "classification", "answer_data": [ "vocabulary identifier and version", "concept URI", "concept label", "broader concept" ] }, { "id": "q-type-local", "text": "What local or source-supplied type label was recorded, and how does it map to the governed concept?", "kind": "interoperability", "answer_data": [ "source label text and language", "mapping target concept", "mapping relation (exact, broader, related)", "mapping confidence" ] }, { "id": "q-type-multiplicity", "text": "Can this place hold more than one type simultaneously, and which one is preferred?", "kind": "constraint", "answer_data": [ "type multiplicity rule", "preferred type flag", "conflict resolution rule" ] }, { "id": "q-type-change", "text": "When the type changes, is that a real-world change or a correction, and how is each recorded?", "kind": "lifecycle", "answer_data": [ "change classification (real-world vs correction)", "validity interval on each type assertion", "superseded type assertion reference" ] } ], "data_elements": [ { "id": "place-type-concept", "name": "placeTypeConcept", "description": "Resolvable concept identifier for the type of the place.", "value_kind": "reference", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-011", "SRC-002" ] }, { "id": "feature-class", "name": "featureClass", "description": "Coarse feature class grouping used for reconciliation and filtering.", "value_kind": "code", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-011", "SRC-012" ] }, { "id": "local-type", "name": "localType", "description": "Type designation as expressed locally or by the source, free text with language.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002", "SRC-011" ] }, { "id": "type-validity", "name": "typeValidity", "description": "Interval during which the type assertion holds true.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] } ], "artifacts": [ { "id": "type-crosswalk", "name": "Place type crosswalk table", "description": "Mapping table from source place-type labels and external code lists to the governed place-type vocabulary, with mapping relation and confidence per row.", "media_or_form": [ "mapping table", "concept scheme alignment" ], "serial": true, "identity_strategy": "Named by source vocabulary identifier plus target vocabulary version; each release carries a serial and an RFC 3339 publication timestamp.", "source_refs": [ "SRC-002", "SRC-011", "SRC-012" ] } ], "inline_only_rationale": null }, { "id": "administrative-versus-physical-facet", "name": "Administrative versus physical facet", "description": "TGN distinguishes Administrative records (inhabited places, nations, empires) from Physical records (mountains, rivers, oceans) and discourages a Both flag. Physical features that cross political boundaries are placed under the next containing hierarchical level. GNIS after 2021 focuses on natural features, unincorporated populated places and selected hydrographic and reservoir classes, and removed most cultural classes.", "source_refs": [ "SRC-022", "SRC-023" ], "questions": [ { "id": "administrative-versus-physical-facet-q01", "text": "Is this place classified as an administrative entity, a physical feature, or another facet used by the gazetteer?", "kind": "classification", "answer_data": [ "record_type", "facet_code", "place_type" ] }, { "id": "administrative-versus-physical-facet-q02", "text": "Does a physical feature cross administrative boundaries, and under which containing parent is it placed?", "kind": "relationship", "answer_data": [ "crosses_boundary", "containing_parent_id", "placement_rule" ] }, { "id": "administrative-versus-physical-facet-q03", "text": "If the gazetteer excludes cultural or constructed classes, is this entity in scope or must it be referenced in a sibling model?", "kind": "decision", "answer_data": [ "in_scope_flag", "exclusion_reason", "sibling_model" ] } ], "data_elements": [ { "id": "administrative-versus-physical-facet-data01", "name": "Record type or facet", "description": "Administrative, physical, hierarchy guide term or other record-type flag.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022" ] }, { "id": "administrative-versus-physical-facet-data02", "name": "Crosses administrative boundary", "description": "Whether the feature extends beyond a single administrative parent.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022" ] } ], "artifacts": [], "inline_only_rationale": "Facet and boundary-crossing flags are classification attributes of the place record rather than independent artifacts." } ] } ] }, { "id": "spatial-footprint-and-reference", "name": "Spatial Footprint and Spatial Reference", "description": "Where the place is: representative position, geometry set, coordinate reference declaration, encoding constraints, accuracy and resolution.", "rationale": "ISO 19112 states that a gazetteer carries position information for each location instance; GeoSPARQL separates feature from geometry and allows several geometries with one default; RFC 7946 fixes a CRS and coordinate order; and the SDW best practices require explicit statements of coordinate encoding and positional accuracy. These are separable, independently governed concerns.", "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-005" ], "layers": [ { "id": "positioning-and-geometry", "name": "Positioning and Geometry", "description": "Representative point, geometry set, geometry roles and the encoding of coordinate values.", "source_refs": [ "SRC-003", "SRC-004", "SRC-005", "SRC-011" ], "findings": [ { "id": "representative-position-and-geometry-set", "name": "Representative position and multiple geometries", "description": "A place may carry a representative point, a bounding box, one or more detailed geometries, or no geometry at all. GeoSPARQL distinguishes hasGeometry from hasDefaultGeometry and provides derived centroid and area; LPF permits several temporally scoped geometries with per-geometry certainty and citations, or a null geometry; Getty TGN records point and bounding-box coordinates.", "source_refs": [ "SRC-003", "SRC-011", "SRC-014", "SRC-005" ], "questions": [ { "id": "q-geom-default", "text": "Which geometry is the default for this place, and on what basis was it selected?", "kind": "decision", "answer_data": [ "default geometry reference", "selection rule (most detailed, most authoritative, most current)", "selecting role" ] }, { "id": "q-geom-role", "text": "What role does each geometry play — representative point, bounding envelope, delimited extent or approximate footprint?", "kind": "composition", "answer_data": [ "geometry role code", "geometry type", "source of the geometry" ] }, { "id": "q-geom-null", "text": "If the place has no geometry, what is the reason and what indirect position can still be resolved?", "kind": "exception", "answer_data": [ "reason code for absent geometry", "containing place reference", "textual locality description" ] }, { "id": "q-geom-certainty", "text": "How certain is each geometry, and which citation supports it?", "kind": "quality", "answer_data": [ "certainty value", "supporting citation", "assertion date" ] } ], "data_elements": [ { "id": "representative-point", "name": "representativePoint", "description": "Single position that resolves the geographic identifier to a coordinate location.", "value_kind": "geometry", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-014" ] }, { "id": "geometry-set", "name": "geometry", "description": "Zero or more geometries with role, temporal scope, certainty and citations.", "value_kind": "geometry", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "bounding-box", "name": "boundingBox", "description": "Axis-aligned envelope of the place, ordered per the declared CRS.", "value_kind": "geometry", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005", "SRC-014" ] }, { "id": "geometry-absence-reason", "name": "geometryAbsenceReason", "description": "Coded reason why no geometry is recorded.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005", "SRC-011" ] } ], "artifacts": [ { "id": "geometry-serialisation", "name": "Geometry serialisation record", "description": "Stored serialisation of a geometry (WKT, GeoJSON or GML) with its CRS declaration, checksum and the process that produced it.", "media_or_form": [ "WKT literal", "GeoJSON geometry object", "GML geometry element" ], "serial": true, "identity_strategy": "Content-addressed by a hash of the canonical serialisation, associated with the place identifier and geometry role; successive versions are serialised with RFC 3339 timestamps.", "source_refs": [ "SRC-003", "SRC-005", "SRC-013" ] } ], "inline_only_rationale": null }, { "id": "crs-declaration-and-coordinate-encoding", "name": "CRS declaration and coordinate encoding constraints", "description": "Coordinates are meaningless without a declared spatial reference. RFC 7946 fixes GeoJSON to WGS 84 with longitude before latitude; OGC API - Features defaults to OGC:CRS84 and requires explicit CRS negotiation for alternatives; GeoSPARQL carries CRS identity inside geometry literals; the SDW best practices require publishers to state how coordinate values are encoded and to choose a CRS suited to users.", "source_refs": [ "SRC-005", "SRC-006", "SRC-003", "SRC-004" ], "questions": [ { "id": "q-crs-declared", "text": "In which coordinate reference system are the stored coordinates expressed, and where is that declaration carried?", "kind": "interoperability", "answer_data": [ "CRS identifier URI", "location of the declaration (literal, header, metadata)", "default assumed when absent" ] }, { "id": "q-crs-order", "text": "What axis order, units and decimal precision are used, and is that consistent across every encoding offered?", "kind": "constraint", "answer_data": [ "axis order statement", "units", "decimal places retained", "per-encoding differences" ] }, { "id": "q-crs-transform", "text": "If coordinates were transformed from a source CRS, which transformation was applied and what error does it introduce?", "kind": "provenance", "answer_data": [ "source CRS", "transformation identifier", "estimated transformation error", "transformation timestamp" ] }, { "id": "q-crs-antimeridian", "text": "How are geometries crossing the antimeridian or the poles represented?", "kind": "exception", "answer_data": [ "antimeridian handling rule", "split geometry parts", "validation test applied" ] } ], "data_elements": [ { "id": "crs-identifier", "name": "crsIdentifier", "description": "Identifier of the coordinate reference system in which coordinates are expressed.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-005", "SRC-006", "SRC-003" ] }, { "id": "axis-order-statement", "name": "axisOrderStatement", "description": "Explicit statement of coordinate axis order and units for the stored values.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-005" ] }, { "id": "coordinate-precision", "name": "coordinatePrecision", "description": "Number of retained decimal places or equivalent precision statement.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-015" ] }, { "id": "transformation-provenance", "name": "transformationProvenance", "description": "Source CRS and transformation applied to derive stored coordinates.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "CRS declaration and encoding rules are metadata carried alongside every geometry and every service response; they are reference data pointing into an external CRS register rather than a deliverable this model produces. The governing statement is published once in the dataset metadata artifact defined under custodianship." } ] }, { "id": "spatial-reference-and-quality", "name": "Spatial Reference Quality", "description": "How good, how precise and at what scale the recorded position may legitimately be used.", "source_refs": [ "SRC-002", "SRC-004", "SRC-015" ], "findings": [ { "id": "positional-accuracy-resolution-and-viewing-scale", "name": "Positional accuracy, resolution and viewing-scale bounds", "description": "The SDW best practices require describing positional accuracy and providing geometries at an appropriate level of accuracy, precision and size; INSPIRE NamedPlace carries mostDetailedViewingScale and leastDetailedViewingScale to bound legitimate display. Precision of coordinates must never be read as accuracy, and generalized coordinates must be labelled as such.", "source_refs": [ "SRC-004", "SRC-002", "SRC-015" ], "questions": [ { "id": "q-acc-value", "text": "What is the stated positional accuracy of the recorded position, and how was it determined?", "kind": "measurement", "answer_data": [ "accuracy value and unit", "confidence level", "evaluation method", "evaluation date" ] }, { "id": "q-acc-scale", "text": "Between which most-detailed and least-detailed viewing scales is this geometry fit to be shown?", "kind": "quality", "answer_data": [ "most detailed viewing scale", "least detailed viewing scale", "reason for the bounds" ] }, { "id": "q-acc-precision", "text": "Does the number of decimal places recorded overstate the real accuracy, and has spurious precision been removed?", "kind": "validation", "answer_data": [ "stored precision", "justified precision", "truncation or rounding rule applied" ] }, { "id": "q-acc-generalized", "text": "Has the position been deliberately generalized, and by what method and magnitude?", "kind": "provenance", "answer_data": [ "generalization method", "magnitude (e.g. degrees or metres)", "reason", "reference to the retained precise value custody" ] } ], "data_elements": [ { "id": "positional-accuracy", "name": "positionalAccuracy", "description": "Quantitative positional accuracy with unit and confidence level.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "most-detailed-scale", "name": "mostDetailedViewingScale", "description": "Largest scale at which the geometry may legitimately be displayed.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "least-detailed-scale", "name": "leastDetailedViewingScale", "description": "Smallest scale at which the geometry may legitimately be displayed.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "generalization-applied", "name": "dataGeneralizations", "description": "Description of any deliberate generalization applied to the position.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-015" ] } ], "artifacts": [ { "id": "accuracy-assessment-report", "name": "Positional accuracy assessment report", "description": "Report documenting the method, sample, reference dataset and computed accuracy statistics for a batch of place positions.", "media_or_form": [ "quality report", "measurement dataset" ], "serial": true, "identity_strategy": "Serialised per assessment run as {gazetteer-code}-accuracy-{RFC 3339 UTC date}-{nn}, linked to the evaluated record set.", "source_refs": [ "SRC-004", "SRC-002" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "temporal-existence-and-lifecycle", "name": "Temporal Existence and Record Lifecycle", "description": "When the place existed, when its names and attributes were valid, and how the record itself is versioned, superseded, merged, split or deprecated.", "rationale": "Real-world time and record time are different clocks. LPF scopes names, types, geometries and relations with a 'when' object supporting fuzzy and open-ended dates; INSPIRE carries beginLifespanVersion and endLifespanVersion for the record version; Who's On First carries supersedes/superseded_by and a last-modified stamp. Confusing the two clocks corrupts every historical query.", "source_refs": [ "SRC-002", "SRC-011", "SRC-013", "SRC-014" ], "layers": [ { "id": "place-existence-and-change", "name": "Place Existence and Real-World Change", "description": "The existence of the place in the world and the validity of its name assertions over time, including uncertainty.", "source_refs": [ "SRC-011", "SRC-012", "SRC-014", "SRC-007" ], "findings": [ { "id": "existence-period-and-temporal-uncertainty", "name": "Existence period and temporal uncertainty", "description": "Places begin, change and cease. LPF expresses temporal scope as timespans with start and end, each expressible as 'in', 'earliest' or 'latest', plus named periods, duration, label and certainty; GNIS marks features as historical when they no longer exist. The model must accept open, approximate and disjoint existence intervals without forcing a false precise date.", "source_refs": [ "SRC-011", "SRC-007", "SRC-014" ], "questions": [ { "id": "q-exist-interval", "text": "Over what interval did this place exist, and are the start and end known, approximate or open?", "kind": "temporal", "answer_data": [ "earliest/latest start bounds", "earliest/latest end bounds", "open-ended flag", "certainty qualifier" ] }, { "id": "q-exist-period", "text": "Which named historical period vocabulary terms scope this place, and from which period authority?", "kind": "temporal", "answer_data": [ "period concept URI", "period label", "period authority" ] }, { "id": "q-exist-historical", "text": "Is the place currently extant, and if not, what event ended its existence?", "kind": "state", "answer_data": [ "extant flag", "cessation event description", "cessation evidence reference" ] }, { "id": "q-exist-calendar", "text": "Which calendar and time zone apply to the recorded dates, and how are pre-modern or proleptic dates handled?", "kind": "constraint", "answer_data": [ "calendar system", "offset or zone rule", "proleptic handling policy" ] } ], "data_elements": [ { "id": "existence-timespan", "name": "existenceTimespan", "description": "Timespan object with bounded or open start and end and an optional certainty qualifier.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "named-period", "name": "namedPeriod", "description": "Reference to a period concept from a period authority scoping the place.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "extant-flag", "name": "isExtant", "description": "Whether the place is judged to exist at the observation time.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "temporal-certainty", "name": "temporalCertainty", "description": "Certainty qualifier applied to the temporal assertion.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] } ], "artifacts": [], "inline_only_rationale": "Existence periods are inline temporal qualifiers on the place and on each scoped assertion. The documentary evidence for a start or cessation date is held by the attestation artifact under evidence and lineage, and the period vocabulary is an external reference model; creating a separate temporal artifact here would duplicate both." }, { "id": "name-validity-and-renaming-events", "name": "Name validity periods and renaming events", "description": "Names have their own validity independent of the place. Getty TGN records display dates with start and end dates on names; GeoNames types historicalName separately; GNIS records a BGN decision date. A renaming is an event with a decision, an effective date and a superseded prior official name that must remain searchable.", "source_refs": [ "SRC-014", "SRC-012", "SRC-007", "SRC-011" ], "questions": [ { "id": "q-nameval-interval", "text": "Over which interval was each name in use or official, and how precisely is that known?", "kind": "temporal", "answer_data": [ "name start and end bounds", "display date text", "certainty qualifier", "source of the dating" ] }, { "id": "q-nameval-event", "text": "What renaming events affected this place, and what decision authorised each?", "kind": "event", "answer_data": [ "event date", "prior name", "new name", "authorising decision reference" ] }, { "id": "q-nameval-effective", "text": "How does the decision date differ from the effective date and from the date the record was updated?", "kind": "temporal", "answer_data": [ "decision date", "effective date", "record ingestion timestamp" ] }, { "id": "q-nameval-overlap", "text": "May two official names be valid simultaneously, and if so under which authorities or languages?", "kind": "constraint", "answer_data": [ "co-officiality rule", "authority per name", "language per name" ] } ], "data_elements": [ { "id": "name-validity-interval", "name": "nameValidityInterval", "description": "Interval during which a specific name assertion held.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014", "SRC-011" ] }, { "id": "name-display-date", "name": "nameDisplayDate", "description": "Human-readable date expression shown with a historical name.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-014" ] }, { "id": "renaming-event", "name": "renamingEvent", "description": "Structured record of a change of official name with prior and new values.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007", "SRC-008" ] }, { "id": "decision-date", "name": "nameDecisionDate", "description": "Date on which the naming authority decided the name.", "value_kind": "date", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-008" ] } ], "artifacts": [ { "id": "renaming-event-record", "name": "Renaming event record", "description": "Record of a name change carrying prior name, new name, authorising decision reference, decision date, effective date and the affected place identifier.", "media_or_form": [ "event record", "change notice" ], "serial": true, "identity_strategy": "Keyed by place identifier plus effective date; serialised in decision order so that the sequence of official names is reconstructible.", "source_refs": [ "SRC-007", "SRC-008", "SRC-014" ] } ], "inline_only_rationale": null } ] }, { "id": "record-versioning-and-succession", "name": "Record Versioning and Succession", "description": "The lifecycle of the record as an information object: versions, change logs, supersession, merge, split and deprecation.", "source_refs": [ "SRC-002", "SRC-013", "SRC-014", "SRC-004" ], "findings": [ { "id": "record-version-lifespan-and-change-log", "name": "Record version lifespan and change log", "description": "INSPIRE gives each spatial object version a beginLifespanVersion and endLifespanVersion; Who's On First carries a last-modified epoch and a geometry hash, and marks human-curated fields as controlled so automated processes must not overwrite them. Record time must be recorded separately from real-world time, both as RFC 3339 values.", "source_refs": [ "SRC-002", "SRC-013", "SRC-004" ], "questions": [ { "id": "q-ver-lifespan", "text": "When did this record version become current and when was it superseded?", "kind": "lifecycle", "answer_data": [ "begin lifespan version timestamp", "end lifespan version timestamp", "successor version identifier" ] }, { "id": "q-ver-observation", "text": "What are the event time, the observation time and the ingestion time for each asserted change?", "kind": "temporal", "answer_data": [ "event time", "observation or survey time", "ingestion timestamp", "asserting agent" ] }, { "id": "q-ver-controlled", "text": "Which fields are human-curated and protected from automated overwrite, and who set that protection?", "kind": "authority", "answer_data": [ "controlled field list", "protecting role", "override procedure" ] }, { "id": "q-ver-diff", "text": "What changed between two versions, and is the change a correction, a real-world change or a re-derivation?", "kind": "provenance", "answer_data": [ "changed element paths", "change classification", "justification note", "geometry hash before and after" ] } ], "data_elements": [ { "id": "begin-lifespan", "name": "beginLifespanVersion", "description": "RFC 3339 timestamp at which this version of the record became current in the dataset.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "end-lifespan", "name": "endLifespanVersion", "description": "RFC 3339 timestamp at which this version ceased to be current.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "controlled-fields", "name": "controlledFields", "description": "List of element paths that are human-curated and must not be machine-overwritten.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013" ] }, { "id": "geometry-hash", "name": "geometryHash", "description": "Digest of the canonical geometry serialisation used to detect silent geometry change.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013" ] } ], "artifacts": [ { "id": "record-change-log", "name": "Place record change log", "description": "Append-only log of record versions with timestamps, changed element paths, change classification, agent and justification.", "media_or_form": [ "append-only log", "version history document" ], "serial": true, "identity_strategy": "Keyed by place identifier plus monotonically increasing version number; each entry carries an RFC 3339 ingestion timestamp distinct from the event time.", "source_refs": [ "SRC-002", "SRC-013", "SRC-004" ] } ], "inline_only_rationale": null }, { "id": "supersession-merge-split-and-deprecation", "name": "Supersession, merge, split and deprecation", "description": "Places are discovered to be duplicates, are divided, are absorbed or are found never to have existed. Who's On First records supersedes and superseded_by as arrays, allowing one-to-many and many-to-one succession; Getty TGN defines rules for merging, moving and deleting records. Identifiers must not be silently reused or hard-deleted, because external systems already cite them.", "source_refs": [ "SRC-013", "SRC-014", "SRC-004" ], "questions": [ { "id": "q-sup-relation", "text": "Which records does this record supersede, and which records supersede it?", "kind": "relationship", "answer_data": [ "supersedes identifier list", "superseded_by identifier list", "succession reason code", "effective timestamp" ] }, { "id": "q-sup-kind", "text": "Is the succession a merge of duplicates, a split, an absorption, a re-scoping or a retraction of an erroneous record?", "kind": "classification", "answer_data": [ "succession kind", "cardinality of the relation", "adjudicating role", "supporting evidence" ] }, { "id": "q-sup-resolve", "text": "What must a resolver return when a client requests a superseded identifier?", "kind": "interoperability", "answer_data": [ "redirect or tombstone policy", "HTTP status convention", "payload of the tombstone response" ] }, { "id": "q-sup-downstream", "text": "How are downstream consumers and concordance partners notified of a supersession?", "kind": "process", "answer_data": [ "notification channel", "change feed entry", "lead time", "affected concordance list" ] } ], "data_elements": [ { "id": "supersedes", "name": "supersedes", "description": "Identifiers of records that this record replaces.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013" ] }, { "id": "superseded-by", "name": "supersededBy", "description": "Identifiers of records that replace this record.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013" ] }, { "id": "succession-kind", "name": "successionKind", "description": "Coded kind of succession such as merge, split, absorption, rescope or retraction.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013", "SRC-014" ] }, { "id": "deprecation-timestamp", "name": "deprecatedAt", "description": "RFC 3339 timestamp at which the record was deprecated.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013", "SRC-004" ] } ], "artifacts": [ { "id": "succession-decision-record", "name": "Succession decision record", "description": "Documented decision to merge, split, absorb, rescope or retract place records, listing all affected identifiers, the evidence considered and the adjudicating role.", "media_or_form": [ "decision record", "reconciliation case file" ], "serial": true, "identity_strategy": "Serial per adjudication case, cross-referencing every affected place identifier so the case is reachable from any side of the succession.", "source_refs": [ "SRC-013", "SRC-014" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "authority-provenance-and-evidence", "name": "Authority, Custodianship, Provenance and Evidence", "description": "Who is entitled to decide the name and extent of the place, how those decisions are made, who maintains the record, and what evidence supports each assertion.", "rationale": "A gazetteer entry is an assertion by a named party with bounded authority. The U.S. BGN's authority binds only Federal use; UNGEGN coordinates national standardisation; INSPIRE requires sourceOfName; Getty TGN requires sources and contributors on every record. Without explicit authority scope and attestation, place data cannot be adjudicated when sources disagree.", "source_refs": [ "SRC-007", "SRC-008", "SRC-009", "SRC-002", "SRC-014" ], "layers": [ { "id": "naming-authority-and-decisions", "name": "Naming Authority and Decisions", "description": "The bounded authority under which a name is official, the process producing naming decisions, and how competing claims are handled.", "source_refs": [ "SRC-007", "SRC-008", "SRC-009", "SRC-010" ], "findings": [ { "id": "naming-authority-scope-and-official-status", "name": "Naming authority and the bounded scope of officiality", "description": "Officiality is always scoped. GNIS records names that are official for Federal use, and the BGN cannot compel non-Federal parties to adopt them; UNGEGN standardises names nationally and promotes them internationally. The record must state which authority made a name official, for which territory, for which usage domain, and from when.", "source_refs": [ "SRC-007", "SRC-008", "SRC-009" ], "questions": [ { "id": "q-auth-who", "text": "Which body has the authority to decide the official name of this place, and under what legal or institutional mandate?", "kind": "authority", "answer_data": [ "authority name and identifier", "mandate citation", "territory of competence", "feature classes in competence" ] }, { "id": "q-auth-binding", "text": "On whom is the official name binding, and where is it merely recommended?", "kind": "constraint", "answer_data": [ "binding audience", "advisory audience", "statement of non-binding scope" ] }, { "id": "q-auth-multi", "text": "Do several authorities claim competence over this place, and how is precedence determined?", "kind": "exception", "answer_data": [ "competing authority list", "precedence rule", "territory overlap description" ] }, { "id": "q-auth-delegation", "text": "Is naming competence delegated to state, regional, municipal or Indigenous naming bodies for this feature class?", "kind": "ownership", "answer_data": [ "delegated body", "delegation instrument", "scope of delegation" ] } ], "data_elements": [ { "id": "naming-authority", "name": "namingAuthority", "description": "Reference to the body that decided the official name.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007", "SRC-009" ] }, { "id": "authority-territory", "name": "territoryOfUse", "description": "Territory within which the authority's decision applies.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-009" ] }, { "id": "officiality-scope", "name": "officialityScope", "description": "Statement of the audiences and usage domains for which the name is binding.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "country-code", "name": "countryCode", "description": "Country or area code contextualising the place, aligned to ISO 3166-1 and UN M49.", "value_kind": "code", "cardinality": "0..n", "required": true, "source_refs": [ "SRC-010", "SRC-011", "SRC-013" ] } ], "artifacts": [], "inline_only_rationale": "Authority scope is a reference assertion pointing at an external authority register and its mandate instrument; the mandate document is owned by that authority, not produced by this model. The concrete decision it authorises is captured by the naming decision dossier artifact in the sibling finding." }, { "id": "name-decision-process-and-effective-date", "name": "Name decision process, dossier and effective date", "description": "Naming decisions follow a governed process: a proposal with documentation, review against published policies (including a presumption against changing long-established names, commemorative-name restrictions and a prohibition on derogatory names), consultation with state, local and Tribal bodies, a docketed decision, and publication in the authoritative gazetteer.", "source_refs": [ "SRC-008", "SRC-007", "SRC-009" ], "questions": [ { "id": "q-dec-proposal", "text": "Who proposed the name, what documentation accompanied the proposal, and when was it lodged?", "kind": "process", "answer_data": [ "proposer identity and standing", "proposal documentation list", "lodgement date", "case or docket number" ] }, { "id": "q-dec-policy", "text": "Which naming policies were applied to the proposal, and did any of them bar it?", "kind": "requirement", "answer_data": [ "policy identifiers applied", "compliance findings", "grounds for rejection if any" ] }, { "id": "q-dec-consult", "text": "Which parties were consulted, and how were their responses weighed in the decision?", "kind": "process", "answer_data": [ "consulted parties", "responses received", "weighting or objection-handling note" ] }, { "id": "q-dec-effective", "text": "What is the decision date, the effective date and the date the decision was reflected in the gazetteer?", "kind": "temporal", "answer_data": [ "decision date", "effective date", "gazetteer publication timestamp" ] }, { "id": "q-dec-appeal", "text": "Can the decision be reconsidered or appealed, and what triggers a review?", "kind": "exception", "answer_data": [ "reconsideration grounds", "appeal window", "reviewing body" ] } ], "data_elements": [ { "id": "decision-case-id", "name": "decisionCaseIdentifier", "description": "Docket or case identifier assigned by the naming authority.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-007" ] }, { "id": "decision-outcome", "name": "decisionOutcome", "description": "Coded outcome of the naming decision such as approved, rejected, deferred or withdrawn.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008" ] }, { "id": "decision-effective-date", "name": "effectiveDate", "description": "Date from which the decided name applies.", "value_kind": "date", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-007" ] }, { "id": "policy-basis", "name": "policyBasis", "description": "References to the specific naming policies applied to the proposal.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-008" ] } ], "artifacts": [ { "id": "naming-decision-dossier", "name": "Naming decision dossier", "description": "Case file for one naming proposal: proposal form, supporting documentation, consultation responses, policy assessment, decision minute and publication notice.", "media_or_form": [ "case file", "decision minute", "published decision list" ], "serial": true, "identity_strategy": "Identified by the authority's docket or case identifier; where absent, by authority identifier plus decision date plus a sequence number, and always linked to the affected place identifier.", "source_refs": [ "SRC-008", "SRC-007" ] } ], "inline_only_rationale": null }, { "id": "contested-names-and-competing-claims", "name": "Contested names, disputed places and neutral presentation", "description": "Some places carry competing names or competing sovereignty claims. UN M49 accompanies its groupings with an explicit disclaimer that designations imply no opinion on legal status or the delimitation of frontiers; Who's On First encodes parentage that is unknown, complicated or contested as distinct sentinel states rather than forcing a false parent. The model must represent dispute as data instead of silently choosing a side.", "source_refs": [ "SRC-010", "SRC-013", "SRC-011", "SRC-009" ], "questions": [ { "id": "q-disp-parties", "text": "Which parties assert competing names or claims over this place, and what does each assert?", "kind": "relationship", "answer_data": [ "asserting party", "asserted name or claim", "supporting source", "assertion date" ] }, { "id": "q-disp-render", "text": "Which name is presented to which audience, and what disclaimer accompanies the presentation?", "kind": "access", "answer_data": [ "audience or locale", "selected name", "disclaimer text", "policy authorising the selection" ] }, { "id": "q-disp-status", "text": "Is the place's parentage or sovereignty recorded as unknown, complicated, contested or multiple rather than resolved?", "kind": "state", "answer_data": [ "parentage state code", "reason note", "review date" ] }, { "id": "q-disp-escalate", "text": "Who adjudicates a naming dispute inside the adopting Dimension, and what is the escalation path?", "kind": "decision", "answer_data": [ "adjudicating role", "escalation steps", "record of adjudication", "publication constraint" ] } ], "data_elements": [ { "id": "claim-assertion", "name": "competingClaim", "description": "Assertion by a named party of a name, status or extent that conflicts with another assertion.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-010", "SRC-011" ] }, { "id": "parentage-state", "name": "parentageState", "description": "Coded state where a parent cannot be asserted: unknown, complicated, contested or multiple.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013" ] }, { "id": "presentation-disclaimer", "name": "presentationDisclaimer", "description": "Text asserting that the designation implies no position on legal status or boundary delimitation.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010" ] } ], "artifacts": [ { "id": "dispute-register-entry", "name": "Contested place register entry", "description": "Entry recording each competing assertion, its source, the audience-scoped presentation rule applied and the adjudication or deliberate non-adjudication decision.", "media_or_form": [ "register entry", "adjudication note" ], "serial": true, "identity_strategy": "Keyed by place identifier plus dispute case serial; every entry cites the asserting parties and remains open until explicitly closed.", "source_refs": [ "SRC-010", "SRC-013" ] } ], "inline_only_rationale": null } ] }, { "id": "custodianship-and-stewardship", "name": "Custodianship and Stewardship", "description": "Who holds and maintains the gazetteer record, under what licence, and with what service commitment.", "source_refs": [ "SRC-001", "SRC-009", "SRC-014", "SRC-004" ], "findings": [ { "id": "gazetteer-custodian-administrator-and-licence", "name": "Custodian, administrator, licence and update commitment", "description": "ISO 19112 attributes a gazetteer to a custodian and a location instance to an administrator, and INSPIRE and Getty both require identifiable stewardship. The record must state who maintains it, under what terms it may be redistributed, how often it is refreshed and how errors are reported.", "source_refs": [ "SRC-001", "SRC-002", "SRC-014", "SRC-004", "SRC-009" ], "questions": [ { "id": "q-cust-who", "text": "Who is the custodian of the gazetteer and the administrator responsible for this location instance?", "kind": "ownership", "answer_data": [ "custodian organisation identifier", "administrator role or unit", "contact endpoint", "escalation contact" ] }, { "id": "q-cust-licence", "text": "Under what licence and attribution requirement may this record be redistributed, and do any source licences restrict downstream use?", "kind": "access", "answer_data": [ "licence identifier", "attribution string", "inherited source licence constraints", "commercial-use restriction" ] }, { "id": "q-cust-cadence", "text": "How frequently is the record reviewed or refreshed, and what is the maximum acceptable staleness?", "kind": "quality", "answer_data": [ "review cadence", "last review timestamp", "staleness threshold", "next review due date" ] }, { "id": "q-cust-feedback", "text": "How does a consumer report a suspected error, and what is the commitment to respond?", "kind": "process", "answer_data": [ "feedback channel", "triage procedure", "response service level", "status of open reports" ] } ], "data_elements": [ { "id": "custodian", "name": "custodian", "description": "Organisation accountable for the gazetteer register.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-009" ] }, { "id": "administrator", "name": "administrator", "description": "Party responsible for maintaining this specific location instance.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "licence", "name": "licence", "description": "Licence identifier and attribution requirement governing redistribution.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-014", "SRC-004" ] }, { "id": "review-due", "name": "nextReviewDue", "description": "Date by which the record must next be reviewed for currency.", "value_kind": "date", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-015", "SRC-004" ] } ], "artifacts": [ { "id": "gazetteer-dataset-metadata", "name": "Gazetteer dataset metadata record", "description": "Dataset-level metadata declaring custodian, scope, territory of use, CRS, licence, update cadence, spatial and temporal extent and feedback channel, published alongside the register.", "media_or_form": [ "dataset metadata record", "service landing page description" ], "serial": true, "identity_strategy": "Identified by the dataset URI with a metadata version serial and an RFC 3339 publication timestamp; superseded versions are retained.", "source_refs": [ "SRC-004", "SRC-006", "SRC-001" ] } ], "inline_only_rationale": null } ] }, { "id": "evidence-attestation-and-lineage", "name": "Evidence, Attestation and Lineage", "description": "The documentary and observational basis for each assertion, and the chain of contributions and derivations that produced the record.", "source_refs": [ "SRC-002", "SRC-011", "SRC-014", "SRC-013" ], "findings": [ { "id": "source-attestation-citation-and-editorial-lineage", "name": "Source attestation, citation and editorial lineage", "description": "INSPIRE carries sourceOfName on every geographical name; LPF attaches citations to names, types, geometries and relations individually and requires at least one citation or a record-level temporal scope per name; Getty TGN requires sources and contributors and retains merge and revision history; Who's On First marks human-curated fields as controlled. Assertion-level attestation, not record-level, is the governing pattern.", "source_refs": [ "SRC-002", "SRC-011", "SRC-014", "SRC-013" ], "questions": [ { "id": "q-att-per-assertion", "text": "Which source attests each individual name, type, geometry and relation, rather than the record as a whole?", "kind": "provenance", "answer_data": [ "assertion path", "citation identifier and label", "citation year or date", "page or locus within the source" ] }, { "id": "q-att-nature", "text": "Is the evidence a documentary attestation, a field observation, a derivation from another dataset or an editorial inference?", "kind": "evidence", "answer_data": [ "evidence kind", "observing or deriving agent", "observation timestamp", "derivation method" ] }, { "id": "q-att-contributor", "text": "Which contributor supplied the assertion, and who exercised final editorial control over it?", "kind": "ownership", "answer_data": [ "contributor identifier", "contribution timestamp", "editorial reviewer", "review outcome" ] }, { "id": "q-att-conflict", "text": "When two sources conflict on a name, date or position, which prevails and on what recorded basis?", "kind": "decision", "answer_data": [ "conflicting assertions", "precedence rule applied", "adjudication note", "retained non-preferred assertion" ] }, { "id": "q-att-machine", "text": "Which assertions were produced by automated extraction or model inference, and are they distinguishable from human-verified ones?", "kind": "quality", "answer_data": [ "generation method flag", "tool and version", "confidence score", "human verification status" ] } ], "data_elements": [ { "id": "citation-ref", "name": "citation", "description": "Reference to the source attesting a specific assertion, with locus and date.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011", "SRC-002" ] }, { "id": "source-of-name", "name": "sourceOfName", "description": "Original data source from which a name was taken.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "contributor", "name": "contributor", "description": "Agent that supplied the assertion to the register.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014" ] }, { "id": "generation-method", "name": "generationMethod", "description": "Whether the assertion was human-curated, automatically derived or model-inferred, with tool and version.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013", "SRC-004" ] } ], "artifacts": [ { "id": "attestation-dossier", "name": "Attestation and lineage dossier", "description": "Per-place compilation of cited sources with loci, contributor statements, derivation steps and conflict adjudications supporting each assertion.", "media_or_form": [ "evidence dossier", "citation list", "lineage statement" ], "serial": true, "identity_strategy": "Keyed by place identifier; each attestation entry carries its own serial, the citation identifier and an RFC 3339 recording timestamp separate from the cited work's date.", "source_refs": [ "SRC-011", "SRC-014", "SRC-002" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "relationships-and-interoperability", "name": "Relationships, Concordance and Interoperability", "description": "How the place relates to other places, how it is matched to records in other gazetteers, and how the format-neutral record is projected into encodings and services.", "rationale": "The SDW best practices direct publishers to link resources, use appropriate relation types and expose data through convenience APIs; GeoSPARQL supplies three formal topological relation families; LPF supplies typed links for reconciliation; Who's On First maintains explicit concordances. Relationship semantics and projection mechanics are separable and must not be conflated with the record's meaning.", "source_refs": [ "SRC-003", "SRC-004", "SRC-006", "SRC-011", "SRC-013" ], "layers": [ { "id": "place-hierarchy-and-topology", "name": "Hierarchy and Topology", "description": "Partitive and administrative containment, and formal or informal spatial relations to other places.", "source_refs": [ "SRC-003", "SRC-011", "SRC-012", "SRC-013", "SRC-016" ], "findings": [ { "id": "partitive-and-administrative-hierarchy", "name": "Partitive and administrative hierarchy", "description": "Places sit in hierarchies: GeoNames gives parentFeature and parentADM1 to parentADM4; Who's On First gives parent_id, a hierarchy of ancestor sets and a flattened belongsto; Getty TGN distinguishes preferred from non-preferred parents; schema.org offers containedInPlace and containsPlace. Multiple concurrent hierarchies (administrative, statistical, ecclesiastical, historical) must coexist without one being privileged silently.", "source_refs": [ "SRC-012", "SRC-013", "SRC-014", "SRC-016", "SRC-011" ], "questions": [ { "id": "q-hier-parent", "text": "Which parent is preferred for this place, in which hierarchy, and over which interval?", "kind": "composition", "answer_data": [ "parent identifier", "hierarchy scheme", "preferred flag", "validity interval" ] }, { "id": "q-hier-multiple", "text": "Which additional hierarchies does this place belong to, and are their ancestor chains stored explicitly?", "kind": "relationship", "answer_data": [ "hierarchy scheme list", "ancestor chain per scheme", "flattened ancestor set" ] }, { "id": "q-hier-unknown", "text": "How is an unknown, complicated, contested or multiple parentage recorded without asserting a false parent?", "kind": "exception", "answer_data": [ "sentinel or state code", "explanatory note", "review trigger" ] }, { "id": "q-hier-integrity", "text": "What prevents cycles, orphans and type-inconsistent parenthood in the hierarchy?", "kind": "validation", "answer_data": [ "admissible parent types per child type", "cycle detection test", "orphan handling rule" ] } ], "data_elements": [ { "id": "parent-place", "name": "parentPlace", "description": "Identifier of the containing place within a named hierarchy scheme.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-012", "SRC-013" ] }, { "id": "hierarchy-scheme", "name": "hierarchyScheme", "description": "The hierarchy within which a parent relation holds, such as administrative or statistical.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013", "SRC-014" ] }, { "id": "ancestor-set", "name": "ancestorSet", "description": "Flattened set of all ancestor identifiers for efficient containment queries.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013" ] }, { "id": "hierarchy-validity", "name": "hierarchyValidity", "description": "Interval over which the parent relation held.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] } ], "artifacts": [], "inline_only_rationale": "Hierarchy is a set of typed reference links between place records already held in the register; it produces no standalone deliverable. The derived ancestor set is a materialised index, and the rules constraining admissible parents live in the location type definition artifact." }, { "id": "topological-and-associative-relations", "name": "Topological and associative relations", "description": "Beyond containment, places touch, overlap, adjoin, succeed and are functionally associated. GeoSPARQL provides Simple Features, Egenhofer and RCC8 relation families; schema.org exposes DE-9IM-derived geo relations; Who's On First records breaches where same-placetype records intersect; LPF relations carry a vocabulary relationType with temporal scope, certainty and citations.", "source_refs": [ "SRC-003", "SRC-016", "SRC-013", "SRC-011" ], "questions": [ { "id": "q-topo-family", "text": "Which topological relation vocabulary is used, and is the relation asserted or computed from geometry?", "kind": "relationship", "answer_data": [ "relation family and predicate URI", "asserted or computed flag", "computation method and tolerance" ] }, { "id": "q-topo-assoc", "text": "Which non-spatial associative relations apply, such as capital-of, successor-of or seat-of?", "kind": "relationship", "answer_data": [ "relation type URI", "related place identifier", "temporal scope", "certainty" ] }, { "id": "q-topo-anomaly", "text": "Do same-type places overlap where they should partition space, and how is that anomaly recorded?", "kind": "quality", "answer_data": [ "overlap list", "anomaly classification", "tolerance applied", "remediation status" ] }, { "id": "q-topo-relative", "text": "Where no geometry exists, how is relative position expressed and against which reference place?", "kind": "spatial", "answer_data": [ "relative position statement", "reference place identifier", "direction and distance if known" ] } ], "data_elements": [ { "id": "topological-relation", "name": "topologicalRelation", "description": "Typed spatial relation to another place, with predicate URI and derivation basis.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-016" ] }, { "id": "associative-relation", "name": "associativeRelation", "description": "Non-spatial relation to another place with vocabulary type, temporal scope and certainty.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "overlap-anomaly", "name": "overlapAnomaly", "description": "Record of a same-type geometric intersection that violates a partitioning expectation.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013" ] }, { "id": "relative-position", "name": "relativePosition", "description": "Textual or structured statement of position relative to a reference place.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] } ], "artifacts": [], "inline_only_rationale": "Relations are inline typed links plus qualifiers; the only durable by-product is the topology anomaly list, which is a validation output already governed by the validation and conformance finding rather than a separate artifact here." } ] }, { "id": "cross-gazetteer-concordance", "name": "Cross-Gazetteer Concordance", "description": "Matching this place to records in other gazetteers and authorities, with explicit match strength and evidence.", "source_refs": [ "SRC-011", "SRC-013", "SRC-004", "SRC-016" ], "findings": [ { "id": "external-identifier-concordance-and-match-confidence", "name": "External identifier concordance and match confidence", "description": "LPF distinguishes exactMatch, closeMatch, primaryTopicOf and seeAlso; Who's On First keeps a concordances hash of identifiers from other sources; schema.org uses sameAs. Asserting exact identity where only a close match is warranted is a common and damaging error, so match strength, matcher and evidence must be recorded and revisable.", "source_refs": [ "SRC-011", "SRC-013", "SRC-016", "SRC-004" ], "questions": [ { "id": "q-conc-strength", "text": "For each external identifier, is the link an exact match, a close match, a topic-of link or merely a see-also?", "kind": "interoperability", "answer_data": [ "link type", "external identifier or URI", "target authority", "justification" ] }, { "id": "q-conc-evidence", "text": "What evidence supported the match, and who or what performed it?", "kind": "evidence", "answer_data": [ "matching method (manual, algorithmic, reconciliation service)", "matcher identity and version", "confidence score", "match timestamp" ] }, { "id": "q-conc-stale", "text": "How is a concordance revalidated when the external record is superseded, deprecated or redefined?", "kind": "lifecycle", "answer_data": [ "external change detection method", "revalidation cadence", "action on target supersession" ] }, { "id": "q-conc-conflict", "text": "What happens when two external authorities that are both linked as exact matches disagree with each other?", "kind": "exception", "answer_data": [ "conflict detection rule", "downgrade to closeMatch procedure", "adjudication record" ] } ], "data_elements": [ { "id": "external-link", "name": "externalLink", "description": "Typed link to an external record with link type and target identifier.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011", "SRC-013" ] }, { "id": "match-confidence", "name": "matchConfidence", "description": "Confidence attached to a concordance assertion.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "match-method", "name": "matchMethod", "description": "Method and agent that established the concordance.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013", "SRC-004" ] }, { "id": "match-asserted-at", "name": "matchAssertedAt", "description": "RFC 3339 timestamp at which the concordance was asserted or last revalidated.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006", "SRC-013" ] } ], "artifacts": [ { "id": "concordance-table", "name": "Concordance table", "description": "Published table mapping local place identifiers to external authority identifiers with link type, confidence, method and last revalidation timestamp.", "media_or_form": [ "concordance table", "reconciliation report" ], "serial": true, "identity_strategy": "Named by local register identifier plus target authority identifier plus release serial, with an RFC 3339 release timestamp; superseded releases are retained for reproducibility.", "source_refs": [ "SRC-013", "SRC-011" ] } ], "inline_only_rationale": null } ] }, { "id": "encoding-and-service-projection", "name": "Encoding and Service Projection", "description": "Rendering the format-neutral record into exchange encodings and query interfaces without changing its semantics.", "source_refs": [ "SRC-002", "SRC-005", "SRC-006", "SRC-003", "SRC-011" ], "findings": [ { "id": "exchange-encodings-and-service-contract", "name": "Exchange encodings, profile conformance and query-service contract", "description": "The same place record projects into GML per the INSPIRE GN application schema, GeoJSON per RFC 7946, Linked Places Format as JSON-LD that is simultaneously valid GeoJSON, and RDF per GeoSPARQL — and is queried through interfaces such as OGC API - Features with /collections and /items paths, bbox, datetime and limit parameters and required link relations. Each projection loses or constrains something, and the losses must be declared.", "source_refs": [ "SRC-002", "SRC-005", "SRC-006", "SRC-003", "SRC-011" ], "questions": [ { "id": "q-enc-profiles", "text": "Which encodings and profiles are offered for this record, and which is normative when they disagree?", "kind": "interoperability", "answer_data": [ "encoding list with media types", "profile identifier and version", "normative encoding designation", "conformance class list" ] }, { "id": "q-enc-loss", "text": "What information is lost or flattened in each projection, such as temporally scoped names in plain GeoJSON?", "kind": "constraint", "answer_data": [ "lossy element paths per encoding", "mitigation (foreign members, sidecar)", "documented caveat text" ] }, { "id": "q-enc-query", "text": "Which query parameters must the interface support, and how are temporal filters expressed?", "kind": "process", "answer_data": [ "supported parameters", "datetime interval syntax", "CRS negotiation support", "paging and link relations" ] }, { "id": "q-enc-address", "text": "At which stable path or URI is an individual place item addressed, and how does that relate to the place URI?", "kind": "identity", "answer_data": [ "item path template", "relationship between API path and canonical place URI", "redirect behaviour for superseded identifiers" ] }, { "id": "q-enc-extension", "text": "How are model elements with no native slot in an encoding carried, and are those extensions documented?", "kind": "interoperability", "answer_data": [ "extension mechanism used", "namespaced property names", "extension documentation URI" ] } ], "data_elements": [ { "id": "encoding-profile", "name": "encodingProfile", "description": "Identifier and version of the encoding profile in which a representation is expressed.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002", "SRC-011" ] }, { "id": "media-type", "name": "mediaType", "description": "Media type of a served representation.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006", "SRC-005" ] }, { "id": "conformance-class", "name": "conformanceClass", "description": "Conformance class the service or encoding claims to satisfy.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006", "SRC-003" ] }, { "id": "projection-loss-note", "name": "projectionLossNote", "description": "Declared information loss for a given projection.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-005", "SRC-011" ] } ], "artifacts": [ { "id": "api-definition-document", "name": "Service definition and conformance declaration", "description": "Machine-readable API definition plus the conformance declaration listing supported classes, encodings, CRS options and query parameters for the gazetteer service.", "media_or_form": [ "OpenAPI definition", "conformance declaration resource", "landing page document" ], "serial": true, "identity_strategy": "Identified by the service base URI plus a semantic version; each published definition carries an RFC 3339 publication timestamp and a checksum.", "source_refs": [ "SRC-006", "SRC-004" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "governance-access-and-assurance", "name": "Governance, Access Control and Assurance", "description": "Sensitivity and access decisions, validation and quality assurance, and retention, tombstoning and erasure of place records.", "rationale": "Place data can harm: precise locations of sensitive sites, sacred places or threatened populations warrant graded generalization, and the SDW best practices require interacting with spatial data responsibly. Equally, gazetteer identifiers are cited externally and therefore cannot simply be deleted. Governance is a first-class concern, not an afterthought.", "source_refs": [ "SRC-015", "SRC-004", "SRC-013", "SRC-014", "SRC-003" ], "layers": [ { "id": "sensitivity-and-access-control", "name": "Sensitivity and Access Control", "description": "Deciding when a location must be generalized, withheld or restricted, and disclosing what was done.", "source_refs": [ "SRC-015", "SRC-004", "SRC-009" ], "findings": [ { "id": "sensitive-location-generalization-and-access", "name": "Sensitivity classification, generalization and disclosure", "description": "GBIF defines graded sensitivity categories with matching coordinate generalization (region only, 0.1, 0.01 and 0.001 degrees), prefers grid-based generalization over randomization, requires that withholding and generalization be disclosed in dedicated fields, places the sensitivity decision with the data provider, and requires a recorded date for reviewing the sensitivity status. The same pattern governs culturally restricted, security-sensitive and privacy-sensitive places.", "source_refs": [ "SRC-015", "SRC-004" ], "questions": [ { "id": "q-sens-category", "text": "What sensitivity category applies to this place, on what grounds, and who decided it?", "kind": "security", "answer_data": [ "sensitivity category", "grounds (ecological, cultural, security, personal)", "deciding party", "decision timestamp" ] }, { "id": "q-sens-method", "text": "What generalization or withholding was applied, at what magnitude, and where is the precise value retained?", "kind": "privacy", "answer_data": [ "generalization method", "magnitude and unit", "withheld element paths", "custody location of precise value" ] }, { "id": "q-sens-disclose", "text": "How is the fact of generalization or withholding disclosed to consumers without revealing the sensitive detail?", "kind": "access", "answer_data": [ "disclosure field values", "wording used in place of withheld text", "caveat in dataset metadata" ] }, { "id": "q-sens-release", "text": "Who may receive the unredacted record, under what agreement, and how is that release logged?", "kind": "access", "answer_data": [ "eligible requester classes", "agreement or licence required", "approval role", "release audit entry" ] }, { "id": "q-sens-review", "text": "When is the sensitivity status next reviewed, and what would justify downgrading or removing it?", "kind": "lifecycle", "answer_data": [ "review due date", "review criteria", "downgrade decision record" ] } ], "data_elements": [ { "id": "sensitivity-category", "name": "sensitivityCategory", "description": "Graded category determining the permitted resolution and audience for the location.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-015" ] }, { "id": "information-withheld", "name": "informationWithheld", "description": "Statement of which elements were withheld and why.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-015" ] }, { "id": "sensitivity-review-date", "name": "sensitivityReviewDate", "description": "Date on which the sensitivity status must be reconsidered.", "value_kind": "date", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-015" ] }, { "id": "release-authorisation", "name": "releaseAuthorisation", "description": "Record of who authorised release of an unredacted representation, to whom and when.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-015", "SRC-004" ] } ], "artifacts": [ { "id": "sensitivity-assessment-record", "name": "Sensitivity assessment and release log", "description": "Assessment recording category, grounds, generalization applied, deciding party and review date, together with an append-only log of unredacted releases.", "media_or_form": [ "assessment record", "append-only access log" ], "serial": true, "identity_strategy": "Keyed by place identifier plus assessment serial; release log entries are separately serialised with RFC 3339 timestamps and requester identity.", "source_refs": [ "SRC-015", "SRC-004" ] } ], "inline_only_rationale": null } ] }, { "id": "validation-and-quality-assurance", "name": "Validation and Quality Assurance", "description": "Testing records against schemas, constraints and fitness-for-use expectations.", "source_refs": [ "SRC-002", "SRC-003", "SRC-004", "SRC-011" ], "findings": [ { "id": "validation-conformance-and-fitness-for-use", "name": "Validation, conformance testing and fitness for use", "description": "GeoSPARQL 1.1 ships SHACL shapes for RDF validation; INSPIRE publishes validation resources for the GN schema; LPF v1.3 makes fclasses required because it improves reconciliation; the SDW best practices call for exposing validation schemas online. Conformance to a schema is necessary but not sufficient — fitness for a stated purpose must be measured and published separately.", "source_refs": [ "SRC-003", "SRC-002", "SRC-011", "SRC-004" ], "questions": [ { "id": "q-val-schema", "text": "Which schemas, shapes or rule sets is this record validated against, and at which version?", "kind": "validation", "answer_data": [ "schema or shape identifier and version", "validation engine", "last validation timestamp", "result" ] }, { "id": "q-val-required", "text": "Which elements are mandatory for a record to be publishable, and what happens to records that fail?", "kind": "requirement", "answer_data": [ "mandatory element list", "quarantine or rejection behaviour", "remediation owner" ] }, { "id": "q-val-semantic", "text": "Which semantic constraints beyond structural validity are enforced, such as type-consistent parenthood or geometry inside the parent extent?", "kind": "constraint", "answer_data": [ "constraint expressions", "tolerance values", "exception handling" ] }, { "id": "q-val-fitness", "text": "What quality measures are published for the dataset, and against which intended uses?", "kind": "measurement", "answer_data": [ "completeness measure", "currency measure", "duplicate rate", "stated intended uses" ] }, { "id": "q-val-conformance", "text": "Is a conformance claim to an external standard supported by executed test evidence, or is it only an alignment?", "kind": "evidence", "answer_data": [ "standard and conformance class", "test suite and run reference", "claim status (conformant, aligned, untested)" ] } ], "data_elements": [ { "id": "validation-result", "name": "validationResult", "description": "Outcome of validating the record against a named schema or shape set.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-002" ] }, { "id": "quality-measure", "name": "qualityMeasure", "description": "Named quality measure with value, unit, method and evaluation date.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-004", "SRC-002" ] }, { "id": "conformance-claim", "name": "conformanceClaim", "description": "Claim of conformance to an external standard with its evidential status.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-006" ] }, { "id": "mandatory-element-set", "name": "mandatoryElements", "description": "Element paths required for publication under the adopting Dimension's profile.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011", "SRC-002" ] } ], "artifacts": [ { "id": "validation-report", "name": "Validation and conformance report", "description": "Machine-readable report of schema, shape and constraint validation runs with per-rule outcomes, plus published quality measures and any conformance test evidence.", "media_or_form": [ "validation report", "test execution log", "quality statement" ], "serial": true, "identity_strategy": "Serialised per validation run as {dataset-id}-validation-{RFC 3339 UTC timestamp}; each report references the exact schema versions and record-set snapshot evaluated.", "source_refs": [ "SRC-003", "SRC-004", "SRC-002" ] } ], "inline_only_rationale": null } ] }, { "id": "retention-deletion-and-archival", "name": "Retention, Deletion and Archival", "description": "How long records and their versions are kept, and how removal is performed without breaking external citations.", "source_refs": [ "SRC-004", "SRC-013", "SRC-014", "SRC-007" ], "findings": [ { "id": "retention-tombstoning-and-erasure", "name": "Retention, tombstoning and lawful erasure", "description": "Gazetteer identifiers are cited by external systems, so removal is normally deprecation with a tombstone plus a superseded-by pointer, not deletion; Getty TGN treats deletion as a governed editorial action with retained history, GNIS retains historical features, and persistent-URI practice forbids identifier reuse. Genuine erasure obligations (for example personal data embedded in a note) must be satisfied without destroying the identifier or the succession chain.", "source_refs": [ "SRC-004", "SRC-013", "SRC-014", "SRC-007" ], "questions": [ { "id": "q-ret-period", "text": "How long are current records, superseded versions, change logs and evidence dossiers retained, and under what obligation?", "kind": "retention", "answer_data": [ "retention period per class of material", "legal or policy basis", "disposal trigger", "archival destination" ] }, { "id": "q-ret-tombstone", "text": "What does the register return for a deprecated or erroneous record, and what minimum information does the tombstone carry?", "kind": "lifecycle", "answer_data": [ "tombstone payload elements", "successor pointer", "deprecation reason", "deprecation timestamp" ] }, { "id": "q-ret-erasure", "text": "When a lawful erasure request affects part of a record, which elements are removed and which are preserved?", "kind": "privacy", "answer_data": [ "erasable element paths", "preserved identifier and succession chain", "redaction marker", "approving role" ] }, { "id": "q-ret-reuse", "text": "Under what circumstances, if any, may a retired identifier be reused, and how is that prevented by default?", "kind": "constraint", "answer_data": [ "reuse prohibition statement", "technical enforcement mechanism", "exception approval path" ] } ], "data_elements": [ { "id": "retention-class", "name": "retentionClass", "description": "Retention category assigned to the record or an associated artifact.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-014" ] }, { "id": "tombstone", "name": "tombstone", "description": "Minimal representation returned for a deprecated identifier, carrying reason, timestamp and successor.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013", "SRC-004" ] }, { "id": "redaction-marker", "name": "redactionMarker", "description": "Marker recording that an element was removed for legal or ethical reasons, without disclosing its content.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-015", "SRC-004" ] }, { "id": "disposal-timestamp", "name": "disposedAt", "description": "RFC 3339 timestamp at which material was archived or destroyed under the retention schedule.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] } ], "artifacts": [ { "id": "retention-schedule", "name": "Retention and disposal schedule", "description": "Schedule stating retention periods, triggers, archival destinations and erasure procedures for place records, versions, logs, evidence and access logs.", "media_or_form": [ "retention schedule", "disposal register" ], "serial": true, "identity_strategy": "Versioned document identified by dataset URI plus schedule version; every disposal action is recorded as a serialised entry with an RFC 3339 timestamp and approving role.", "source_refs": [ "SRC-004", "SRC-014" ] } ], "inline_only_rationale": null } ] } ] } ] }, "functions": [ { "id": "mint-place-record", "name": "Mint place record", "description": "Create a new governed place record for a location instance that no existing record covers, assigning identity per the identity priority.", "inputs": [ "candidate name assertions with language and script", "location type reference", "gazetteer register reference", "country or area code", "evidence of distinctness from existing records" ], "outputs": [ "place record with persistent identifier", "identifier registration entry", "initial record version with begin lifespan timestamp" ], "preconditions": [ "Location type is defined and admits the candidate", "A duplicate-detection search over names, type and extent returned no match above threshold", "At least one attesting source is supplied" ], "effects": [ "Identifier is reserved permanently and may never be reused", "Record enters the change log as version 1 with an RFC 3339 ingestion timestamp", "Record is queued for validation before publication" ], "source_refs": [ "SRC-001", "SRC-004", "SRC-007", "SRC-013" ] }, { "id": "resolve-geographic-identifier", "name": "Resolve geographic identifier to position", "description": "Resolve a geographic identifier, within a stated location type and gazetteer, to a representative position or extent — the indirect spatial referencing operation ISO 19112 exists to support.", "inputs": [ "geographic identifier", "location type reference", "optional temporal instant", "requested CRS" ], "outputs": [ "representative position or extent in the requested CRS", "positional accuracy statement", "resolution provenance" ], "preconditions": [ "The identifier is current or a supersession chain can be followed", "A geometry or representative point exists, or a containing place can be substituted" ], "effects": [ "Returns a tombstone with a successor pointer when the identifier is deprecated", "Records the resolution in the access log when the record is sensitivity-restricted" ], "source_refs": [ "SRC-001", "SRC-003", "SRC-005", "SRC-013" ] }, { "id": "assert-name", "name": "Assert or revise a name", "description": "Add or revise a temporally scoped name assertion with language, script, transliteration scheme, status, nativeness and attesting citation.", "inputs": [ "name text and script", "language code", "status and nativeness values", "validity interval", "attesting citation" ], "outputs": [ "name assertion attached to the place", "updated preferred label if preference changed", "change log entry" ], "preconditions": [ "Script and language codes resolve in their registries", "At least one citation or a record-level temporal scope is supplied", "Naming authority scope is stated when the status is official" ], "effects": [ "Prior official name is closed with an end date rather than overwritten", "Superseded names remain searchable but may be display-suppressed" ], "source_refs": [ "SRC-002", "SRC-011", "SRC-012", "SRC-014" ] }, { "id": "record-naming-decision", "name": "Record a naming decision", "description": "Register a decision by a naming authority, its dossier, decision date and effective date, and apply the resulting official-name change.", "inputs": [ "authority reference and mandate", "docket or case identifier", "decision outcome", "decision date and effective date", "policy basis references" ], "outputs": [ "naming decision dossier", "renaming event record", "updated name status assertions" ], "preconditions": [ "The authority's competence covers this place and feature class", "Applicable naming policies have been assessed and recorded" ], "effects": [ "Official status transfers to the decided name from the effective date", "Event time and ingestion time are recorded separately", "Downstream consumers are notified through the change feed" ], "source_refs": [ "SRC-007", "SRC-008", "SRC-009" ] }, { "id": "assert-geometry", "name": "Assert geometry or representative position", "description": "Attach a geometry or representative point with role, CRS declaration, certainty, temporal scope and citation, and set or revise the default geometry.", "inputs": [ "geometry serialisation", "CRS identifier", "geometry role", "certainty and citation", "temporal scope" ], "outputs": [ "geometry record with checksum", "updated default geometry designation", "geometry hash for change detection" ], "preconditions": [ "CRS identifier resolves and axis order is declared", "Geometry passes structural validity and antimeridian tests", "Coordinate precision does not exceed justified accuracy" ], "effects": [ "Previous default geometry is retained and temporally closed", "Positional accuracy and viewing-scale bounds are re-evaluated" ], "source_refs": [ "SRC-003", "SRC-004", "SRC-005", "SRC-011" ] }, { "id": "classify-place", "name": "Classify place type", "description": "Assign or revise place type assertions against a governed vocabulary, retaining source labels and distinguishing real-world change from correction.", "inputs": [ "vocabulary concept URI and version", "source type label", "preference flag", "change classification", "validity interval" ], "outputs": [ "type assertion", "crosswalk row when a source label is newly mapped", "change log entry" ], "preconditions": [ "The concept resolves in the declared vocabulary version", "The type is admissible for the record's location type" ], "effects": [ "Coarse feature class is recomputed for reconciliation and filtering", "Hierarchy admissibility constraints are re-checked" ], "source_refs": [ "SRC-002", "SRC-011", "SRC-012", "SRC-014" ] }, { "id": "link-concordance", "name": "Link external concordance", "description": "Assert a typed link to an external gazetteer or authority record with match strength, method, confidence and evidence.", "inputs": [ "external identifier or URI", "link type", "matching method and agent", "confidence score", "evidence reference" ], "outputs": [ "concordance assertion", "concordance table row", "revalidation due date" ], "preconditions": [ "The external target resolves and is not deprecated", "Exact-match assertions are supported by explicit evidence" ], "effects": [ "Conflicting exact matches trigger downgrade review", "Supersession of the external target schedules revalidation" ], "source_refs": [ "SRC-011", "SRC-013", "SRC-016" ] }, { "id": "supersede-record", "name": "Supersede, merge or split records", "description": "Execute an adjudicated succession between place records, maintaining supersedes and superseded_by chains and publishing tombstones.", "inputs": [ "source record identifiers", "target record identifiers", "succession kind", "adjudication evidence", "effective timestamp" ], "outputs": [ "updated succession pointers on all affected records", "succession decision record", "tombstone representations" ], "preconditions": [ "An adjudication decision exists with named adjudicating role", "All affected concordances have been enumerated" ], "effects": [ "Superseded identifiers remain resolvable and are never reused", "Change feed entry is emitted for downstream consumers" ], "source_refs": [ "SRC-013", "SRC-014", "SRC-004" ] }, { "id": "apply-sensitivity-generalization", "name": "Apply sensitivity classification and generalization", "description": "Assign a sensitivity category and produce a generalized public representation while retaining the precise value under controlled custody.", "inputs": [ "sensitivity grounds and evidence", "category assignment", "generalization method and magnitude", "review date", "deciding party" ], "outputs": [ "generalized public representation", "withholding and generalization disclosure fields", "sensitivity assessment record" ], "preconditions": [ "The deciding party holds provider authority over the record", "A retention location for the precise value is designated" ], "effects": [ "Public representations serve only the generalized value", "Unredacted access requires authorisation and is logged", "Category is re-examined at the recorded review date" ], "source_refs": [ "SRC-015", "SRC-004" ] }, { "id": "validate-record", "name": "Validate place record", "description": "Run structural, semantic and profile validation against declared schemas, shapes and constraints, and record the outcome.", "inputs": [ "place record snapshot", "schema and shape set with versions", "constraint expressions and tolerances" ], "outputs": [ "validation report with per-rule outcomes", "publishability determination", "remediation task list" ], "preconditions": [ "Mandatory element set for the profile is declared", "Schema and shape versions are pinned" ], "effects": [ "Records failing mandatory rules are withheld from publication", "Conformance claims are updated only where test evidence exists" ], "source_refs": [ "SRC-002", "SRC-003", "SRC-004", "SRC-011" ] }, { "id": "project-record", "name": "Project record to an encoding", "description": "Render the format-neutral record into a target encoding or profile, declaring any information loss introduced by the projection.", "inputs": [ "place record", "target encoding and profile version", "requested CRS", "temporal filter" ], "outputs": [ "encoded representation", "projection loss declaration", "media type and profile headers" ], "preconditions": [ "Target profile is registered and its loss profile is documented", "Requested CRS is supported or the default is applied" ], "effects": [ "Semantics of the record are unchanged; only the rendering differs", "Extensions are carried through documented namespaced mechanisms" ], "source_refs": [ "SRC-002", "SRC-003", "SRC-005", "SRC-011" ] }, { "id": "query-places", "name": "Query places by space, time and attribute", "description": "Retrieve place records filtered by bounding box, temporal interval, type, name and hierarchy, with paging and link relations.", "inputs": [ "spatial filter", "temporal interval in RFC 3339", "type and name filters", "paging parameters" ], "outputs": [ "feature collection response", "paging links and self/alternate relations", "result count and applied-filter echo" ], "preconditions": [ "Requester is entitled to the sensitivity tier of the matched records", "Temporal filter syntax is valid, including open-ended intervals" ], "effects": [ "Sensitivity-restricted matches are returned generalized or omitted with disclosure", "Access to restricted records is written to the audit log" ], "source_refs": [ "SRC-006", "SRC-005", "SRC-015" ] }, { "id": "deprecate-and-dispose", "name": "Deprecate and dispose", "description": "Deprecate a record with a tombstone or dispose of retained material according to the retention schedule, without destroying identity or succession chains.", "inputs": [ "place or artifact identifier", "deprecation reason or retention trigger", "successor pointer where applicable", "approving role" ], "outputs": [ "tombstone representation", "disposal register entry", "redaction markers where content was removed" ], "preconditions": [ "Retention period has elapsed or a lawful erasure basis is recorded", "Successor or explanation is available for external citers" ], "effects": [ "Identifier remains reserved and resolvable", "Disposal is recorded with an RFC 3339 timestamp and approving role" ], "source_refs": [ "SRC-004", "SRC-013", "SRC-014", "SRC-015" ] }, { "id": "traverse-place-hierarchy", "name": "Traverse parent-child hierarchy", "description": "Follow preferred and additional parents or children, including historical and polyhierarchical paths.", "inputs": [ "place_id", "direction", "include_historical" ], "outputs": [ "parent or child link set", "materialised path" ], "preconditions": [ "Place exists in the gazetteer" ], "effects": [ "Read-only navigation of location-instance links" ], "source_refs": [ "SRC-001", "SRC-020", "SRC-022", "SRC-019" ] }, { "id": "resolve-position-to-candidate-places", "name": "Reverse geocode position to candidate places", "description": "Return named places whose position or extent contains or is near a point, filtered by feature type and viewing resolution.", "inputs": [ "point", "crs", "feature_type", "radius_or_resolution" ], "outputs": [ "candidate gazetteer places", "distance or containment flag" ], "preconditions": [ "Point CRS is known or assumed WGS 84 as a finding CRS" ], "effects": [ "Read-only candidate set; proximity is not a hierarchical parent" ], "source_refs": [ "SRC-019", "SRC-018", "SRC-022" ] }, { "id": "propose-name-to-authority", "name": "Propose a new name or name change", "description": "Submit a names-authority proposal for an unnamed feature or a change to an existing official name, with local-usage evidence and compelling reason.", "inputs": [ "place_or_unnamed_geometry", "proposed_name", "evidence", "compelling_reason" ], "outputs": [ "proposal_id", "decision_status" ], "preconditions": [ "Proposer meets the names-authority submission rules", "Feature class is within the authority's purview" ], "effects": [ "Creates a proposal casefile; does not by itself change the standardized name" ], "source_refs": [ "SRC-023", "SRC-021" ] }, { "id": "transact-register-item", "name": "Publish or transact a gazetteer item", "description": "Insert, update or retire a location instance through a gazetteer service or register process, including ISO 19135-style item status.", "inputs": [ "location_instance", "gazetteer_id", "transaction_type" ], "outputs": [ "register item version", "begin or end lifespan timestamps" ], "preconditions": [ "Custodian or editor role", "Record satisfies the gazetteer schema and validation policies" ], "effects": [ "Creates or versions the register item; sets lifespan timestamps; may emit exchange encodings" ], "source_refs": [ "SRC-001", "SRC-020", "SRC-025" ] } ], "composition": [ { "target": "Gazetteer register and location type registry (ISO 19112 gazetteer / location type)", "relation": "REFERENCE", "purpose": "Every place record must declare the gazetteer that publishes it and the location type whose definition it satisfies; the register and type definitions are governed separately from individual instances.", "required": true, "source_refs": [ "SRC-001", "SRC-009" ] }, { "target": "Address and addressable-object model (ISO 19160-1 conceptual model)", "relation": "REFERENCE", "purpose": "Link a place to addresses that designate it without importing address component or postal-template semantics, which ISO/TC 211 treats as a distinct scope from geographic identifiers.", "required": false, "source_refs": [ "SRC-017", "SRC-001" ] }, { "target": "Country and area code registry (ISO 3166-1 and UN M49)", "relation": "REFERENCE", "purpose": "Supply the country or area codes that contextualise the place; LPF makes country codes a required property and the register carries the disclaimer about legal status and frontiers.", "required": true, "source_refs": [ "SRC-010", "SRC-011", "SRC-013" ] }, { "target": "Administrative and statistical area model (INSPIRE Administrative Units, national admin hierarchies)", "relation": "REFERENCE", "purpose": "Provide the parent administrative and statistical units that a place belongs to, without duplicating their legal basis, boundary geometry or versioning.", "required": false, "source_refs": [ "SRC-002", "SRC-012", "SRC-013" ] }, { "target": "Coordinate reference system model (ISO 19111 / EPSG-style register)", "relation": "REFERENCE", "purpose": "Resolve the CRS identifiers declared on geometries and support transformation provenance; CRS definitions are external and must not be restated here.", "required": true, "source_refs": [ "SRC-003", "SRC-005", "SRC-006" ] }, { "target": "Language, script and transliteration registries (ISO 639, ISO 15924, romanization systems)", "relation": "REFERENCE", "purpose": "Validate the language, script and transliteration-scheme values on every name spelling, as required by the INSPIRE GeographicalName structure.", "required": true, "source_refs": [ "SRC-002", "SRC-009" ] }, { "target": "Place type vocabulary / feature classifier model (GeoNames feature codes, Getty AAT place types, INSPIRE code lists)", "relation": "REFERENCE", "purpose": "Supply resolvable place-type concepts and their versioning and deprecation rules; the place record holds only the classification assertion and its source label.", "required": true, "source_refs": [ "SRC-002", "SRC-011", "SRC-012", "SRC-014" ] }, { "target": "Geometry and spatial footprint model", "relation": "COMPOSE", "purpose": "Compose the place with zero or more geometries carrying role, CRS, temporal scope, certainty and serialisation, following the GeoSPARQL separation of feature from geometry.", "required": false, "source_refs": [ "SRC-003", "SRC-011", "SRC-005" ] }, { "target": "Source, citation and attestation model", "relation": "COMPOSE", "purpose": "Attach per-assertion citations with locus, date and confidence to names, types, geometries and relations, as LPF and INSPIRE sourceOfName require.", "required": true, "source_refs": [ "SRC-011", "SRC-002", "SRC-014" ] }, { "target": "Agent and organisation model (authorities, custodians, contributors)", "relation": "REFERENCE", "purpose": "Identify naming authorities, gazetteer custodians, instance administrators and contributors as governed agents rather than free-text strings.", "required": true, "source_refs": [ "SRC-001", "SRC-008", "SRC-014" ] }, { "target": "Temporal period vocabulary model (named historical periods)", "relation": "REFERENCE", "purpose": "Resolve named period concepts used to scope existence, names and geometries where calendar dates are unavailable or inappropriate.", "required": false, "source_refs": [ "SRC-011" ] }, { "target": "Rights, licence and attribution model", "relation": "MIX-IN", "purpose": "Carry licence, attribution and inherited source restrictions on the record and on derived representations.", "required": false, "source_refs": [ "SRC-014", "SRC-004" ] }, { "target": "INSPIRE Geographical Names (GN) application schema", "relation": "ALIGN", "purpose": "Alignment target for NamedPlace, GeographicalName, SpellingOfName and lifespan versioning; alignment is asserted at element level and does not by itself constitute a conformance claim.", "required": false, "source_refs": [ "SRC-002" ] }, { "target": "Linked Places Format v1.3", "relation": "ALIGN", "purpose": "Alignment target for temporally scoped names, types, geometries, relations and typed links, and for the required title, country codes and feature classes.", "required": false, "source_refs": [ "SRC-011" ] }, { "target": "OGC GeoSPARQL 1.1 Feature and Geometry ontology", "relation": "ALIGN", "purpose": "Alignment target for feature-geometry structure, serialisations and topological relation families when the record is projected to RDF.", "required": false, "source_refs": [ "SRC-003" ] }, { "target": "OGC API - Features Part 1: Core", "relation": "ALIGN", "purpose": "Alignment target for the query-service projection: item addressing, bbox and datetime parameters, default CRS and link relations.", "required": false, "source_refs": [ "SRC-006" ] }, { "target": "Point-of-interest and venue model (schema.org Place / LocalBusiness operational attributes)", "relation": "ALIGN", "purpose": "Alignment for web discoverability of the stable named-place core while explicitly excluding operational and commercial attributes.", "required": false, "source_refs": [ "SRC-016", "SRC-004" ] }, { "target": "Sensitive-data handling policy model (graded generalization and disclosure)", "relation": "MIX-IN", "purpose": "Apply graded sensitivity categories, generalization magnitudes, disclosure fields and review dates to any place whose precise location can cause harm.", "required": false, "source_refs": [ "SRC-015", "SRC-004" ] } ], "serviceLayers": { "dimension": { "owner_package_requirements": [ "Name a single accountable custodian for the gazetteer register and a named administrator role for each location type in scope, with a published contact and escalation path.", "Declare the territory of use, the naming authorities recognised as competent within it, and the usage domains for which their decisions are treated as binding versus advisory.", "Publish the licence, attribution requirement and any inherited source restrictions before redistributing toponymic data, and record the sensitivity policy and its decision owner.", "Pin the versions of every external registry the package depends on (place type vocabulary, language and script registries, country codes, CRS register) and state the upgrade procedure." ], "namespace_guidance": "Mint place URIs in a Dimension-controlled HTTPS namespace using opaque, non-semantic local identifiers, for example https://{dimension-host}/place/{ulid}, so that renaming, reclassification or re-delimitation never forces an identifier change. Never encode a name, coordinate, type or date in the identifier. Never reuse a retired local identifier. Where an authoritative master-system identifier exists, carry it as a governed alternative identifier with its scheme URI rather than adopting it as the local key, and keep external authority identifiers strictly in the concordance layer.", "registry_links": [ "Gazetteer register and location type registry maintained by the adopting Dimension (ISO 19112 conceptual schema)", "Country and area code registry: ISO 3166-1 alpha-2/alpha-3 with UN M49 numeric codes and region groupings", "Language and script registries: ISO 639 language codes and ISO 15924 script codes, plus the recognised romanization systems", "Place type vocabulary register with version pinning and deprecation policy", "Coordinate reference system register supplying CRS identifiers used in geometry declarations", "External gazetteer concordance register recording target authorities, link types and revalidation cadence" ] }, "canon_and_patch": { "canonicalization_rules": [ "Normalise all toponym text to Unicode NFC and store the script code with every spelling; retain diacritics in the canonical form and generate folded variants only as derived search indexes.", "Store coordinates in the declared CRS with an explicit axis-order statement; where a lon/lat geographic CRS is used, follow longitude-before-latitude decimal degrees and truncate precision to the justified accuracy.", "Express every timestamp in RFC 3339 with seconds and an explicit offset or Z, and keep event time, observation time and ingestion time in separate elements.", "Serialise geometries canonically (fixed vertex order, closed rings, antimeridian-split parts) and record a digest of the canonical serialisation to detect silent geometry change.", "Order multi-valued collections deterministically — names by status then language then script, types by preference then concept URI, links by link type then target URI — so that diffs are stable.", "Represent absent knowledge with explicit reason codes or sentinel states rather than empty strings, null coordinates or a fabricated default parent." ], "patch_rules": [ "Address patches to stable element identifiers, never to array positions, so that reordering does not corrupt a patch.", "Distinguish a real-world change from a correction: a real-world change closes the prior assertion with an end date and adds a new temporally scoped assertion, while a correction supersedes the erroneous assertion and records the reason in the change log.", "Never overwrite human-curated elements from an automated process; the controlled-field list must be checked before any bulk update and an override requires a named approving role.", "Every patch records the asserting agent, the generation method, the event time and the ingestion timestamp; a patch without provenance is rejected.", "Identifier, identifier scheme and succession pointers are append-or-close only; they are never rewritten in place.", "A patch that would remove a mandatory element or an existing citation is rejected unless it is accompanied by a superseding assertion or an approved erasure decision." ], "compatibility_rules": [ "Adding an optional element, an additional encoding profile or a new code-list value is a minor, backward-compatible change.", "Removing or making mandatory an existing element, changing identifier semantics, changing the default CRS or changing coordinate axis order is a breaking change requiring a major version and a migration note.", "Code-list values are deprecated with a successor pointer and a sunset date rather than deleted; consumers must be able to interpret historical records containing retired values.", "Alignment to an external standard may be asserted at element level at any time; a conformance claim may be published only when executed test evidence for a named conformance class exists.", "Projections may add namespaced extensions but must not redefine the semantics of elements defined by the target encoding." ] }, "artifact_rules": { "identity_priority": [ "Authoritative master-system identifier issued by the system of record for the place (for example a national gazetteer feature identifier or an INSPIRE external object identifier), carried with its scheme URI.", "Governed global identifier or IRI — a persistent HTTPS URI in a namespace controlled by a recognised authority or by the adopting Dimension, resolvable and never reused.", "UUID or ULID minted by the adopting Dimension, used only where neither of the above exists; a date, a name, a coordinate pair or a file path is never an identifier." ], "timestamp_rule": "All artifact and record timestamps use RFC 3339 with seconds and an explicit UTC offset or Z. Event time (decision date, effective date, real-world change), observation or survey time, and ingestion or recording time are stored in separate elements and are never collapsed into one value; where only a date is known, a date value is used and is not silently widened to a timestamp.", "serial_naming_rule": "Serial artifacts are named {register-code}-{artifact-kind}-{RFC 3339 UTC date}-{zero-padded sequence}, for example GAZ-validation-2026-08-24-003, with the sequence monotonically increasing within the date and never reused. Serials identify the artifact instance only; the subject place is referenced by its identifier, never by the serial.", "integrity_rule": "Every stored artifact carries a SHA-256 checksum of its canonical byte form and, for geometry artifacts, a separate digest of the canonical geometry serialisation. Decision dossiers, sensitivity assessments and release logs are append-only and, where the authority supports it, retain the signed original. Any artifact whose checksum cannot be reproduced is quarantined and reported rather than silently replaced." }, "policies": [ "Identity is permanent: an identifier once issued is never reused, never repurposed and never deleted; removal is deprecation with a tombstone and, where applicable, a successor pointer.", "Names are assertions, not facts: every name carries its language, script, status, nativeness, temporal validity and at least one attesting source or an explicit record-level temporal scope.", "Officiality is scoped: no name is presented as official without naming the deciding authority, its territory of competence and the audiences for whom the decision is binding.", "Dispute is data: competing names, claims and parentages are recorded as parallel assertions with their sources; the register does not silently adopt one side, and audience-scoped presentation is accompanied by a disclaimer that no position on legal status or boundary delimitation is implied.", "Precision is not accuracy: recorded coordinate precision must not exceed documented positional accuracy, and any deliberate generalization must be disclosed in dedicated fields.", "Harm review precedes publication: places whose precise location can endanger people, cultural property, sacred sites or threatened populations are assessed, categorised, generalized to the category's resolution and given a recorded review date.", "Alignment is not conformance: external standards are recorded as alignments with element-level mappings; a conformance claim requires executed test evidence for a named conformance class.", "Format neutrality: JSON, YAML, Markdown, GML, RDF, Git, MCP and MongoDB are projections of the record; no semantic element may be defined only in terms of one projection.", "Standardized or official names take display precedence over compiled or crowd-sourced forms when a names authority has jurisdiction.", "Historical, variant, pejorative and avoid-use names are retained with flags for retrieval and audit; they are not used for new indexing.", "Indigenous, minority and local-use names are recorded with community or authority warrant and are not overwritten by exonyms.", "Cave and other legally protected locations have coordinates withheld from public projections.", "Addresses, postal codes, buildings-as-assets and CRS definitions are referenced, not stored as the gazetteer place.", "Conformance to ISO 19112, INSPIRE GN or OGC WFS-G is claimed only with evidence; otherwise records are alignments." ], "crud": { "read": [ "Public reads return the current record version in the requested encoding with its licence, attribution, CRS declaration and any generalization disclosure.", "Historical reads are supported by version and by valid-time: a caller may request the record as it was recorded at an ingestion timestamp, or as it was true at a real-world instant.", "Requests for deprecated identifiers return a tombstone carrying the deprecation reason, timestamp and successor pointer rather than a not-found response.", "Reads of sensitivity-restricted records return the generalized representation with disclosure fields unless the caller is authorised, and authorised reads are logged.", "Bulk reads and change feeds expose version boundaries so that consumers can synchronise without re-fetching the whole register." ], "create": [ "Creation requires a location type, a gazetteer register, at least one name assertion with language or an explicit undetermined value, a country or area code and at least one attesting source.", "Duplicate detection over names, type and extent must be executed and its negative result recorded before an identifier is minted.", "New records are validated against the pinned schema and shape set before publication; records failing mandatory rules are quarantined with a remediation owner.", "Creation writes version 1 to the change log with begin lifespan version, asserting agent and generation method." ], "update": [ "Real-world change closes the prior assertion with an end date and adds a new temporally scoped assertion; the identifier is unchanged.", "Correction supersedes the erroneous assertion, records the reason and retains the superseded value in the change log.", "Controlled, human-curated elements are protected from automated update unless an override is approved by a named role.", "Changes to official status require a referenced naming decision with decision date and effective date.", "Every update writes ingestion time separately from event time and recomputes the geometry digest where geometry changed." ], "delete": [ "Hard deletion of a published place record is prohibited; deprecation with a tombstone is the standard removal.", "Merge, split, absorption, rescope and retraction are executed only through an adjudicated succession decision that enumerates all affected identifiers and concordances.", "Lawful erasure removes only the specific elements under obligation, leaves a redaction marker, and preserves the identifier, the succession chain and the audit trail.", "Disposal of retained versions, logs and evidence follows the published retention schedule and is recorded in the disposal register with an approving role and an RFC 3339 timestamp." ] }, "roles": [ { "name": "Gazetteer Custodian", "responsibilities": [ "Hold accountability for the register's scope, territory of use, licence and publication commitments", "Approve location type definitions and profile version changes", "Own the retention schedule and approve disposals" ] }, { "name": "Toponymic Editor", "responsibilities": [ "Create and revise name assertions with language, script, status, nativeness and attestation", "Adjudicate conflicting name evidence and record the basis", "Maintain preferred-label selection rules and display suppression of retained variants" ] }, { "name": "Naming Authority Liaison", "responsibilities": [ "Track the competence and mandates of recognised naming authorities", "Lodge, monitor and record naming proposals, dossiers, decisions and effective dates", "Escalate contested names and maintain the contested place register" ] }, { "name": "Spatial Data Steward", "responsibilities": [ "Assert and maintain geometries, CRS declarations and representative positions", "Evaluate and publish positional accuracy and viewing-scale bounds", "Investigate topology anomalies such as same-type overlaps and hierarchy geometry inconsistencies" ] }, { "name": "Sensitivity and Access Officer", "responsibilities": [ "Assign and review sensitivity categories and generalization magnitudes", "Authorise and log releases of unredacted representations", "Own erasure decisions and redaction markers" ] }, { "name": "Interoperability Engineer", "responsibilities": [ "Maintain encoding profiles, projection loss declarations and the service definition", "Operate validation and conformance test runs and publish reports", "Maintain concordances, match confidence and revalidation on external supersession" ] } ], "access": { "default_rule": "Place records are open by default under the declared licence, served at the resolution permitted by their sensitivity category; access to unredacted positions, evidence dossiers, decision case files and access logs is restricted to named roles and is logged.", "scopes": [ "bundle", "layer", "finding", "artifact" ], "exceptions": [ "Sensitivity-restricted places: public callers receive only the generalized representation plus disclosure fields; unredacted access requires an approved agreement and a named authorising role.", "Contested naming material: draft adjudications and internal deliberation notes in the contested place register are withheld until the adjudication is closed, while the competing assertions themselves remain public.", "Embargoed naming decisions: a decision dossier may be withheld until the authority publishes it, with the embargo end date recorded.", "Third-party licensed source material inside evidence dossiers may be non-redistributable even where the place record is open; the dossier is then served as citation metadata only.", "Personal data incidentally present in notes or contributor records is restricted regardless of the openness of the place record.", "Authorised researchers or land-management agents may receive withheld cave or other protected coordinates under an auditable exception.", "Indigenous-name records may have community-specified access tighter than the gazetteer default.", "Internal compiled dumps may include licence-restricted sources that cannot be redistributed." ], "audit_requirements": [ "Every read of an unredacted sensitivity-restricted record logs requester identity, authorising role, purpose, returned resolution and an RFC 3339 timestamp.", "Every write logs the asserting agent, generation method, event time, ingestion time and the changed element paths.", "Every succession, deprecation, erasure and disposal action logs the approving role, the reason and all affected identifiers.", "Access logs are append-only, retained under the retention schedule independently of the records they describe, and reviewed on a stated cadence.", "Log identifier resolution of restricted records, all official-name decisions, merges, disclosure-class changes and access exceptions with RFC 3339 timestamps and actor identity." ] }, "agents_bootstrap": { "filename": "AGENTS.md", "required_fields": [ "Name", "Type", "Specification URL", "Storage type URL", "Interface URL", "Processes URL", "Model ID", "Custodian contact" ], "read_order": [ "AGENTS.md — establish the model name, type, and the specification, storage, interface and process entry points before touching any data", "Specification URL — read the scope, exclusions and boundary notes, and confirm the subject is a gazetteer place and not an address, administrative unit or POI", "Storage type URL — learn the projection in use (document store, graph, files under version control) and the canonicalisation rules that apply to it", "Interface URL — learn the query and write contract, supported encodings, CRS handling and paging before issuing any request", "Processes URL — read the naming decision, succession, sensitivity and retention procedures before creating, updating or removing any record", "Registry links — resolve pinned versions of place type, language, script, country and CRS registries before validating or asserting values" ] } }, "coverage": { "claim": "Covers the governed decision and operating surface of a gazetteer place record — identity and indirect referencing, multilingual temporally scoped naming, classification, position, accuracy and CRS declaration, real-world existence versus record lifecycle, naming authority and dispute, custodianship, assertion-level provenance, hierarchy and topology, cross-gazetteer concordance, sensitivity, validation and retention — grounded in ISO 19112 (concept level only), INSPIRE Geographical Names, OGC GeoSPARQL and OGC API - Features, W3C/OGC SDW best practices, IETF GeoJSON, UNGEGN, US BGN/GNIS, UN M49 and the Linked Places, GeoNames, Who's On First, Getty TGN and GBIF bodies of practice, extended by three grok-sourced findings for gazetteer-as-register item status, administrative-versus-physical facet, and deprecated/derogatory/community-restricted name governance. Not claimed complete for any specific national gazetteer, for NGA GNS-governed non-US official names, for marine, undersea or extraterrestrial naming regimes, for Indigenous data-sovereignty instruments, or for jurisdictions whose naming law was not examined.", "confidence": "medium", "checklist": [ { "dimension": "identity", "status": "covered", "notes": "Identifier priority, opaque persistent identifiers, HTTPS URI minting, non-reuse, alternative geographic identifiers and duplicate adjudication are specified and grounded in ISO 19112, GNIS Feature ID practice, Who's On First wof:id and the SDW persistent-URI best practice." }, { "dimension": "lifecycle", "status": "covered", "notes": "Record version lifespan, change classification, supersession, merge, split, deprecation, tombstoning and disposal are separated from real-world existence, grounded in INSPIRE lifespan versioning, Who's On First supersedes/superseded_by and Getty TGN merge and deletion rules." }, { "dimension": "relationships", "status": "covered", "notes": "Partitive and administrative hierarchy with multiple concurrent schemes and explicit unknown/contested parentage, formal topological relation families, associative relations and typed external links are all covered from GeoSPARQL, LPF, GeoNames, Who's On First and schema.org." }, { "dimension": "temporal", "status": "covered", "notes": "Real-world existence, name validity, type and geometry validity and record time are kept on separate clocks; open-ended and approximate intervals, named periods and certainty are supported per LPF, with RFC 3339 required for machine timestamps." }, { "dimension": "provenance", "status": "covered", "notes": "Assertion-level citation rather than record-level attribution, evidence kind, contributor, editorial control and machine-versus-human generation are covered from INSPIRE sourceOfName, LPF per-element citations, Getty TGN sources and contributors and Who's On First controlled fields." }, { "dimension": "ownership", "status": "covered", "notes": "Custodian, instance administrator, contributor, licence and inherited source restrictions are explicit, with named accountable roles and a required owner package for the adopting Dimension." }, { "dimension": "validation", "status": "covered", "notes": "Structural, shape-based and semantic validation with pinned schema versions, mandatory element sets, publishability gating and the distinction between alignment and evidenced conformance are covered from GeoSPARQL SHACL shapes, INSPIRE validation practice, LPF required properties and the SDW validation best practice." }, { "dimension": "access", "status": "covered", "notes": "Default openness with graded sensitivity restriction, audience-scoped presentation for contested names, embargoes, third-party licence limits and comprehensive audit requirements are specified from GBIF sensitive-data practice and SDW responsible-use guidance." }, { "dimension": "retention and deletion", "status": "covered", "notes": "Prohibition on hard deletion and identifier reuse, tombstones with successor pointers, retention classes, lawful partial erasure with redaction markers and a disposal register are specified." }, { "dimension": "interoperability", "status": "covered", "notes": "Encoding profiles, declared projection loss, extension mechanisms, service contract with bbox/datetime/limit and link relations, CRS negotiation, and concordance link strength with revalidation are covered from RFC 7946, OGC API - Features, GeoSPARQL, INSPIRE GML and LPF." }, { "dimension": "naming and language", "status": "covered", "notes": "Language, script, transliteration scheme, pronunciation, nativeness, status, preference and display suppression follow the INSPIRE GeographicalName and SpellingOfName structure and UNGEGN romanization concerns." }, { "dimension": "classification", "status": "covered", "notes": "Governed place-type concepts with source labels, coarse feature classes, preferred type, multiplicity rules, temporal scoping and a crosswalk artifact are covered from INSPIRE, LPF fclasses, GeoNames feature classes and codes, and Getty TGN preferred place type." }, { "dimension": "spatial position and accuracy", "status": "covered", "notes": "Representative point, multiple roled geometries, null geometry with reason, CRS declaration and axis order, transformation provenance, antimeridian handling, positional accuracy and viewing-scale bounds are covered." }, { "dimension": "authority and decision", "status": "covered", "notes": "Bounded officiality, delegated competence, decision dossiers with docket, policy basis, consultation, decision and effective dates, and reconsideration paths are grounded in US BGN principles and policies and UNGEGN's national standardisation mandate." }, { "dimension": "measurement", "status": "covered", "notes": "Positional accuracy with method and confidence, published quality measures for completeness, currency and duplicate rate, and match confidence on concordances are all represented as measured rather than asserted values." }, { "dimension": "privacy and cultural sensitivity", "status": "gap", "notes": "Graded generalization, withholding disclosure, provider-held decision authority and review dates are covered from GBIF practice, which addresses species localities. Indigenous and culturally restricted place-name governance — including community consent, restricted-knowledge protocols and traditional-knowledge labelling — is represented only generically; no Indigenous data governance instrument was examined in this pass, so this node is marked a gap rather than presented as canonical." }, { "dimension": "security", "status": "gap", "notes": "Restriction of critical-infrastructure and security-sensitive locations is handled by the same graded sensitivity mechanism, but no national security classification regime was consulted, so mapping between sensitivity categories and government classification levels is undefined." } ], "known_omissions": [ "ISO 19112:2019 clause-level attribute names could not be verified against the normative text in this session: the ISO catalogue page returned HTTP 403 and the preview PDF was not machine-readable. Concept-level claims (gazetteer, location instance, location type, geographic identifier, custodian, administrator, territory of use) are grounded in ISO catalogue metadata and corroborating open sources; exact attribute names, cardinalities and any 2019 renaming relative to the 2003 edition are unverified.", "The revision date of the US BGN Principles, Policies, and Procedures could not be extracted because the hosted PDF was not machine-readable; the policy content cited (presumption against changing established names, commemorative-name restrictions, prohibition on derogatory names) is corroborated but the exact edition is unstated.", "Extended Date/Time Format (ISO 8601-2 levels) was intended as the grounding for uncertain and approximate dates but the Library of Congress specification pages returned HTTP 403; temporal uncertainty is therefore grounded in the LPF 'when' object alone, and the specific EDTF syntax for uncertainty, approximation and unspecified digits is not asserted.", "Maritime, undersea and extraterrestrial naming regimes (IHO undersea feature names, IAU planetary nomenclature) were not examined; the model may need additional authority and classification structure for those domains.", "Postal, statistical and electoral geographies that reuse place names with different extents are treated only through hierarchy schemes; no dedicated finding covers the reconciliation of name-sharing units with divergent boundaries.", "Multilingual sorting and collation for display and indexing is acknowledged in canonicalisation but no collation authority was examined.", "No treatment of crowd-sourced contribution moderation, vandalism detection or trust scoring, despite UNGEGN noting crowd-sourced geographic information as a working-group concern.", "Full ISO 19112:2019 UML attribute list is paywalled; 2019 class names (Location, LocationClass, Gazetteer, GeographicIdentifier) are taken from the official abstract, TC 211 requirement and publicly quoted edition-2 change list, while 2003 SI_* properties are evidenced by OGC 11-122r1.", "NGA GNS field dictionary (UFI/UNI, name type, designation) was not retrieved; non-US official names often depend on that register and remain a gap.", "IHO SCUFN undersea feature names, IAU WGPSN extraterrestrial names, and World Historical Gazetteer / Linked Places Format / Pelagios are not primary-sourced here.", "Indigenous data-sovereignty protocols (CARE Principles, UNDRIP applied to toponyms) are only indirectly covered via UNGEGN promotion of indigenous names.", "ADL Gazetteer Content Standard and Feature Type Thesaurus are historically important but were not fetched as live first-party schema in this run.", "ISO 19155 Place Identifier architecture and GeoSPARQL geometry semantics are not modelled beyond complementary geometry.", "National gazetteers beyond GNIS/INSPIRE/GeoNames/TGN (for example Ordnance Survey Open Names, Canadian Geographical Names) are acknowledged as sources to GeoNames rather than fully modelled." ], "conflicts": [ "Identifier form differs across authorities: GNIS uses a numeric ANSI-standard Feature ID, INSPIRE uses a namespace-plus-localId external object identifier, Who's On First uses an externally minted integer, and the SDW best practices call for HTTP URIs. The model resolves this by keeping the master-system identifier as a governed alternative identifier and minting a separate opaque local key and URI, but a single register cannot satisfy all four native forms simultaneously.", "GeoJSON fixes the CRS to WGS 84 with longitude-before-latitude and forbids alternative CRS declarations, while OGC API - Features and GeoSPARQL support other CRSs; a record served as plain GeoJSON therefore cannot faithfully carry a non-WGS 84 geometry and must declare that projection loss.", "Plain GeoJSON has no native slot for temporally scoped names, types or geometries; LPF resolves this with JSON-LD foreign members, but a consumer treating LPF as ordinary GeoJSON will silently see only one name and one geometry.", "Officiality conflicts across authorities: a name official for one government's use is not binding on others, and the same feature may carry different official names under different states. UN M49 explicitly disclaims any position on legal status, so a register that presents a single official name is making an editorial choice rather than reporting a fact.", "Preferred-parent modelling differs: Getty TGN designates one preferred parent with non-preferred alternatives, while Who's On First permits sentinel states for unknown, complicated, contested or multiple parentage. Forcing TGN-style single preference onto contested places produces false assertions.", "GBIF-style generalization improves safety but degrades positional accuracy and can break topological containment checks; the accuracy statement and the generalization statement can therefore appear to contradict one another unless both are published.", "ISO 19112:2019 optional/descriptive position versus INSPIRE NamedPlace required geometry.", "ISO 19112:2019 Location/Gazetteer class names versus OGC 11-122r1 use of ISO 19112:2003 SI_LocationInstance.", "OGC 11-122r1 is a Best Practice, not an OGC Standard; OGC now points implementers to OGC API Features.", "Feature-type schemes conflict: INSPIRE NamedPlaceTypeValue, GeoNames 9 classes/645 codes, GNIS ~43 retrieval classes with no official generic-term definitions, TGN AAT-linked place types.", "GNIS 2021 removal of most cultural feature classes versus GeoNames and TGN retention of many man-made or inhabited-place types.", "GeoNames wiki edits versus UNGEGN/BGN names-authority sanction.", "TGN approximate finding coordinates versus GIS-grade geometry.", "INSPIRE does not rank competing official endonyms; UNGEGN prefers a single official spelling per feature where possible." ], "regional_assumptions": [ "Naming authority structure is modelled on regimes with an identifiable national or federal names board and delegated sub-national authorities, exemplified by the US BGN and by UNGEGN's national standardisation framework. Jurisdictions with no statutory names authority, or with competing sub-national authorities, will need locally defined precedence rules.", "The country-code context assumes ISO 3166-1 and UN M49 apply; places in territories with contested or absent code assignments require the contested-claims mechanism rather than a code value.", "INSPIRE-derived elements (lifespan versioning, viewing-scale bounds, nativeness, name status) reflect European regulatory practice and are treated as a strong alignment rather than a universal requirement.", "US-specific policies such as the commemorative-name waiting period and the single-official-name-per-feature rule are cited as evidence that such policies exist and must be modelled, not as globally applicable rules.", "Sensitivity categories are drawn from a biodiversity context; thresholds expressed in decimal degrees behave differently at high latitudes and may be inappropriate for cultural or security sensitivity in other regions.", "WGS 84 is assumed as the de facto finding CRS for complementary points (GeoNames, TGN, typical GNIS decimal degrees), not as a universal legal CRS.", "U.S. BGN/GNIS rules, including cave-location withholding and cultural-feature exclusions, apply to U.S. domestic names and must not be globalised.", "INSPIRE NamedPlace obligations apply to European spatial-data infrastructure exchange, not to all gazetteers.", "UNGEGN romanization keys and endonym preference apply where a national names authority exists; many territories have none.", "English-language preferred-name practice in TGN legacy data is an editorial convention, not a global rule.", "NGA GNS remains the usual non-US official compiled source even though its field dictionary was not fetched." ], "adversarial_checks": [ "Attempted to justify a bundle for 'address and postal delivery' inside this model and rejected it: ISO/TC 211's own review concluded that addressing requirements are sufficiently different from the scope of ISO 19112, so addresses are a referenced sibling rather than a layer here.", "Attempted to justify operational attributes (opening hours, capacity, booking, accessibility) because schema.org Place carries them, and rejected them: they describe a venue's operation, not a named place's identity, and admitting them would collapse the boundary with a POI model.", "Searched for a counterexample to 'one place, one name' and found several: GNIS permits exactly one official name for Federal use while retaining variants, Getty TGN requires preferred plus vernacular and historical names, and INSPIRE permits multiple GeographicalNames each with multiple spellings. The model therefore treats names as a set of scoped assertions with a derived preferred label, not as a scalar field.", "Tested whether geometry can be treated as mandatory and found it cannot: LPF explicitly permits a null geometry and Getty TGN records places known only by hierarchy, so geometry is optional with a required absence reason and a fallback to indirect referencing through a containing place.", "Tested whether a date can serve as an identifier or as a version key and rejected it: decision date, effective date and ingestion timestamp routinely diverge, and several records can share a date, so identity is opaque and versions are sequenced independently of dates.", "Tested whether 'conformance' to ISO 19112, INSPIRE or GeoSPARQL could be claimed from element-level similarity and rejected it: no conformance test evidence was executed in this research, so every external standard is recorded as an alignment and the compatibility rules forbid promoting an alignment to a conformance claim without test evidence.", "Tested whether hard deletion could ever be correct for an erroneous record and rejected it as the default: external systems cite gazetteer identifiers, so retraction is modelled as supersession with a tombstone, with partial erasure reserved for lawful obligations and always leaving a redaction marker.", "Could an address, postal code or cadastral parcel be smuggled in as a gazetteer place? ISO 19112 sends addressing to ISO 19160-1; GNIS explicitly excludes ZIP Codes; those remain sibling models.", "Could a date, centroid or preferred-name string be used as identity? The identity priority forbids it; merges require former-id maps rather than renaming the key to a date.", "Could community GeoNames edits be treated as BGN or UNGEGN official names? Policy requires authority-sanctioned versus compiled flags.", "Could withheld cave coordinates leak through nearby, dump or reverse-geocode functions? Restrict-sensitive-location and access exceptions exist specifically to prevent that.", "Could ISO 19112:2019 conformance be claimed from OGC 11-122r1 or from INSPIRE GN alone? Conflicts and Best Practice status are recorded; conformance requires evidence against the 2019 gazetteer conformance class.", "Could fictional or legendary places enter via historical-lost handling? TGN excludes legendary places; location-certainty and historical warrant questions force that distinction.", "Could feature-type crosswalks silently equate mountain, peak and populated place across schemes? Type scheme is mandatory and crosswalk is an alignment with mapping notes." ] }, "researchAdjudication": { "providerMode": "dual-provider", "activeProviders": [ "claude", "grok" ], "waivedProviders": [], "providerPolicy": {}, "boundaryDecision": { "entry_kind": "entity", "status": "accepted", "rationale": "Both providers independently converge on entity, and the referent is a persistent, separately identifiable thing — an ISO 19112 location instance carrying a geographic identifier that survives renaming, reclassification and geometry revision — rather than an event, process or classifier. The boundary is complete on both sides: address semantics are delegated to ISO 19160-1 on ISO/TC 211's own reasoning, CRS and datum definition to ISO 19111/EPSG, legal boundary delimitation and cadastre to administrative-unit siblings, operational commerce attributes to a POI/venue sibling, and place-type vocabularies to a classifier model. No split is warranted: the toponym is a scoped assertion set on the place, not an independently governed entry, and the gazetteer register itself is admitted only as membership context, not as a co-equal node." }, "decisions": [ { "concept": "Base provider selection", "disposition": "Claude adopted as base", "rationale": "Not chosen for size. Claude's boundary is the more complete on both sides: an explicit out-of-scope enumeration, six boundary notes each carrying source refs, and the ISO/TC 211 reasoning for delegating addressing to ISO 19160-1. It also closes governance surfaces grok leaves open — retention and tombstoning, validation and conformance-versus-alignment, and CRS declaration and encoding constraints — and keeps real-world time, name validity time and record time on separate clocks." }, { "concept": "Entry kind", "disposition": "Entity, accepted without reclassification", "rationale": "Providers agree, and the referent satisfies the entity test: an opaque persistent identifier survives renaming, reclassification and re-delimitation, and both providers independently reject a date, a coordinate pair or a preferred-name string as identity." }, { "concept": "Address and postal delivery semantics", "disposition": "Rejected, referenced sibling", "rationale": "ISO 19112 assigns addressing to ISO 19160-1 and ISO/TC 211 concluded addressing requirements differ sufficiently from ISO 19112's scope. Both providers reached this independently and GNIS explicitly excludes ZIP Codes; admitting address components would collapse two distinct spatial-reference systems." }, { "concept": "Coordinate reference system and datum definition", "disposition": "Rejected, referenced sibling", "rationale": "The place record declares which CRS its coordinates are expressed in and how they are encoded; ISO 19111 and the EPSG register own the definition, datum and transformation content. Retained in base as a declaration and provenance obligation only." }, { "concept": "Operational and commercial venue attributes", "disposition": "Rejected", "rationale": "schema.org Place mixes stable physical extension with opening hours, capacity and booking. The base adversarial check correctly refuses them: they describe a venue's operation rather than a named place's identity, and admitting them dissolves the boundary with a POI model." }, { "concept": "Gazetteer as ISO 19135-1 register with item status", "disposition": "Accepted from grok", "rationale": "Materially missing from base, which governs dataset version lifespan but not register item status, territory of use, or membership of one place in several gazetteers. Evidenced by the retrievable ISO/TC 211 requirement identifier rather than by paywalled text alone." }, { "concept": "Administrative versus physical facet and gazetteer class scope", "disposition": "Accepted from grok", "rationale": "Orthogonal to the base type/local-type/multiplicity finding, and carries the boundary-crossing parent placement rule plus the in-scope-or-sibling decision that GNIS's 2021 cultural-class removal makes unavoidable." }, { "concept": "Deprecated, derogatory and community-restricted name forms", "disposition": "Accepted from grok", "rationale": "Partially fills a gap the base itself declares. TGN's retain-but-flag treatment of pejorative and avoid-use names, and the community or authority warrant for indigenous and minority names, operate on the name form and are not covered by base status/nativeness qualifiers or by coordinate generalization." }, { "concept": "Preferred name, variants, homographs and per-name term identifiers", "disposition": "Rejected as duplicative; two elements deferred", "rationale": "The finding's centre of gravity — preferred name and variant set — is already carried by two base findings. Homograph disambiguation via parent string or qualifier, and a persistent term identifier per name form distinct from the place identifier, are genuine base omissions but belong folded into existing base findings rather than added as a third overlapping naming node." }, { "concept": "Complementary coordinates, point convention and elevation", "disposition": "Rejected as duplicative", "rationale": "Base representative-position and CRS-declaration findings already cover geometry role, default geometry selection, null geometry with reason, certainty and encoding. Elevation and the centroid-versus-mouth-versus-source convention are increments inside an already-covered finding, not a missing one." }, { "concept": "Parent-child polyhierarchy finding", "disposition": "Rejected as duplicative; operation accepted instead", "rationale": "Base partitive-and-administrative-hierarchy already models multiple concurrent hierarchies, preferred parents and sentinel unknown/contested parentage. What was actually missing was the traversal operation, which is accepted as a function." }, { "concept": "Source warrant, contributor and quality finding", "disposition": "Rejected as duplicative", "rationale": "Base source-attestation finding is the stronger statement of the same content: it enforces assertion-level rather than record-level citation and additionally distinguishes machine-generated from human-verified assertions." }, { "concept": "Restricted disclosure, licence and retention finding", "disposition": "Rejected as duplicative; statutory suppression deferred", "rationale": "Base splits this content across sensitivity/generalization, custodianship/licence and retention/tombstoning findings, each more developed. The specific mode of withholding a feature's very existence under the Federal Cave Resources Protection Act and 43 CFR Part 37 is a distinct disclosure mode and is deferred rather than dropped." }, { "concept": "OGC WFS-G (11-122r1) as service contract", "disposition": "Rejected as normative; retained as historical alignment", "rationale": "Grok itself records that 11-122r1 is an OGC Best Practice and not a Standard, and that OGC API - Features is the successor family. Base already specifies the OGC API - Features contract with collections/items paths, bbox, datetime, limit and link relations, so the base contract governs." }, { "concept": "Legendary and fictional places excluded; lost and planned-but-unbuilt places included", "disposition": "Deferred to a scope-text amendment", "rationale": "Grok's TGN-evidenced edge is a real refinement of the base scope statement, which is silent on it, but it changes scope prose rather than adding a node. Recorded so the synthesizer does not silently adopt it and so it can be confirmed against primary text before publication." }, { "concept": "ISO 19112 terminology drift between providers", "disposition": "Base terminology retained; discrepancy escalated to publication hold", "rationale": "Claude uses location type and location instance; grok reports 2019 class names Location, LocationClass, Gazetteer and GeographicIdentifier. Neither provider reached the normative text, so this is unverified vocabulary rather than a substantive contradiction and must not be resolved by adjudication." } ], "publicationHolds": [ "ISO 19112:2019 normative text was reached by neither provider (ISO catalogue returned HTTP 403 for one, paywalled for the other). Class names, attribute names, cardinalities and the 2003-to-2019 rename set are unverified, and the two providers report different vocabularies for the same construct. Verify against the purchased standard or the ISO/TC 211 register before publishing any wording that a reader could mistake for a conformance statement.", "Live-URL and version-pin verification for every accepted source. Specifically: the US BGN Principles, Policies and Procedures edition date was not machine-extractable; the INSPIRE Geographical Names Technical Guidelines are cited by the two providers as a versioned PDF (v3.1.0, 2024-07-31) and as a knowledge-base landing page and must be reconciled to one pinned artifact; and the three grok-sourced additions carry only tier-2 or accessed-page evidence.", "Multi-profile domain validation is incomplete. The model is exercised only against US BGN/GNIS, INSPIRE/EU regulatory practice and compiled gazetteers (GeoNames, Getty TGN, Who's On First, Linked Places Format). Run it against at least one non-US, non-EU national names authority and one historical or linked-pasts gazetteer profile before publication, and re-test the ISO 19112 descriptive-position case against INSPIRE's mandatory NamedPlace geometry to confirm the optional-geometry-with-absence-reason resolution holds in both profiles.", "Indigenous and culturally restricted place-name governance is a gap the base declares and the accepted grok finding only partially fills. No Indigenous data-sovereignty instrument (CARE Principles, UNDRIP as applied to toponyms) was examined by either provider. Do not present the sensitivity and access layer as canonical, and mark the community-warrant question as provisional.", "Temporal-uncertainty syntax is ungrounded: the intended EDTF (ISO 8601-2) grounding failed with HTTP 403, leaving approximate, uncertain and unspecified-digit dates supported only by the Linked Places 'when' object. Publish no specific uncertainty syntax.", "Sensitivity categories and their thresholds derive from a biodiversity-occurrence context expressed in decimal degrees, and no national security-classification regime was consulted, so the mapping from sensitivity category to government classification level is undefined and the thresholds are unvalidated at high latitudes and for cultural restriction." ], "deferredResearch": [ "NGA GNS field dictionary (UFI/UNI, name type, designation code) — neither provider retrieved it, and it is the usual governing register for non-US official names, so the officiality and identifier findings currently rest on US and EU practice alone.", "IHO SCUFN undersea feature names and IAU WGPSN planetary nomenclature: both providers exclude marine, undersea and extraterrestrial naming regimes, which may require additional authority and classification structure.", "Homograph disambiguation (parent string, qualifier, noted-homograph flag) and a persistent term identifier per name form distinct from the place identifier — to be folded into the base toponymy findings rather than added as a duplicate node.", "INSPIRE relatedSpatialObject-style cross-theme linking: how a place record points at the same real-world entity held in a declared sibling model (administrative unit, built work, transport network) without collapsing the two, which the base boundary notes presuppose but no base finding governs.", "Statutory suppression of a feature's very existence, as distinct from coordinate generalization — evidenced for caves by the Federal Cave Resources Protection Act and 43 CFR Part 37 — including how it must be enforced across nearby, reverse-geocode and bulk-dump paths.", "ISO 19155 Place Identifier architecture, unmodelled by both providers, and its relationship to the identifier priority and concordance findings.", "ADL Gazetteer Content Standard and Feature Type Thesaurus, and the UNGEGN Resolution 4 minimum digital-exchange set (name, feature type, location) as a candidate normative publishability floor.", "Boundary edge confirmation for legendary and fictional places excluded versus lost, planned-but-unbuilt and archaeologically attested places included, plus multilingual collation authority and crowd-sourced contribution moderation, vandalism detection and trust scoring, all of which both providers list as untreated." ] }, "statistics": { "sources": 25, "bundles": 6, "layers": 16, "findings": 27, "questions": 111, "artifacts": 19, "functions": 17 } }