# Vercy AI instruction - YAML 1.2 (JSON-compatible) { "vercy": "1.0-draft", "publication": { "status": "published", "adjudicationStatus": "reviewable-draft", "publishableCanonical": false, "generatedAt": "2026-09-04T01:26:49Z", "synthesisSha256": "275d941a652f8dc53b84dde1edd95f8203c2317ed3b487a80060345d63a28523", "providerMode": "single-provider-waiver", "providers": [ "Claude" ], "waivedProviders": [ "Grok" ] }, "metaModel": { "id": "WM-XCT-033", "registryId": "vr.wm-xct-033", "name": "Geometry / Coordinate Reference", "version": "0.3.0-research.1", "previousVersions": [], "entryKind": "mixin", "family": "World Models", "category": "Cross-cutting context", "industry": [ "Cross-industry" ], "domain": [ "XCT.GEO" ], "tags": [ "geometry", "coordinate", "reference", "xct.geo" ], "status": "published" }, "canonicalUrl": "https://ver.cy/models/wm-xct-033-geometry-coordinate-reference/", "sourceUrl": "https://github.com/ver-cy/world-models/tree/feat/mega-model-registry/research/runs/wm-xct-033", "model": { "registry_id": "vr.wm-xct-033", "model_id": "WM-XCT-033", "name": "Geometry / Coordinate Reference", "entry_kind": "mixin", "purpose": "Supply a reusable, encoding-neutral geometry and coordinate-reference mixin that lets any host thing carry a well-defined spatial shape: its type, coordinate structure, dimensionality, extent, state, declared quality and the coordinate reference system under which its numbers mean anything.", "scope_statement": "WM-XCT-033 defines the semantics of a geometry value bound to a host thing, together with the coordinate-reference context needed to interpret that value and the declared provenance and quality of any transformation that produced it. Geometry here is mathematical and structural, not a file: WKT, WKB, GeoJSON, GML, database geometry columns and vendor APIs are projections of the value, never its canonical form. The mixin governs how geometry is typed, structured, bounded, asserted valid and disclosed within an adopting Dimension; it does not own the host, the CRS register, the computation engine or any operational evaluation, transformation execution or audit record held by a referenced system.", "in_scope": [ "Geometry value semantics independent of any storage format or access interface", "Primitive typing (point, curve, surface) and aggregate/multipart/collection membership", "Coordinate sequences, ordinate ordering, minimum vertex counts, precision and declared spatial resolution", "Topological dimension, coordinate dimension and spatial dimension, including Z and M ordinate handling", "Ring structure: closure, orientation conventions, exterior rings and interior rings (holes)", "Empty, absent, unknown and deliberately suppressed geometry states", "Declared envelopes, extents and derived summary points such as centroids, with their provenance", "Validity, simplicity and repair assertions recorded against a named validity profile", "Declared spatial relations recorded as assertions with their evaluation context", "Binding of the geometry value to a host thing, including role, cardinality and default-geometry designation", "Binding of the geometry value to a referenced CRS, including axis order, longitude-range convention and coordinate-epoch reference for dynamic CRS", "Declared quality, accuracy statement and provenance of coordinates produced by an externally executed coordinate transformation", "Governance of geometry values inside an adopting Dimension: ownership, canonical form, access, disclosure control and retention" ], "out_of_scope": [ "Identity, classification and lifecycle of the host feature, place, asset or object that carries the geometry", "The coordinate reference system register itself: CRS and datum definitions, ellipsoid and prime-meridian parameters, deprecation and supersession of CRS codes", "Execution of coordinate operations and derivation of transformation parameters; this model carries only the reference to the operation used and the resulting quality statement", "Geometry computation engines: overlay, buffering, simplification, triangulation, predicate evaluation and topology construction", "Address, gazetteer, postal and place-name semantics", "Cartographic styling, symbolization, generalization for display and map portrayal", "Raster, coverage, point-cloud and gridded data models", "Observation, survey campaign and sensor-measurement semantics that produced the coordinates", "Route, network, linear-referencing and turn-restriction topology semantics", "Selection of a canonical storage format, database schema or API surface", "Audit-trail, enforcement and access-decision records owned by referenced runtime services" ], "boundary_notes": [ { "neighbor": "Host feature, place or object model", "distinction": "A Spatial Thing is disjoint from its geometry: the lighthouse is not the polygon. The host owns real-world identity, classification and lifecycle; this mixin owns only the shape value and its binding role, and never asserts that a geometry identifies a thing.", "source_refs": [ "SRC-006", "SRC-004" ] }, { "neighbor": "Coordinate reference system register / authority model", "distinction": "Coordinates are only interpretable against a CRS, but the register that defines CRSs, datums and their versions is a separate authority. This model carries a CRS reference by URI plus axis order and coordinate epoch; it does not define, version or deprecate CRSs.", "source_refs": [ "SRC-003", "SRC-011" ] }, { "neighbor": "Coordinate operation / transformation service", "distinction": "The referenced service executes transformations and derives parameters. This model records only which operation was referenced, the resulting storage CRS and the declared positional-quality statement carried with the transformed value.", "source_refs": [ "SRC-011", "SRC-003" ] }, { "neighbor": "Geometry computation and spatial predicate engine", "distinction": "Relation families (Simple Features, Egenhofer, RCC8, DE-9IM) and validity checks are evaluated by an external engine. This model records the asserted verdict, its profile and evaluation context as reference data, and never owns evaluation, enforcement or the evaluator's audit trail.", "source_refs": [ "SRC-002", "SRC-008" ] }, { "neighbor": "Encoding and serialization profile model", "distinction": "WKT, WKB, GeoJSON geometry objects, GML geometry elements, JSON-FG place members and database geometry columns are projections. The encoding profile model owns encoding rules and conformance classes; this model owns which semantics must survive a projection and which are lossy.", "source_refs": [ "SRC-001", "SRC-005", "SRC-007" ] }, { "neighbor": "Raster, coverage and gridded data model", "distinction": "This mixin covers vector geometry only. Grid geometry, cell alignment and coverage domain semantics belong to the coverage model, even though both reference the same CRS context.", "source_refs": [ "SRC-009", "SRC-007" ] }, { "neighbor": "Route, network and linear-referencing model", "distinction": "A LineString here is a shape, not a traversable edge. Connectivity, direction of travel, turn restrictions and measure-based linear referencing along a network belong to the network model; only the M ordinate as a stored value is in scope.", "source_refs": [ "SRC-007", "SRC-008" ] }, { "neighbor": "Vertical reference / height system model", "distinction": "The Z ordinate is in scope as a stored spatial ordinate; the vertical datum, geoid model and height-system definition against which Z is meaningful is referenced, not defined here.", "source_refs": [ "SRC-003", "SRC-005" ] } ] }, "sources": [ { "id": "SRC-001", "title": "RFC 7946: The GeoJSON Format", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc7946.html", "version_or_date": "RFC 7946, August 2016", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Normative source for the seven geometry types, position/coordinate ordering, the two-or-more-element position with optional third altitude element, linear-ring closure and right-hand-rule winding, antimeridian cutting (Sec. 3.1.9), bounding boxes including antimeridian-crossing and pole-containing boxes (Sec. 5), the fixed non-extensible type set (Sec. 7.1), the statement that a line between two positions is a straight Cartesian line, and the WGS 84 default CRS (Sec. 4)." }, { "id": "SRC-002", "title": "OGC GeoSPARQL - 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": "ontology", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Normative separation of geo:Feature from geo:Geometry, and the distinct properties geo:dimension (topological dimension), geo:coordinateDimension and geo:spatialDimension, plus geo:isEmpty, geo:isSimple, geo:hasSerialization, geo:hasSpatialResolution, geo:hasBoundingBox and geo:hasCentroid; also the three declared relation families (Simple Features, Egenhofer, RCC8) and CRS/SRID binding through the geometry literal." }, { "id": "SRC-003", "title": "OGC Abstract Specification Topic 2: Referencing by coordinates Corrigendum (18-005r5)", "organization": "Open Geospatial Consortium / ISO TC 211 (consistent with ISO 19111:2019)", "url": "https://docs.ogc.org/as/18-005r5/18-005r5.html", "version_or_date": "Version 5.0.1, 2021-07-02", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Definitions of coordinate reference system, coordinate system, coordinate set and coordinate tuple; the rule that the order of values in a coordinate tuple is identical to the order of the coordinate system axes; and coordinate epoch and dynamic CRS, establishing that coordinates without a CRS (and, for dynamic CRS, without an epoch) are not interpretable." }, { "id": "SRC-004", "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-09-04T00:00:00Z", "relevance": "Treats geometry as an optional property of a feature rather than a thing in itself; defines the four- or six-value bbox axis ordering (Requirement 23), the default CRS http://www.opengis.net/def/crs/OGC/1.3/CRS84 with longitude/latitude axis order (Requirement 10), and the convention that a bounding box spanning the antimeridian has a west value larger than its east value." }, { "id": "SRC-005", "title": "OGC Features and Geometries JSON (JSON-FG) - Part 1: Core (21-045r1)", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/is/21-045r1/21-045r1.html", "version_or_date": "Version 1.0.0, 2026-04-30", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Primary evidence that the GeoJSON geometry profile is insufficient for general geometry: adds the coordRefSys member for non-WGS 84 CRSs, the place member for geometries outside the GeoJSON type set, solid types (Polyhedron, MultiPolyhedron, Prism, MultiPrism) and curved types (CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface), an optional Measures conformance class for M coordinates, a fallback geometry pattern for limited consumers, and axis order per the OGC Axis Order Policy." }, { "id": "SRC-006", "title": "Spatial Data on the Web Best Practices", "organization": "World Wide Web Consortium (W3C) / Open Geospatial Consortium", "url": "https://www.w3.org/TR/sdw-bp/", "version_or_date": "W3C Group Draft Note, 19 September 2023 (retrieved edition)", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "States that a Spatial Thing is disjoint from the geometry object and that geometry is a property that may change through resurvey while the Spatial Thing persists; Best Practice 1 (persistent HTTP URIs for Spatial Things), 5 (provide geometries in a usable way), 6 (right level of accuracy, precision and size), 7 (choose CRSs to suit applications), 8 (state how coordinate values are encoded) and 9 (describe relative positioning)." }, { "id": "SRC-007", "title": "OGC GeoPackage Encoding Standard (12-128r19)", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/is/12-128r19/12-128r19.html", "version_or_date": "Version 1.4.0, 2024-02-06", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Concrete evidence that Z and M presence are explicit declared flags (0 absent, 1 present, 2 determined by the SRS), that an empty geometry is a typed value carrying no coordinate data, that an envelope is an optional declared structure with an indicator code and min/max values per ordinate, that each geometry binds to an srs_id, and that CircularString, CompoundCurve, CurvePolygon, PolyhedralSurface, TIN and Triangle are extension types beyond the linear core." }, { "id": "SRC-008", "title": "OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 1: Common architecture (06-103r4)", "organization": "Open Geospatial Consortium (adopted as ISO 19125-1)", "url": "https://docs.ogc.org/is/06-103r4/06-103r4.pdf", "version_or_date": "Version 1.2.1, 2011-05-28", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "The base geometry class hierarchy (Geometry with Point, Curve, Surface and GeometryCollection subclasses), each geometric object associated with a spatial reference system, two-dimensional simple features with linear interpolation between vertices, and the simplicity/validity assertions and DE-9IM-derived predicates that GeoSPARQL and GeoPackage normatively reference. Retrieval limitation: only the PDF is published and its text layer was not machine-extractable in this pass, so its content is used here only where corroborated by SRC-002 and SRC-007." }, { "id": "SRC-009", "title": "ISO 19107:2019 Geographic information - Spatial schema", "organization": "International Organization for Standardization (ISO/TC 211)", "url": "https://www.iso.org/standard/66175.html", "version_or_date": "Second edition, published 2019 (cancels and replaces ISO 19107:2003)", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "The conceptual schema for spatial characteristics of geographic entities covering vector geometry and topology and the associated spatial operations; the abstract layer above simple features from which primitive, aggregate, curve-interpolation and solid concepts derive. Retrieval limitation: the normative text is paywalled and only the catalogue scope statement was retrievable, so no clause-level claim is made from it." }, { "id": "SRC-010", "title": "OGC Geography Markup Language (GML) Encoding Standard", "organization": "Open Geospatial Consortium", "url": "https://www.ogc.org/standards/gml/", "version_or_date": "3.2.2 (OGC 07-036r1) with extended schemas 3.3 (OGC 10-129r1)", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Establishes that a mainstream OGC geometry encoding supports curve interpolation beyond straight segments, surface patches and volumetric solids, and binds geometry to a CRS with srsName and dimensionality with srsDimension - the counterexample to treating linear planar simple features as the whole of geometry. Retrieval limitation: only the standards landing page was machine-readable; clause-level detail was not extracted." }, { "id": "SRC-011", "title": "OGC API - Features - Part 2: Coordinate Reference Systems by Reference corrigendum (18-058r1)", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/is/18-058r1/18-058r1.html", "version_or_date": "Version 1.0.1, 2022-05-11", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "CRS identification by resolvable URI of the form http://www.opengis.net/def/crs/{authority}/{version}/{code}; the explicit distinction between the storage CRS in which geometries are held and the output CRS requested by a consumer; and the requirement that the CRS actually used for coordinates in a payload be asserted rather than assumed." }, { "id": "SRC-012", "title": "Geographic information - Well-known text representation of coordinate reference systems", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/is/18-010r7/18-010r7.html", "version_or_date": "OGC 18-010r7, version 2.0.6, 2019-08-13", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:14:00Z", "relevance": "CRS type keywords (GEOGCRS, GEODCRS, PROJCRS, VERTCRS, ENGCRS, COMPOUNDCRS, BOUNDCRS); ID element with authority name, code, version, citation and URI; CS element with type and dimension; axis name, abbreviation, direction, explicit order and unit keywords; ELLIPSOID, PRIMEM, DATUM, VDATUM, EDATUM, ENSEMBLE; USAGE, SCOPE, AREA, BBOX and extent elements; and the explicit statement that WKT is not suitable for storing CRS definitions because it omits source and applicability metadata." }, { "id": "SRC-013", "title": "WKT Coordinate Reference Systems - OGC Standard Representation", "organization": "Open Geospatial Consortium", "url": "https://www.ogc.org/standards/wkt-crs/", "version_or_date": "Standards listing page, current version 2.1.11 (OGC 18-010r11); version 1.0 (OGC 12-063r5) marked deprecated; accessed 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T09:16:00Z", "relevance": "Establishes which WKT-CRS version is currently in force and that version 1.0 is a deprecated International Standard, which fixes the exchange form a carried definition should declare and bounds the currency of clause-level citations." }, { "id": "SRC-014", "title": "OGC Name Type Specification - definitions - part 1 - basic name", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/pol/09-048r7.html", "version_or_date": "OGC 09-048r7, version 1.4, 2024-07-24", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Normative http URI template for OGC definitions, the controlled registers for definition-type and authority tokens, the rule that unversioned definitions use version 0, and the persistence expectation plus the illustration that an incorrect record is deprecated and replaced rather than removed." }, { "id": "SRC-015", "title": "EPSG and OGC URIs", "organization": "International Association of Oil and Gas Producers (IOGP) - EPSG Geodetic Parameter Dataset registry", "url": "https://iogp.georepository.com/ogc_uri.html", "version_or_date": "EPSG registry guidance page, accessed 2026-09-04", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:22:00Z", "relevance": "States that EPSG codes are stable, unique and permanent, that codes are never removed from the dataset, that version 0 in an EPSG URI means the latest dataset version, that codes are unique only within a table (with CRS and coordinate operations sharing one range), and that deprecated items remain in the dataset." }, { "id": "SRC-016", "title": "New Datums - Modernized National Spatial Reference System", "organization": "NOAA National Geodetic Survey", "url": "https://geodesy.noaa.gov/datums/newdatums/index.shtml", "version_or_date": "NGS modernized NSRS programme pages, accessed 2026-09-04", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:26:00Z", "relevance": "Authoritative statement that NAD 83 is misaligned from the geocentre by about 2.2 m and NAVD 88 is biased and tilted, that NATRF2022, PATRF2022, CATRF2022 and MATRF2022 plus a geopotential datum will replace them, and that every existing latitude, longitude, ellipsoid height and orthometric height in the United States will change by as much as four metres - concrete evidence for supersession and non-interchangeability." }, { "id": "SRC-017", "title": "Geocentric Datum of Australia 2020 (GDA2020)", "organization": "Geoscience Australia", "url": "https://www.ga.gov.au/scientific-topics/positioning-navigation/geodesy/datums-projections/gda2020", "version_or_date": "Geoscience Australia geodesy pages, accessed 2026-09-04", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:28:00Z", "relevance": "GDA2020 is a realisation of ITRF2014 at epoch 2020.0; plate motion of about 7 cm per year produced roughly 1.8 m of divergence from GDA94, and GDA2020 ellipsoidal heights differ from GDA94 by about 9 cm - evidence that a datum name plus a reference epoch is required, not optional." }, { "id": "SRC-018", "title": "PROJ Frequently Asked Questions", "organization": "PROJ / OSGeo", "url": "https://proj.org/en/stable/faq.html", "version_or_date": "PROJ 9.8.1 stable documentation, accessed 2026-09-04", "source_type": "first-party-doc", "primary_source": false, "authority_tier": 3, "accessed_at": "2026-09-04T09:30:00Z", "relevance": "First-party evidence of the implementation reality: EPSG geodetic CRS are defined latitude-first, PROJ respects the authority axis order only from version 6 onward, PROJ internally expects longitude/latitude for all projections, and most GIS software does not follow the standard - the counterexample that makes axis-order inference indefensible." }, { "id": "SRC-019", "title": "ISO 19111:2019 Geographic information — Referencing by coordinates", "organization": "International Organization for Standardization", "url": "https://www.iso.org/standard/74039.html", "version_or_date": "Third edition 2019-01, with Amendment 1:2021 and Amendment 2:2023; revision under ISO/AWI 19111", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "The conceptual schema and minimum data required to describe coordinate reference systems and coordinate operations; states that a CRS definition does not change with time although defining parameters may include rates of change, and that metadata for a dataset referenced to a dynamic CRS should include coordinate epoch information." }, { "id": "SRC-020", "title": "OGC Abstract Specification Topic 24: Functional Model for Crustal Deformation", "organization": "Open Geospatial Consortium (with IAG Commission 1 Working Group 1.3.1)", "url": "https://docs.ogc.org/as/22-010r4/22-010r4.html", "version_or_date": "OGC 22-010r4, version 1.0, published 2024-04-29", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Defines a deformation model as displacement of the Earth's surface within a defined spatial and temporal extent (clause 1), decomposed into elements each having a spatial function and a time function (clauses 5.2-5.4), with model extents beyond which the model is undefined (5.1), model and element attributes including uncertainty (5.5-5.6), and application to coordinate operations including epoch-to-epoch deformation (clause 6). Establishes that deformation evaluation is an operation, distinct from recording a reference." }, { "id": "SRC-021", "title": "ITRF2020 — International Terrestrial Reference Frame", "organization": "IERS ITRS Centre, Institut national de l'information géographique et forestière (IGN)", "url": "https://itrf.ign.fr/en/solutions/itrf2020", "version_or_date": "ITRF2020, released 2023, reference epoch 2015.0 (Altamimi et al., Journal of Geodesy, 2023)", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Authoritative example of a dynamic reference frame realization: station positions and velocities defined at a stated reference epoch, post-seismic deformation models applied for stations affected by major earthquakes, and published transformation parameters between successive realizations. Grounds the distinction between a realization, its frame reference epoch and a user's coordinate epoch." }, { "id": "SRC-022", "title": "New Zealand Geodetic Datum 2000 deformation model", "organization": "Land Information New Zealand (LINZ)", "url": "https://www.linz.govt.nz/guidance/geodetic-system/coordinate-systems-used-new-zealand/geodetic-datums/new-zealand-geodetic-datum-2000-nzgd2000/new-zealand-geodetic-datum-2000-deformation-model", "version_or_date": "Deformation model version 20180701; page last updated 2020-01-13; seven released versions since 20130801", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Semi-dynamic datum practice: NZGD2000 aligned to ITRF96 at epoch 2000.0, with a versioned deformation model comprising a secular velocity component and earthquake patches. States that model versions are named by approximate publication date, a naming convention that must not be confused with an identifier or a coordinate epoch." }, { "id": "SRC-023", "title": "Geomatics Guidance Note 25 — Dynamic versus static CRSs and use of the ITRF (IOGP Report 373-25)", "organization": "International Association of Oil & Gas Producers (IOGP) Geomatics Committee", "url": "https://www.iogp.org/bookstore/product/geomatics-guidance-note-25-dynamic-versus-static-crss-and-use-of-the-itrf/", "version_or_date": "Version 1.1, updated July 2019", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Recommended practice for the use of dynamic CRSs and their relationship to static CRSs, treating ITRF and WGS 84 as dynamic references and addressing coordinate epoch recording. Explicitly scoped as practical guidance rather than a comprehensive normative treatment, which is why it is used to corroborate rather than to found structure." }, { "id": "SRC-024", "title": "EPSG Geodetic Parameter Dataset — Guidance Notes and Registry", "organization": "IOGP Geomatics Committee (EPSG registry, GeoRepository)", "url": "https://iogp.georepository.com/guidance-notes.html", "version_or_date": "EPSG Dataset v13.001 / GeoRepository v2.44.2; GN 7-1 v9 (Mar 2025), GN 7-2 v74 (Jul 2026), GN 7-3 v1.0 (Jul 2022), GN 7-6 Policies and procedures for data management v1.1 (Jun 2025), GN 7-7 ETRS89 in the EPSG Dataset v1 (Apr 2026); accessed 2026-09-04", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "The authoritative register for CRS, datum and coordinate operation definitions, with explicit dataset versioning, documented data-management policies and a deprecation mechanism for invalid items. Grounds the requirement to pin register authority, code and register version rather than to cite a bare code." }, { "id": "SRC-025", "title": "OGC GeoPackage Encoding Standard 1.4.0", "organization": "Open Geospatial Consortium", "url": "https://www.geopackage.org/spec140/", "version_or_date": "Version 1.4.0, published 2024-02-06", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Concrete evidence of non-register and dynamic CRS handling in a carrier: gpkg_spatial_ref_sys requires rows with srs_id -1 (undefined cartesian) and 0 (undefined geographic) alongside a WKT definition column (Requirement 10), with a definition_12_063 extension column for ISO 19162:2019 WKT and an epoch extension column for dynamic CRSs." }, { "id": "SRC-026", "title": "PROJJSON specification", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/specifications/projjson.html", "version_or_date": "PROJJSON schema v0.7 (https://proj.org/schemas/v0.7/projjson.schema.json), introduced in PROJ 9.2.1; documentation for PROJ 9.8.x", "source_type": "schema", "primary_source": true, "authority_tier": 3, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "A JSON encoding of WKT2:2019 / ISO 19162:2019 with declared support for CoordinateMetadata (v0.6+), coordinate epoch, datum ensemble, deformation_models (v0.5+), compound CRS, temporal CRS and datum, engineering CRS, and id/ids members. Demonstrates a format-neutral canonical form for pinned definition snapshots." }, { "id": "SRC-027", "title": "Coordinate epoch support", "organization": "GDAL project (OSGeo)", "url": "https://gdal.org/en/stable/user/coordinate_epoch.html", "version_or_date": "GDAL 3.4 and later; stable documentation accessed 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 3, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Implementation evidence on epoch binding scope: epoch is stored as a property of the CRS at dataset or layer level because almost no format allows per-observation epoch storage; carriers include the WKT:2019 EPOCH subnode in FlatGeobuf, the epoch column in gpkg_spatial_ref_sys, CoordinateEpochGeoKey 5120 in GeoTIFF, and coordinateEpoch attributes in .aux.xml and VRT. Epoch is expressed as a decimal year." }, { "id": "SRC-028", "title": "Resolution 4 of the 27th CGPM (2022) — On the use and future development of UTC", "organization": "Bureau International des Poids et Mesures (BIPM) / Conférence Générale des Poids et Mesures", "url": "https://www.bipm.org/en/cgpm-2022/resolution-4", "version_or_date": "27th CGPM, November 2022; implementation plan due for the 28th CGPM (2026)", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:20:00Z", "relevance": "Authoritative statement that UTC is produced by BIPM at the same rate as TAI differing by an integral number of seconds, that leap seconds are applied when IERS predicts UT1-UTC approaching 0.9 s, and that the maximum UT1-UTC difference will be increased in or before 2035. Grounds the requirement to record which time scale a temporal axis realizes and to treat leap-second behaviour as a declared constraint." }, { "id": "SRC-029", "title": "PROJ documentation — Coordinate operations", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/operations/index.html", "version_or_date": "PROJ stable documentation branch, retrieved 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Working classification of operations into projections, conversions and transformations, and the note that projections are conversions under the standards but are treated separately in practice." }, { "id": "SRC-030", "title": "PROJ documentation — Transformation pipelines (+proj=pipeline)", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/operations/pipeline.html", "version_or_date": "PROJ stable documentation branch, retrieved 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Ordered step declaration, global versus per-step parameters, the +inv step modifier, omit_fwd/omit_inv, and the constraint that a pipeline without a forward path cannot be constructed." }, { "id": "SRC-031", "title": "PROJ documentation — projinfo", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/apps/projinfo.html", "version_or_date": "PROJ stable documentation branch, retrieved 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Area-of-interest spatial tests (contains/intersects), crs-extent-use strategies, grid-check strategies for missing grids, minimum-accuracy filtering, pivot CRS policy, superseded operations and ballpark suppression." }, { "id": "SRC-032", "title": "PROJ documentation — Glossary", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/glossary.html", "version_or_date": "PROJ stable documentation branch, retrieved 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Definition of a ballpark transformation as an operation that accounts only for axis order, unit and prime meridian differences, attempts no datum shift, and has unknown accuracy that can reach hundreds of metres." }, { "id": "SRC-033", "title": "PROJ documentation — Resource files", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/resource_files.html", "version_or_date": "PROJ stable documentation branch, retrieved 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Grid resource formats for horizontal and vertical correction, the versioned PROJ-data resource package, network retrieval from a content delivery network, and resource search-path resolution." }, { "id": "SRC-034", "title": "PROJ documentation — Transformations (usage)", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/usage/transformation.html", "version_or_date": "PROJ stable documentation branch, retrieved 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Chaining elementary operations so that the output of one is the input of the next, four-dimensional spatiotemporal coordinates with a time ordinate, and explicit handling of optional or missing grids including a null zero-shift grid." }, { "id": "SRC-035", "title": "PROJ documentation — Transformation operations catalogue", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/operations/transformations/index.html", "version_or_date": "PROJ stable documentation branch, retrieved 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Enumeration of transformation methods showing which are grid-based (horizontal, vertical, geocentric and triangulated-network shifts) and which are time-dependent (deformation model, kinematic datum shift)." }, { "id": "SRC-036", "title": "NGS Coordinate Conversion and Transformation Tool (NCAT)", "organization": "NOAA National Geodetic Survey", "url": "https://geodesy.noaa.gov/NCAT/", "version_or_date": "Retrieved 2026-09-04", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Authoritative statement that grid-based transformations provide local error estimates per transformation, that transformations are not supported outside the boundaries of the supported regions, and that orthometric and ellipsoidal height types are not interconverted by the transformation tool." }, { "id": "SRC-037", "title": "New Datums — modernization of the National Spatial Reference System", "organization": "NOAA National Geodetic Survey", "url": "https://www.ngs.noaa.gov/datums/newdatums/index.shtml", "version_or_date": "Retrieved 2026-09-04", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Plate-fixed terrestrial reference frames defined mathematically relative to a global frame, replacement of a levelling-based vertical datum by a geopotential datum realized with a geoid model, and the resulting need to qualify coordinates by frame and time." }, { "id": "SRC-038", "title": "NADCON 5.0: Geometric Transformation Tool for points in the National Spatial Reference System (NOAA Technical Report NOS NGS 63)", "organization": "NOAA National Geodetic Survey", "url": "https://repository.library.noaa.gov/view/noaa/55451", "version_or_date": "2020", "source_type": "scientific", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T10:15:00Z", "relevance": "Documents a rebuilt grid-based transformation set of 44 separate transformations across nine regions, establishing that transformations are region-scoped, versioned resources rather than a single global function." }, { "id": "SRC-039", "title": "EPSG Geodetic Parameter Dataset Terms of Use", "organization": "International Association of Oil & Gas Producers (IOGP) Geomatics Committee", "url": "https://iogp.georepository.com/terms-of-use.html", "version_or_date": "Revised 8 April 2016", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:14:00Z", "relevance": "Primary evidence that free access to a CRS definition is not the same as unrestricted redistribution: ownership acknowledgement is mandatory, distribution for profit is prohibited, modifications are limited to numeric equivalence and modified values may not be attributed to the dataset." }, { "id": "SRC-040", "title": "OGC Naming Authority - Procedures", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/pol/09-046r6.html", "version_or_date": "OGC 09-046r6, version 1.3, 2021-09-27", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:16:00Z", "relevance": "Governs persistent http://www.opengis.net/def/ identifiers for definitions: registration authority, immutability of assigned identifiers, version in the identifier path, and valid / superseded / retired status with successor pointers instead of deletion." }, { "id": "SRC-041", "title": "PROV-O: The PROV Ontology", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/prov-o/", "version_or_date": "W3C Recommendation, 30 April 2013", "source_type": "ontology", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:18:00Z", "relevance": "Defines Entity, Activity and Agent and the wasDerivedFrom, used, wasGeneratedBy, wasAttributedTo, wasRevisionOf and actedOnBehalfOf relations that the derivation-provenance finding cites rather than reimplements." }, { "id": "SRC-042", "title": "Guide to Attribute Based Access Control (ABAC) Definition and Considerations", "organization": "National Institute of Standards and Technology (NIST)", "url": "https://csrc.nist.gov/pubs/sp/800/162/upd2/final", "version_or_date": "NIST Special Publication 800-162, final with updates as of 2 August 2019", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:22:00Z", "relevance": "Establishes that authorization is computed by evaluating subject, object and environment attributes against policy, so sensitivity labels and role assignments carried here are attributes supplied to an external decision component, not decisions." }, { "id": "SRC-043", "title": "Universal Electronic Records Management (ERM) Requirements", "organization": "U.S. National Archives and Records Administration (NARA)", "url": "https://www.archives.gov/records-mgmt/policy/universalermrequirements", "version_or_date": "Version 3, June 2023", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:24:00Z", "relevance": "Baseline lifecycle requirements for capture with metadata, retention and disposition schedules, transfer and disposal, and the position that disposition execution is a records-function responsibility shared with IT rather than a property of the described record." }, { "id": "SRC-044", "title": "Current Best Practices for Generalizing Sensitive Species Occurrence Data", "organization": "Global Biodiversity Information Facility (GBIF Secretariat)", "url": "https://docs.gbif.org/sensitive-species-best-practices/master/en/", "version_or_date": "Version 1.0, November 2020", "source_type": "scientific", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T09:26:00Z", "relevance": "Concrete sensitivity categories with matching generalization levels, preference for grid-based coordinate rounding over randomization, use of dataGeneralizations / informationWithheld / coordinateUncertaintyInMeters to disclose generalization, provider responsibility for the sensitivity decision, and mandatory review dates." }, { "id": "SRC-045", "title": "eXtensible Access Control Markup Language (XACML) Version 3.0", "organization": "OASIS", "url": "https://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html", "version_or_date": "OASIS Standard, 22 January 2013", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:32:00Z", "relevance": "Separates PAP, PDP, PEP and PIP: the PDP renders the authorization decision and the PEP enforces it, which fixes the boundary that this model supplies attributes only and owns neither decision nor enforcement." }, { "id": "SRC-046", "title": "Data Catalog Vocabulary (DCAT) - Version 3", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/vocab-dcat-3/", "version_or_date": "W3C Recommendation, 22 August 2024", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T09:34:00Z", "relevance": "Distinguishes dcterms:accessRights (who may obtain a resource) from dcterms:license (how it may be used) and supplies versioning properties (dcat:version, previousVersion, hasCurrentVersion, versionNotes) and qualified attribution used for supersession and role recording." }, { "id": "SRC-047", "title": "INSPIRE Data Specification on Coordinate Reference Systems - Technical Guidelines", "organization": "INSPIRE Maintenance and Implementation Group / European Commission", "url": "https://knowledge-base.inspire.ec.europa.eu/publications/inspire-data-specification-coordinate-reference-systems-technical-guidelines_en", "version_or_date": "Publication record dated 31 January 2024", "source_type": "public-authority", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T09:36:00Z", "relevance": "Evidence that a regional public authority issues binding technical guidance constraining which coordinate reference systems may be used and how they are identified; cited here only for the existence of region-specific CRS mandates, since the substantive clauses sit in the linked PDF and were not verified line by line." }, { "id": "SRC-048", "title": "RFC 3339: Date and Time on the Internet: Timestamps", "organization": "Internet Engineering Task Force", "url": "https://www.rfc-editor.org/rfc/rfc3339.html", "version_or_date": "RFC 3339, July 2002", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Requires every timestamp to carry a stated relationship to UTC via Z or a numeric offset, defines the seconds field including leap-second values, and defines -00:00 as unknown local offset. Basis for the timestamp rule and for separating record time from geodetic coordinate epoch." }, { "id": "SRC-049", "title": "Computation of coordinate operations between two CRS - PROJ documentation", "organization": "PROJ project (OSGeo)", "url": "https://proj.org/en/stable/operations/operations_computation.html", "version_or_date": "PROJ 9.8 stable documentation, accessed 2026-09-04", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Documents that candidate operations are discovered from registry tables and ranked by twelve criteria including local grid availability, known accuracy and area of use, that missing grids change the outcome, that ballpark operations may be substituted, and that a user may pin an operation by code, pipeline or pivot CRS. Primary evidence that transformation results are non-deterministic unless pinned." }, { "id": "SRC-050", "title": "OGC Testbed-18: Reference Frame Transformation Engineering Report", "organization": "Open Geospatial Consortium", "url": "https://docs.ogc.org/per/22-038r2.html", "version_or_date": "OGC 22-038r2, 2023-03-09", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Identifies gaps in frame-equivalency determination (reliance on datum name or identifier), the restriction of dynamic datums to geodetic and vertical frames, and the comparative expressiveness of GML versus WKT for encoding coordinate operations. Source for known limits and for non-terrestrial and engineering gaps." }, { "id": "SRC-051", "title": "Geodesy - EPSG Geodetic Parameter Dataset", "organization": "International Association of Oil and Gas Producers (IOGP), Geomatics Committee", "url": "https://www.iogp.org/workstreams/engineering/geomatics/geodesy/", "version_or_date": "Accessed 2026-09-04; dataset registry at epsg.org, data model aligned to ISO 19111:2019 since the October 2020 platform migration", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Authority statement for the EPSG Dataset: maintained by IOGP members through the Geodesy Subcommittee, distributed publicly subject to acceptance of Terms of Use, with a data model covering dynamic datums, geoid-based vertical datums, datum ensembles and derived projected CRS. Basis for registry references, release pinning and licensing holds." }, { "id": "SRC-052", "title": "GeoParquet Specification 1.1.0", "organization": "GeoParquet / Open Geospatial Consortium community standard", "url": "https://geoparquet.org/releases/v1.1.0/", "version_or_date": "Version 1.1.0", "source_type": "schema", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Carries CRS as PROJJSON, distinguishes an absent crs field (implying a default) from an explicit null crs (undefined CRS), carries coordinate epoch as a decimal year at column rather than geometry granularity, and distinguishes planar from spherical edge interpretation. Concrete evidence of binding-specific loss and of edge semantics affecting comparability." }, { "id": "SRC-053", "title": "OGC Simple Features Access - Part 1: Common Architecture", "organization": "Open Geospatial Consortium", "url": "https://www.ogc.org/standards/sfa/", "version_or_date": "Version 1.2.1, OGC 06-103r4 (also published as ISO 19125-1)", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-04T00:00:00Z", "relevance": "Defines the simple feature geometry class hierarchy (Point, Curve, Surface, GeometryCollection) and states that each geometric object is associated with a spatial reference system describing the coordinate space in which it is defined. Basis for geometry-kind classification and for the geometry-to-SRS association requirement." } ], "structure": { "bundles": [ { "id": "geo-core-bundle-value-structure", "name": "Geometry Value and Structure", "description": "What a geometry value is, what it is bound to, how it is typed and dimensioned, and how its coordinate sequences and ring structures are composed.", "rationale": "Standards consistently model geometry as a typed, CRS-bound value that belongs to a feature rather than as an independent thing; the structural core (type, dimensionality, coordinate sequence, rings) is what every encoding must preserve, so it is the part that must be fixed format-neutrally first.", "source_refs": [ "SRC-001", "SRC-002", "SRC-003", "SRC-006", "SRC-008" ], "layers": [ { "id": "geo-core-layer-identity-binding", "name": "Geometry Identity and Reference Binding", "description": "How a geometry value is identified through its host binding and how it references the coordinate reference system that makes its numbers interpretable.", "source_refs": [ "SRC-002", "SRC-003", "SRC-006", "SRC-011" ], "findings": [ { "id": "geo-core-finding-weak-identity", "name": "Host-dependent weak identity of a geometry value", "description": "A geometry has no independent real-world identity. It is a value bound to a host Spatial Thing with a declared role, and is identified through that binding (host identifier plus role plus version) or, where an independent handle is unavoidable, by a digest of its canonical form. The Spatial Thing persists across resurvey while its geometry is replaced, so a geometry identifier must never be presented as the identifier of the thing.", "source_refs": [ "SRC-006", "SRC-004", "SRC-002" ], "questions": [ { "id": "geo-core-q-weak-identity-handle", "text": "Does this geometry carry an independent identifier, or is it identified only through its host binding, role and version?", "kind": "identity", "answer_data": [ "Presence or absence of an independent geometry identifier", "Composite binding key of host identifier plus geometry role", "Identifier-issuing authority, if any" ] }, { "id": "geo-core-q-weak-identity-thing", "text": "Which Spatial Thing does this geometry represent, and is that thing recorded as distinct from the geometry object itself?", "kind": "definition", "answer_data": [ "Host thing reference (persistent HTTP URI or master-system identifier)", "Explicit statement that host and geometry are distinct resources" ] }, { "id": "geo-core-q-weak-identity-role", "text": "What binding role and cardinality apply - is this the default geometry, an alternative representation, or a derived generalization?", "kind": "composition", "answer_data": [ "Geometry role code (default, alternative, generalized, footprint, centroid-surrogate)", "Cardinality of geometries permitted per host", "Which single geometry is designated as default" ] }, { "id": "geo-core-q-weak-identity-fingerprint", "text": "If content-derived identity is used, which canonical form and digest algorithm produce it, and is it treated as a deduplication handle rather than a public identifier?", "kind": "provenance", "answer_data": [ "Canonicalization rule reference", "Digest algorithm name", "Declared use restriction on the digest" ] }, { "id": "geo-core-q-weak-identity-time", "text": "Which event time and which observation or ingestion time apply to this geometry value, separately from the host's own validity period?", "kind": "temporal", "answer_data": [ "Event time of the represented spatial state (RFC 3339)", "Observation or ingestion time of the value (RFC 3339)", "Reference to the host validity period, not a copy of it" ] } ], "data_elements": [ { "id": "geo-core-de-host-ref", "name": "Host binding reference", "description": "Reference to the Spatial Thing that carries this geometry value.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-006", "SRC-004" ] }, { "id": "geo-core-de-geometry-role", "name": "Geometry role", "description": "Coded role of this geometry in the host binding, including whether it is the default geometry.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-006" ] }, { "id": "geo-core-de-geometry-local-id", "name": "Geometry local identifier", "description": "Optional identifier assigned to the geometry value itself when it must be addressed independently of its host binding.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "geo-core-de-content-fingerprint", "name": "Canonical content digest", "description": "Digest over the canonicalized geometry form, used as a weak deduplication and change-detection handle only.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-geometry-observed-at", "name": "Geometry observation time", "description": "Time at which this geometry value was observed, surveyed or recorded, distinct from the event time of the spatial state it represents.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [], "inline_only_rationale": "Identity here is a set of references and coded properties resolved against the host record and the canonicalization rule; there is no separable document or file. Materializing an identity artifact would wrongly imply the geometry is a thing of record in its own right, which the Spatial Thing / geometry disjointness in SRC-006 forbids." }, { "id": "geo-core-finding-crs-binding", "name": "Coordinate reference system binding of the geometry value", "description": "Coordinates are uninterpretable without a CRS. Every geometry value carries a resolvable CRS reference, an explicit axis-order statement matching the referenced coordinate system, a longitude-range convention where applicable, and, for a dynamic CRS, a coordinate-epoch reference. The register that defines those CRSs and any transformation between them is external; only the reference, the binding and subject-specific parameters are carried here.", "source_refs": [ "SRC-003", "SRC-011", "SRC-004", "SRC-005" ], "questions": [ { "id": "geo-core-q-crs-ref", "text": "Which resolvable CRS identifier is bound to this geometry, and which authority resolves it?", "kind": "authority", "answer_data": [ "CRS URI of the form http://www.opengis.net/def/crs/{authority}/{version}/{code}", "Authority name and version segment", "Resolution endpoint or register reference" ] }, { "id": "geo-core-q-crs-axis-order", "text": "In which axis order are the coordinate tuples stored, and does that order follow the referenced coordinate system axes or an overriding delivery convention?", "kind": "constraint", "answer_data": [ "Axis order statement (for example longitude/latitude or latitude/longitude)", "Whether the order follows the CRS axis definition or a stated override", "Axis labels and units of the referenced coordinate system" ] }, { "id": "geo-core-q-crs-epoch", "text": "If the referenced CRS is dynamic, which coordinate epoch do these coordinates belong to?", "kind": "temporal", "answer_data": [ "Coordinate epoch as a decimal year", "Static or dynamic reference-frame indicator", "Statement that the epoch is not an RFC 3339 timestamp" ] }, { "id": "geo-core-q-crs-default", "text": "When no CRS reference is present, which default applies, and is that default asserted in the record or merely assumed by the consumer?", "kind": "interoperability", "answer_data": [ "Default CRS identifier applied", "Flag distinguishing asserted from assumed default", "Storage CRS versus requested output CRS, where these differ" ] }, { "id": "geo-core-q-crs-transform-quality", "text": "If these coordinates resulted from a coordinate transformation, which operation was referenced and what positional-quality statement accompanies the result?", "kind": "quality", "answer_data": [ "Reference to the coordinate operation used", "Declared positional accuracy statement with units", "Source CRS reference of the pre-transformation value" ] } ], "data_elements": [ { "id": "geo-core-de-crs-ref", "name": "CRS reference", "description": "Resolvable identifier of the coordinate reference system under which the coordinate tuples are interpreted.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-011", "SRC-003" ] }, { "id": "geo-core-de-axis-order-statement", "name": "Axis order statement", "description": "Declared ordering of ordinates within each coordinate tuple relative to the referenced coordinate system axes.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-004" ] }, { "id": "geo-core-de-coordinate-epoch", "name": "Coordinate epoch", "description": "Decimal-year epoch to which coordinates in a dynamic CRS are referenced.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "geo-core-de-crs-default-assumed", "name": "Default CRS assumed flag", "description": "Indicates that no CRS was asserted with the value and a documented default was applied by convention.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "geo-core-de-transform-quality-statement", "name": "Transformation quality statement", "description": "Declared accuracy or uncertainty of coordinates produced by an externally executed coordinate operation, with a reference to that operation.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "The CRS binding is a reference plus a small set of subject-specific parameters (axis order, epoch, quality statement). The CRS definition itself is a record of an external register and must not be copied into this model, so there is no local artifact to materialize without duplicating a target model's content." } ] }, { "id": "geo-core-layer-type-system", "name": "Geometry Type System and Dimensionality", "description": "Primitive classes, aggregate and multipart membership, and the three distinct dimension concepts together with Z and M ordinate semantics.", "source_refs": [ "SRC-001", "SRC-002", "SRC-005", "SRC-007", "SRC-008" ], "findings": [ { "id": "geo-core-finding-primitive-types", "name": "Geometric primitive classes and edge interpolation", "description": "The primitive classes are point (dimension 0), curve (dimension 1) and surface (dimension 2). A curve is defined by an ordered position sequence plus an interpolation rule connecting consecutive positions; the classical simple-feature and GeoJSON profiles assume straight linear interpolation, while richer schemas admit circular arcs, geodesics and other segment types. The interpolation rule is therefore a declared property of the geometry, not an implicit constant.", "source_refs": [ "SRC-001", "SRC-008", "SRC-010", "SRC-002" ], "questions": [ { "id": "geo-core-q-primitive-class", "text": "Which primitive class does this geometry belong to - point, curve or surface - and which concrete type name expresses it?", "kind": "classification", "answer_data": [ "Primitive class code", "Concrete type name (Point, LineString, Polygon and equivalents)", "Type vocabulary reference" ] }, { "id": "geo-core-q-primitive-interpolation", "text": "Which interpolation rule connects consecutive positions along a curve or a surface boundary?", "kind": "definition", "answer_data": [ "Interpolation rule code (linear, circular arc, geodesic, other)", "Whether the rule is declared or inherited from a profile default" ] }, { "id": "geo-core-q-primitive-simple-closed", "text": "Is a self-intersecting curve permitted here, and is a closed curve treated as a ring or merely as a closed line?", "kind": "constraint", "answer_data": [ "Self-intersection permitted flag", "Closed indicator", "Ring designation, where the closed curve bounds an area" ] }, { "id": "geo-core-q-primitive-encoding-fit", "text": "Which of these primitive types survive projection into the target encoding profile, and which degrade or fail?", "kind": "interoperability", "answer_data": [ "Supported type list per encoding profile", "Degradation or failure behaviour per unsupported type", "Fallback representation reference" ] } ], "data_elements": [ { "id": "geo-core-de-primitive-class", "name": "Primitive class", "description": "Coded primitive class of the geometry: point, curve or surface.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-008", "SRC-002" ] }, { "id": "geo-core-de-geometry-type-name", "name": "Geometry type name", "description": "Concrete declared geometry type name within a named type vocabulary.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-007" ] }, { "id": "geo-core-de-interpolation-rule", "name": "Interpolation rule", "description": "Declared rule for interpolating between consecutive positions of a curve or surface boundary.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-010" ] }, { "id": "geo-core-de-is-closed", "name": "Closed indicator", "description": "Whether the curve's start and end positions coincide.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-008" ] } ], "artifacts": [], "inline_only_rationale": "Primitive typing and interpolation are scalar declarations attached to the geometry value and resolved against a type vocabulary owned elsewhere. There is no document, file or rendering to hold; the vocabulary itself is a referenced registry rather than an artifact of this finding." }, { "id": "geo-core-finding-aggregate-multipart", "name": "Aggregate, multipart and collection membership", "description": "Geometry values may aggregate parts: homogeneous multipart types (multi-point, multi-curve, multi-surface) and heterogeneous collections. Membership semantics must state whether parts are addressable, whether part order carries meaning, whether nesting is permitted, and whether parts are required to be disjoint. A single-part collection and a bare primitive are not interchangeable without an explicit rule.", "source_refs": [ "SRC-001", "SRC-008", "SRC-007" ], "questions": [ { "id": "geo-core-q-aggregate-kind", "text": "Is this value a homogeneous multipart aggregate or a heterogeneous geometry collection, and which part types does it admit?", "kind": "classification", "answer_data": [ "Aggregate kind code", "Permitted part type list", "Homogeneity constraint flag" ] }, { "id": "geo-core-q-aggregate-nesting", "text": "Are nested collections permitted, and if so to what depth?", "kind": "composition", "answer_data": [ "Nesting permitted flag", "Maximum nesting depth", "Flattening rule when nesting is disallowed" ] }, { "id": "geo-core-q-aggregate-part-order", "text": "Are individual parts separately addressable, and is part order semantically meaningful or incidental?", "kind": "identity", "answer_data": [ "Part addressing scheme (index or part key)", "Part order significance flag", "Stability guarantee for part indices across updates" ] }, { "id": "geo-core-q-aggregate-disjoint", "text": "Must the parts be mutually disjoint or non-overlapping, and which party asserts that condition?", "kind": "relationship", "answer_data": [ "Disjointness requirement flag", "Asserting party reference", "Consequence when the condition is violated" ] }, { "id": "geo-core-q-aggregate-singleton", "text": "Is a single-part aggregate normalized to a bare primitive, and does that normalization change the recorded type?", "kind": "decision", "answer_data": [ "Singleton normalization rule", "Whether type change is recorded as a replacement", "Consumers affected by the normalization" ] } ], "data_elements": [ { "id": "geo-core-de-aggregate-kind", "name": "Aggregate kind", "description": "Whether the value is a primitive, a homogeneous multipart aggregate or a heterogeneous collection.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-008" ] }, { "id": "geo-core-de-part-count", "name": "Part count", "description": "Number of direct member parts in the aggregate or collection.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-007" ] }, { "id": "geo-core-de-part-order-significant", "name": "Part order significance", "description": "Whether the order of member parts carries meaning for consumers.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "geo-core-de-nesting-depth", "name": "Collection nesting depth", "description": "Maximum depth of nested collections present in the value.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] } ], "artifacts": [], "inline_only_rationale": "Membership is structural metadata over the same coordinate payload already represented elsewhere in this model; representing it as a separate artifact would duplicate the encoded geometry and create two divergent copies of one value." }, { "id": "geo-core-finding-dimension-zm", "name": "Topological dimension, coordinate dimension and Z/M ordinates", "description": "Three dimension concepts must be kept apart: topological dimension (0, 1, 2 or 3 for solids), coordinate dimension (the number of ordinates in each position) and spatial dimension (the count of spatial ordinates only). A third ordinate may be a spatial Z interpreted against a referenced vertical reference, or the ordinate set may include a non-spatial M measure; presence of Z and M is an explicit declared flag, not something inferred from tuple length.", "source_refs": [ "SRC-002", "SRC-007", "SRC-005", "SRC-001" ], "questions": [ { "id": "geo-core-q-dimension-triple", "text": "What are the topological dimension, coordinate dimension and spatial dimension of this geometry, and do they agree with its declared type?", "kind": "measurement", "answer_data": [ "Topological dimension value", "Coordinate dimension value", "Spatial dimension value", "Consistency verdict against the declared type" ] }, { "id": "geo-core-q-dimension-z-meaning", "text": "Is the third ordinate a spatial Z value or a non-spatial measure, and against which vertical reference is Z interpreted?", "kind": "definition", "answer_data": [ "Z present flag with spatial or measure interpretation", "Vertical reference or height-system reference", "Unit of the Z ordinate" ] }, { "id": "geo-core-q-dimension-partial", "text": "Must Z and M be present on every position of the value, or may they be partially populated?", "kind": "constraint", "answer_data": [ "Uniform ordinate requirement flag", "Handling rule for positions with missing Z or M", "Validation consequence of a mixed ordinate set" ] }, { "id": "geo-core-q-dimension-m-semantics", "text": "What measure semantics and unit apply to the M ordinate, and who defines them?", "kind": "measurement", "answer_data": [ "M measure semantics description", "Unit of measure code", "Reference to the defining model, where M is a linear reference" ] }, { "id": "geo-core-q-dimension-projection-loss", "text": "How are Z and M carried, dropped or defaulted when the value is projected into an encoding that does not support them?", "kind": "interoperability", "answer_data": [ "Per-encoding Z and M support matrix", "Loss behaviour (drop, reject, substitute)", "Record of the loss on the projected artifact" ] } ], "data_elements": [ { "id": "geo-core-de-topological-dimension", "name": "Topological dimension", "description": "Dimension of the geometry itself: 0 for points, 1 for curves, 2 for surfaces, 3 for solids.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-coordinate-dimension", "name": "Coordinate dimension", "description": "Count of ordinates in each position of the geometry, including any non-spatial measure.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-spatial-dimension", "name": "Spatial dimension", "description": "Count of spatial ordinates in each position, excluding any measure ordinate.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-has-z", "name": "Z ordinate present", "description": "Declared flag for the presence of a Z ordinate on all positions of the value.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-007" ] }, { "id": "geo-core-de-has-m", "name": "M ordinate present", "description": "Declared flag for the presence of a measure ordinate on all positions of the value.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-007", "SRC-005" ] }, { "id": "geo-core-de-vertical-reference-ref", "name": "Vertical reference", "description": "Reference to the vertical datum or height system against which the Z ordinate is interpreted.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-005" ] }, { "id": "geo-core-de-m-unit", "name": "Measure unit", "description": "Unit of measure applying to the M ordinate.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005" ] } ], "artifacts": [], "inline_only_rationale": "These are numeric and boolean declarations that must travel inline with the coordinate payload so that a consumer can parse tuples correctly; separating them into an artifact would allow the declaration and the payload to drift apart, which is precisely the failure mode the explicit Z/M flags in SRC-007 exist to prevent." } ] }, { "id": "geo-core-layer-coordinate-structure", "name": "Coordinate Sequences and Ring Structure", "description": "The ordered tuples that carry position, their cardinality and resolution constraints, and the ring structures that bound areas.", "source_refs": [ "SRC-001", "SRC-002", "SRC-006", "SRC-007" ], "findings": [ { "id": "geo-core-finding-coordinate-sequence", "name": "Coordinate sequences, cardinality and resolution", "description": "A geometry's positions form an ordered sequence of coordinate tuples with a uniform ordinate set. Each declared type imposes a minimum position count; repeated consecutive positions, stored ordinate precision and declared spatial resolution are separate properties that must not be confused with survey accuracy. Any serialized form of this sequence is a projection of the value.", "source_refs": [ "SRC-001", "SRC-002", "SRC-006", "SRC-003" ], "questions": [ { "id": "geo-core-q-sequence-minimum", "text": "What is the minimum number of positions required for the declared geometry type, and does this value meet it?", "kind": "constraint", "answer_data": [ "Minimum position count for the declared type", "Actual position count", "Conformance verdict" ] }, { "id": "geo-core-q-sequence-precision", "text": "What ordinate precision is stored and what spatial resolution is declared, and are these kept distinct from positional accuracy?", "kind": "quality", "answer_data": [ "Stored decimal precision per ordinate", "Declared spatial resolution with unit", "Explicit statement that precision is not accuracy" ] }, { "id": "geo-core-q-sequence-duplicates", "text": "Are repeated consecutive positions permitted in the sequence, and how are they treated on validation and canonicalization?", "kind": "validation", "answer_data": [ "Duplicate position policy", "Canonicalization behaviour (retain or collapse)", "Effect on the recorded position count" ] }, { "id": "geo-core-q-sequence-encoding", "text": "Which encoding projection carried this coordinate sequence, and is that projection lossless for the declared ordinate set and precision?", "kind": "interoperability", "answer_data": [ "Encoding profile identifier", "Losslessness verdict for ordinates and precision", "Digest of the encoded form" ] } ], "data_elements": [ { "id": "geo-core-de-position-count", "name": "Position count", "description": "Total number of coordinate tuples in the geometry value, across all parts and rings.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "geo-core-de-ordinate-precision", "name": "Ordinate precision", "description": "Number of stored decimal places or the grid step applied to ordinate values.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-006" ] }, { "id": "geo-core-de-spatial-resolution", "name": "Declared spatial resolution", "description": "Minimum separation at which distinct positions are meaningful in this value.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-006" ] }, { "id": "geo-core-de-duplicate-positions-allowed", "name": "Duplicate position policy", "description": "Whether repeated consecutive positions are permitted in the coordinate sequence.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] } ], "artifacts": [ { "id": "geo-core-artifact-encoded-geometry", "name": "Encoded geometry representation", "description": "A serialized projection of the geometry value produced for storage or transfer. It is explicitly a projection: the mathematical value defined by this model is canonical, and the encoded form carries a profile reference plus a digest so that loss of ordinates, precision or type fidelity can be detected.", "media_or_form": [ "well-known text", "well-known binary", "JSON geometry object", "XML geometry element", "database geometry column value" ], "serial": false, "identity_strategy": "Identified by the authoritative master-system identifier of the record that stores it where one exists; otherwise by the governed encoding-profile IRI combined with the host binding reference; otherwise by a ULID assigned by the adopting Dimension. A digest over the canonicalized encoding may accompany the identifier for integrity checking but is never used alone as a public identifier, and no date component is used as an identifier.", "source_refs": [ "SRC-001", "SRC-005", "SRC-007", "SRC-002" ] } ], "inline_only_rationale": null }, { "id": "geo-core-finding-rings-orientation", "name": "Rings, closure, orientation and interior boundaries", "description": "An area is bounded by rings: a closed, simple curve. Closure may be explicit (a repeated final position) or implied by the encoding. Orientation conventions differ between standards - some require exterior rings counterclockwise and holes clockwise, others impose no orientation - so the model must record whether orientation is normative for the value or only a delivery convention. Interior rings (holes) are associated with exactly one exterior ring and must lie within it.", "source_refs": [ "SRC-001", "SRC-008", "SRC-007" ], "questions": [ { "id": "geo-core-q-ring-closure", "text": "Is ring closure represented by an explicit repeated final position, or implied by the encoding rules?", "kind": "constraint", "answer_data": [ "Explicit closure flag", "Minimum position count for a ring under the chosen convention", "Behaviour on encountering an unclosed ring" ] }, { "id": "geo-core-q-ring-orientation", "text": "Which orientation convention applies to exterior and interior rings, and is that convention normative for this value or only a property of the delivery encoding?", "kind": "definition", "answer_data": [ "Exterior ring orientation code", "Interior ring orientation code", "Normative versus conventional designation with source reference" ] }, { "id": "geo-core-q-ring-holes", "text": "How is each interior ring associated with its exterior ring, and may holes be nested, touch the exterior, or split the interior?", "kind": "composition", "answer_data": [ "Exterior-to-interior ring association structure", "Nested hole permission flag", "Rule for touching rings and interior connectivity" ] }, { "id": "geo-core-q-ring-invalidity", "text": "Does a reversed or unclosed ring make the geometry invalid, or merely non-canonical and subject to normalization?", "kind": "validation", "answer_data": [ "Verdict classification (invalid versus non-canonical)", "Normalization action taken", "Reference to the validity profile that decides this" ] } ], "data_elements": [ { "id": "geo-core-de-ring-closure-explicit", "name": "Explicit ring closure", "description": "Whether the final position of each ring repeats its first position in the stored value.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "geo-core-de-exterior-ring-orientation", "name": "Exterior ring orientation", "description": "Declared winding direction of exterior rings in this value.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "geo-core-de-interior-ring-count", "name": "Interior ring count", "description": "Number of interior rings (holes) present, per surface part.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-008" ] }, { "id": "geo-core-de-orientation-normative", "name": "Orientation normativity", "description": "Whether ring orientation is a normative property of the value or a convention of the delivery encoding only.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-008" ] } ], "artifacts": [], "inline_only_rationale": "Ring structure is expressed entirely within the coordinate sequence and a handful of structural flags; the encoded form is already covered by the encoded geometry artifact in the sibling finding, and duplicating it here would produce two artifacts describing one payload." } ] } ] }, { "id": "geo-core-bundle-state-quality", "name": "Geometry State, Extent and Declared Quality", "description": "Whether a geometry exists at all, what extent summarizes it, and what validity, simplicity and relation assertions are carried with it.", "rationale": "Standards separate a typed empty geometry from an unrecorded one, treat envelopes and centroids as derived summaries, and define validity and topological relations as assessments made against a rule set rather than intrinsic facts; each therefore needs its own recorded state, profile and provenance so consumers can tell an assertion from a computation.", "source_refs": [ "SRC-002", "SRC-007", "SRC-004", "SRC-001" ], "layers": [ { "id": "geo-core-layer-emptiness-extent", "name": "Presence State and Declared Extent", "description": "Distinguishing empty, absent, unknown and suppressed geometry, and recording envelopes and derived summary points with their provenance.", "source_refs": [ "SRC-002", "SRC-007", "SRC-004", "SRC-001" ], "findings": [ { "id": "geo-core-finding-empty-vs-absent", "name": "Empty, absent, unknown and suppressed geometry", "description": "An empty geometry is a typed value that carries no coordinate data yet retains its type and CRS binding; an absent geometry means no geometry is bound to the host at all, which standards permit for features without spatial properties. Unknown location and deliberately withheld location are further distinct states. Sentinel coordinates such as (0,0) must never stand in for any of these.", "source_refs": [ "SRC-002", "SRC-007", "SRC-004", "SRC-006" ], "questions": [ { "id": "geo-core-q-presence-state", "text": "Is the geometry empty with a retained type, absent from the host binding, unknown, or deliberately suppressed?", "kind": "state", "answer_data": [ "Presence state code", "Distinguishing evidence for the chosen state", "Consumer guidance for each state" ] }, { "id": "geo-core-q-empty-retains", "text": "Does an empty geometry retain its declared type, CRS binding and ordinate declarations?", "kind": "constraint", "answer_data": [ "Type retention flag", "CRS retention flag", "Ordinate declaration retention flag" ] }, { "id": "geo-core-q-empty-sentinel", "text": "How are sentinel or placeholder coordinates prevented from being read as a real position?", "kind": "exception", "answer_data": [ "Prohibited sentinel value list", "Detection rule for sentinel positions", "Remediation action when a sentinel is found" ] }, { "id": "geo-core-q-empty-suppression", "text": "Where location is generalized or withheld for privacy, safety or security reasons, is that recorded as suppression rather than as absence?", "kind": "privacy", "answer_data": [ "Suppression reason code", "Generalization applied, if any, with its resolution", "Reference to the disclosure policy that required it" ] } ], "data_elements": [ { "id": "geo-core-de-presence-state", "name": "Presence state", "description": "Coded state distinguishing empty, absent, unknown and suppressed geometry.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-004" ] }, { "id": "geo-core-de-empty-retains-type", "name": "Empty value retains type", "description": "Whether an empty geometry keeps its declared type and CRS binding.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-002" ] }, { "id": "geo-core-de-suppression-reason", "name": "Suppression reason", "description": "Coded reason for withholding or generalizing the geometry, recorded distinctly from absence.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [], "inline_only_rationale": "Presence state is a single coded property with supporting flags that must be read together with the host binding. There is nothing to materialize: by definition these states describe the absence or withholding of a coordinate payload, so any artifact would be empty or misleading." }, { "id": "geo-core-finding-envelope-extent", "name": "Envelope, bounding box and derived summary points", "description": "An envelope is an axis-aligned extent in the geometry's own CRS; a bounding box may instead be expressed in a delivery CRS with its own axis ordering. Both are derived summaries and must carry their derivation provenance and containment guarantee. Extents that cross the antimeridian invert the usual west-east ordering, and pole-containing extents use extreme latitudes; these are recorded conventions, not computations. Centroids and representative points are derived summary geometries under the same rules.", "source_refs": [ "SRC-001", "SRC-004", "SRC-007", "SRC-002" ], "questions": [ { "id": "geo-core-q-extent-frame", "text": "Is the recorded extent an envelope in the geometry's own CRS or a bounding box expressed in a separate delivery CRS?", "kind": "definition", "answer_data": [ "Extent kind code", "Extent CRS reference", "Axis ordering of the extent values" ] }, { "id": "geo-core-q-extent-antimeridian", "text": "How is an extent that crosses the antimeridian encoded, and how is a pole-containing extent expressed?", "kind": "exception", "answer_data": [ "Antimeridian-crossing indicator and the west-greater-than-east convention", "Pole-containing latitude convention", "Consumer instruction for interpreting inverted extents" ] }, { "id": "geo-core-q-extent-derivation", "text": "Was the extent computed from the coordinates, declared independently, or inherited from a parent collection?", "kind": "provenance", "answer_data": [ "Derivation method code", "Reference to the computing agent or declaring party", "Time at which the extent was derived" ] }, { "id": "geo-core-q-extent-containment", "text": "Is the extent guaranteed to contain the geometry, or is it an approximation subject to a stated tolerance?", "kind": "quality", "answer_data": [ "Containment guarantee flag", "Tolerance value with unit", "Staleness rule when the geometry changes" ] }, { "id": "geo-core-q-extent-summary-point", "text": "Which derived summary point is recorded - a mathematical centroid or a guaranteed interior representative point - and can it fall outside the geometry?", "kind": "classification", "answer_data": [ "Summary point kind code", "Interior guarantee flag", "Position of the summary point in the declared CRS" ] } ], "data_elements": [ { "id": "geo-core-de-envelope-min-tuple", "name": "Envelope minimum tuple", "description": "Ordered minimum ordinate values of the axis-aligned extent, following the declared axis order.", "value_kind": "collection", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-007" ] }, { "id": "geo-core-de-envelope-max-tuple", "name": "Envelope maximum tuple", "description": "Ordered maximum ordinate values of the axis-aligned extent, following the declared axis order.", "value_kind": "collection", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-007" ] }, { "id": "geo-core-de-extent-crs-ref", "name": "Extent CRS reference", "description": "CRS in which the extent values are expressed, where it differs from the geometry's own CRS binding.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-011" ] }, { "id": "geo-core-de-extent-crosses-antimeridian", "name": "Antimeridian crossing indicator", "description": "Flags that the extent spans the antimeridian so that the west value exceeds the east value.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-001" ] }, { "id": "geo-core-de-extent-derivation", "name": "Extent derivation method", "description": "How the extent was obtained: computed, declared or inherited.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "geo-core-de-summary-point", "name": "Derived summary point", "description": "Centroid or interior representative point recorded as a derived summary geometry.", "value_kind": "geometry", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] } ], "artifacts": [], "inline_only_rationale": "Envelopes and summary points are small derived tuples that must stay attached to the value they summarize and be invalidated with it. Holding them as artifacts would create independently addressable copies that can silently outlive the geometry they describe." } ] }, { "id": "geo-core-layer-validity-assertions", "name": "Validity and Declared Relations", "description": "Validity, simplicity and topological relations recorded as assertions against a named profile, with evaluation performed elsewhere.", "source_refs": [ "SRC-002", "SRC-008", "SRC-007" ], "findings": [ { "id": "geo-core-finding-validity-simplicity", "name": "Validity, simplicity and repair assertions", "description": "Simplicity (no anomalous self-intersection) and validity (conformance to structural assertions such as ring closure, non-self-intersecting boundaries and correctly nested holes) are verdicts produced against a named rule profile at a stated tolerance. This model records the profile reference, the verdict, when it was assessed and which evaluator produced it; evaluation, repair execution and the evaluator's own audit trail belong to the referenced engine.", "source_refs": [ "SRC-002", "SRC-008", "SRC-007" ], "questions": [ { "id": "geo-core-q-validity-profile", "text": "Against which named validity profile and version was this geometry assessed, and what verdict was returned?", "kind": "validation", "answer_data": [ "Validity profile reference with version", "Verdict code (valid, invalid, not assessed)", "Failure reason codes where invalid" ] }, { "id": "geo-core-q-validity-evaluator", "text": "Which evaluator produced the verdict, and is the verdict held here only as a reference to that external assessment?", "kind": "evidence", "answer_data": [ "Evaluator reference and version", "Statement that the assessment record is owned by the evaluator", "Retrieval reference for the full assessment" ] }, { "id": "geo-core-q-validity-tolerance", "text": "What tolerance or snapping distance was applied when assessing coincident and near-coincident positions?", "kind": "measurement", "answer_data": [ "Tolerance value with unit", "Tolerance basis (CRS units or ground distance)", "Effect of tolerance on the verdict" ] }, { "id": "geo-core-q-validity-repair", "text": "If the geometry was repaired or normalized, what changed and which prior value does the current one supersede?", "kind": "provenance", "answer_data": [ "Repair operation description", "Reference to the superseded value", "Party responsible for accepting the repair" ] }, { "id": "geo-core-q-validity-staleness", "text": "At what observation time was validity last assessed, and does that assessment still apply to the current coordinate payload?", "kind": "temporal", "answer_data": [ "Assessment time (RFC 3339)", "Digest of the payload assessed", "Staleness verdict against the current payload" ] } ], "data_elements": [ { "id": "geo-core-de-validity-profile-ref", "name": "Validity profile reference", "description": "Reference to the named, versioned rule profile against which validity was assessed.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-008", "SRC-007" ] }, { "id": "geo-core-de-validity-verdict", "name": "Validity verdict", "description": "Coded outcome of the validity assessment, including a not-assessed state.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-008" ] }, { "id": "geo-core-de-simplicity-verdict", "name": "Simplicity verdict", "description": "Coded outcome of the simplicity assessment, kept distinct from validity.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-validity-assessed-at", "name": "Validity assessment time", "description": "Observation time at which the validity assessment was made.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-validity-evaluator-ref", "name": "Evaluator reference", "description": "Reference to the external engine or service that produced the verdict.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-008" ] } ], "artifacts": [ { "id": "geo-core-artifact-validity-profile", "name": "Geometry validity profile", "description": "A versioned declaration naming the structural assertions a geometry must satisfy (ring closure, boundary self-intersection handling, hole nesting, minimum position counts), the tolerance applied, and the dimensional scope covered. It is the reference target of every validity verdict and is published so verdicts remain interpretable over time; it does not contain assessment results.", "media_or_form": [ "governed profile document", "machine-readable rule set", "conformance-class reference" ], "serial": true, "identity_strategy": "Identified by the authoritative master-system identifier issued by the profile's system of record; failing that, by a governed IRI resolvable within the adopting Dimension's namespace; failing that, by a ULID assigned by the adopting Dimension. Versions are distinguished by an ordinal version suffix, never by a date in the identifier.", "source_refs": [ "SRC-008", "SRC-007", "SRC-002" ] } ], "inline_only_rationale": null }, { "id": "geo-core-finding-declared-relations", "name": "Declared spatial relations between geometry values", "description": "Spatial relations may be recorded as assertions of record: a predicate from a named relation family (Simple Features, Egenhofer, RCC8, or a dimensionally extended nine-intersection pattern) between two geometry values, together with the CRS, dimensionality and tolerance under which the assertion holds. Recording an assertion never confers ownership of predicate evaluation, which stays with the referenced engine.", "source_refs": [ "SRC-002", "SRC-008" ], "questions": [ { "id": "geo-core-q-relation-predicate", "text": "Which relation family and predicate name is asserted between the two geometry values?", "kind": "relationship", "answer_data": [ "Relation family code (Simple Features, Egenhofer, RCC8, intersection pattern)", "Predicate name within that family", "Pattern string, where an intersection matrix is used" ] }, { "id": "geo-core-q-relation-context", "text": "Under which CRS, dimensionality and tolerance was the relation asserted?", "kind": "constraint", "answer_data": [ "CRS reference used for the assertion", "Dimensional basis of the assertion", "Tolerance value with unit" ] }, { "id": "geo-core-q-relation-status", "text": "Is the relation an asserted fact of record, or a cached result of an external evaluation that may be recomputed and invalidated?", "kind": "evidence", "answer_data": [ "Assertion status code (asserted, cached, derived)", "Cache invalidation trigger", "Reference to the evaluation that produced a cached result" ] }, { "id": "geo-core-q-relation-crs-mismatch", "text": "Do the two related geometries share a CRS binding, and if not, how is that mismatch declared rather than silently resolved?", "kind": "interoperability", "answer_data": [ "CRS binding of each operand", "Mismatch declaration", "Reference to the coordinate operation applied by the external service, if any" ] } ], "data_elements": [ { "id": "geo-core-de-relation-family", "name": "Relation family", "description": "Named family of topological relations from which the predicate is drawn.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-relation-predicate", "name": "Relation predicate", "description": "Named predicate asserted between the subject and related geometry values.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-008" ] }, { "id": "geo-core-de-related-geometry-ref", "name": "Related geometry reference", "description": "Reference to the second geometry value participating in the asserted relation.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "geo-core-de-relation-context", "name": "Relation evaluation context", "description": "CRS, dimensionality and tolerance under which the relation assertion is stated to hold.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "A declared relation is a triple of references and codes pointing at two geometry values and a predicate vocabulary; the substantive evaluation record belongs to the external predicate engine, so materializing an artifact here would reproduce a target model's assessment output and claim ownership of evaluation semantics this model must not hold." } ] } ] }, { "id": "geo-core-bundle-boundary-cases", "name": "Non-Planar and Extended Geometry Boundary Cases", "description": "The cases where the planar, linear, two-dimensional default silently breaks: edge interpretation on a curved earth, the antimeridian and poles, curved segments, surface patches and solids.", "rationale": "The mainstream simple-feature profile assumes two-dimensional features with straight linear interpolation, and GeoJSON further fixes edges as straight Cartesian lines in longitude/latitude space; richer OGC encodings admit circular arcs, geodesics, surface patches and solids. Because these families disagree, the differences must be recorded as explicit declared cases rather than resolved by an implicit planar default.", "source_refs": [ "SRC-001", "SRC-005", "SRC-010", "SRC-008", "SRC-004" ], "layers": [ { "id": "geo-core-layer-non-planar", "name": "Non-Planar Interpretation and Extended Types", "description": "Edge interpretation and wraparound handling, and the curved, patch-based and volumetric types beyond the linear planar core.", "source_refs": [ "SRC-001", "SRC-004", "SRC-005", "SRC-007", "SRC-010" ], "findings": [ { "id": "geo-core-finding-edge-interpretation", "name": "Planar, geodesic and wraparound edge interpretation", "description": "Whether an edge between two positions is a straight line in the CRS coordinate space or a geodesic on the reference ellipsoid changes the shape on the ground and is not decidable from the coordinates alone. GeoJSON fixes edges as straight Cartesian lines in longitude/latitude and requires antimeridian-crossing geometry to be cut in two; other practice interprets the same tuples spherically. The interpretation, the antimeridian strategy, the longitude-range convention and the polar handling must all be declared.", "source_refs": [ "SRC-001", "SRC-004", "SRC-005", "SRC-003" ], "questions": [ { "id": "geo-core-q-edge-interpretation", "text": "Are edges interpreted as straight lines in the CRS coordinate space or as geodesics on the reference ellipsoid?", "kind": "definition", "answer_data": [ "Edge interpretation code", "Source of the rule (profile default or explicit declaration)", "Consequence for length and area statements" ] }, { "id": "geo-core-q-edge-antimeridian", "text": "How does this geometry cross or avoid the antimeridian - by being cut into parts, by longitude values outside the normal range, or by a spherical interpretation?", "kind": "exception", "answer_data": [ "Antimeridian strategy code", "Part structure resulting from cutting, if applied", "Longitude values used and whether they exceed the normal range" ] }, { "id": "geo-core-q-edge-poles", "text": "Does the geometry enclose, touch or approach a pole, and which convention expresses that region?", "kind": "spatial", "answer_data": [ "Pole proximity indicator", "Convention for expressing pole-containing areas", "Latitude extremes used" ] }, { "id": "geo-core-q-edge-conflict", "text": "Which interpretation prevails when the encoding profile's convention and the declared edge rule disagree?", "kind": "decision", "answer_data": [ "Precedence rule between declaration and encoding convention", "Party authorized to decide", "Record of the resolution applied to this value" ] } ], "data_elements": [ { "id": "geo-core-de-edge-interpretation", "name": "Edge interpretation", "description": "Declared rule for interpreting an edge between two positions: Cartesian in CRS space or geodesic on the ellipsoid.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "geo-core-de-antimeridian-strategy", "name": "Antimeridian strategy", "description": "Declared handling of geometry that spans the antimeridian.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "geo-core-de-longitude-range-convention", "name": "Longitude range convention", "description": "Declared longitude value range convention applied to the coordinate sequence.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "geo-core-de-polar-handling", "name": "Polar handling", "description": "Declared convention for geometry that encloses or touches a pole.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] } ], "artifacts": [], "inline_only_rationale": "These are interpretation declarations that must accompany the coordinate payload wherever it travels; they describe how existing numbers are read rather than adding content, so there is no separable artifact and any detached copy would risk being applied to the wrong value." }, { "id": "geo-core-finding-curved-solid-extended", "name": "Curved segments, surface patches and solid geometry", "description": "Beyond linear planar types, OGC encodings admit circular strings, compound curves and curve polygons, patch-based surfaces such as polyhedral surfaces, triangulated networks and triangles, and volumetric solids expressed as polyhedra or prisms bounded by closed shells. Validity assertions written for planar simple features do not fully determine correctness for non-planar surfaces or solids, so the applicable rule set and any fallback linearization must be declared.", "source_refs": [ "SRC-005", "SRC-007", "SRC-010", "SRC-009" ], "questions": [ { "id": "geo-core-q-extended-type", "text": "Does the geometry use curved segments, a patch-based surface, or a volumetric solid beyond the linear simple-feature types?", "kind": "classification", "answer_data": [ "Extended type name", "Curve segment kinds present", "Patch or shell structure indicator" ] }, { "id": "geo-core-q-extended-solid-shells", "text": "For a solid, how are its bounding shells declared, and must each shell be closed and consistently orientable?", "kind": "constraint", "answer_data": [ "Exterior shell declaration", "Interior shell (void) count", "Closure and orientability requirement per shell" ] }, { "id": "geo-core-q-extended-validity", "text": "Which validity rules apply to non-planar surfaces and solids, given that planar simple-feature assertions do not fully cover them?", "kind": "validation", "answer_data": [ "Applicable non-planar validity rule set reference", "Explicitly unresolved rules recorded as gaps", "Planarity tolerance for surface patches" ] }, { "id": "geo-core-q-extended-fallback", "text": "What fallback or linearized representation is offered to consumers that cannot process curved or volumetric geometry, and at what tolerance?", "kind": "interoperability", "answer_data": [ "Fallback geometry reference", "Linearization tolerance with unit", "Statement that the fallback is lossy and not canonical" ] } ], "data_elements": [ { "id": "geo-core-de-extended-type", "name": "Extended geometry type", "description": "Name of the curved, patch-based or volumetric type used, where it lies beyond the linear simple-feature core.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005", "SRC-007" ] }, { "id": "geo-core-de-curve-segment-kinds", "name": "Curve segment kinds", "description": "Set of segment interpolation kinds present in a compound or curved geometry.", "value_kind": "collection", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-010" ] }, { "id": "geo-core-de-shell-count", "name": "Solid shell count", "description": "Number of bounding shells declared for a solid, distinguishing the exterior shell from interior voids.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005", "SRC-010" ] }, { "id": "geo-core-de-linearization-tolerance", "name": "Linearization tolerance", "description": "Maximum permitted deviation when a curved geometry is approximated by linear segments for a fallback representation.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005" ] }, { "id": "geo-core-de-fallback-geometry-ref", "name": "Fallback geometry reference", "description": "Reference to a simpler, explicitly lossy representation offered alongside the canonical extended geometry.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005" ] } ], "artifacts": [], "inline_only_rationale": "Extended-type declarations are structural properties of the same geometry value; the encoded projection that carries them is already covered by the encoded geometry artifact, and the non-planar validity rule set is referenced through the validity profile artifact rather than duplicated here." } ] } ] }, { "id": "geo-crsid-bundle-identity", "name": "CRS Identity, Authority and Registry Binding", "description": "How a coordinate reference system is named, cited, resolved against its custodian, snapshotted with provenance, and status-checked - so that a CRS reference is verifiable and reproducible rather than a label.", "rationale": "ISO 19111 makes identifier, authority and version part of the CRS definition; the OGC naming policy fixes the resolvable URI form and its version token; the EPSG registry states that codes are permanent, unique only within a table, and never removed, with incorrect records deprecated and replaced. Without this bundle a CRS reference cannot be resolved, pinned or trusted.", "source_refs": [ "SRC-003", "SRC-012", "SRC-014", "SRC-015" ], "layers": [ { "id": "geo-crsid-layer-authority-binding", "name": "Authoritative identification, carriage and provenance", "description": "Which authority governs the definition, what code it issued, in what form the reference travels, whether a full definition is carried alongside it, and against which registry release it was resolved and pinned.", "source_refs": [ "SRC-003", "SRC-012", "SRC-013", "SRC-011", "SRC-014", "SRC-015" ], "findings": [ { "id": "geo-crsid-finding-authority-identifier", "name": "Authoritative CRS identifier and authority binding", "description": "The identifier of record for a CRS: the governing authority's registered token plus the code it issued, carried as an authority/code pair or as an OGC definition URI - never as a bare number or a label.", "source_refs": [ "SRC-003", "SRC-012", "SRC-014", "SRC-015" ], "questions": [ { "id": "geo-crsid-q-authid-issuer", "text": "Which authority issued the identifier of record for this CRS, and what exact code did it issue?", "kind": "identity", "answer_data": [ "authority token as registered in the OGC-controlled authority register", "authority-issued code string exactly as published", "the identifier form actually carried on the record" ] }, { "id": "geo-crsid-q-authid-custodian", "text": "Is the cited authority the custodian that governs this definition, or a downstream mirror or vendor catalogue?", "kind": "authority", "answer_data": [ "custodian organization name", "registry endpoint or dataset the code was read from", "mirror-or-vendor flag with the reason it was used" ] }, { "id": "geo-crsid-q-authid-uri", "text": "In what resolvable URI form is the identifier expressed for exchange, and does that URI carry a real registry version or the wildcard token?", "kind": "interoperability", "answer_data": [ "OGC definition URI string", "value of the version path segment", "flag indicating the version 0 wildcard was used and pinning is therefore absent" ] }, { "id": "geo-crsid-q-authid-bare", "text": "What rule forbids treating a bare code, a projection nickname or a vendor string as sufficient identification here?", "kind": "constraint", "answer_data": [ "stated rejection rule for unqualified codes", "list of accepted identifier forms", "note that a code is unique only within its authority table" ] }, { "id": "geo-crsid-q-authid-secondary", "text": "Which secondary identifiers describe the same CRS, and which one prevails when they disagree?", "kind": "relationship", "answer_data": [ "secondary identifier list with its issuing authority", "designated normative identifier", "recorded disagreement and its cause" ] } ], "data_elements": [ { "id": "geo-crsid-de-authority-name", "name": "Authority name", "description": "Registered token of the organization that governs the CRS definition, for example EPSG or OGC.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-012", "SRC-014" ] }, { "id": "geo-crsid-de-authority-code", "name": "Authority code", "description": "Code issued by that authority for the CRS, meaningful only together with the authority name.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-012", "SRC-015" ] }, { "id": "geo-crsid-de-definition-uri", "name": "Definition URI", "description": "Resolvable OGC definition URI rendering of the authority/code pair, with its version segment.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-014" ] }, { "id": "geo-crsid-de-identifier-form", "name": "Identifier form", "description": "Which accepted form the reference is carried in: authority/code pair, definition URI, or both.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-011", "SRC-014" ] }, { "id": "geo-crsid-de-secondary-identifier", "name": "Secondary identifier", "description": "Additional identifier for the same CRS issued by another authority, recorded as non-normative.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-012", "SRC-015" ] } ], "artifacts": [], "inline_only_rationale": "The identifier of record is pure reference data - an authority token plus a code, optionally rendered as a URI - carried directly on the record that bears coordinates. It resolves to a document held and governed by the external registry. Minting a local artifact for it would amount to re-registering a definition this model does not own, and would create a second identity that could drift from the custodian's." }, { "id": "geo-crsid-finding-registry-snapshot", "name": "Registry version, pinned snapshot and provenance", "description": "The registry release a definition was read from and, where a copy is retained, its status as a provenance-bearing pinned snapshot with integrity evidence rather than a local registration.", "source_refs": [ "SRC-003", "SRC-012", "SRC-014", "SRC-015" ], "questions": [ { "id": "geo-crsid-q-snap-release", "text": "Which registry release and which retrieval event produced the definition currently held for this CRS?", "kind": "provenance", "answer_data": [ "registry or dataset version string", "retrieval URL", "retrieval timestamp in RFC 3339 with an explicit offset", "identity of the retrieving agent or service" ] }, { "id": "geo-crsid-q-snap-eventtime", "text": "How is the observation time of the snapshot kept separate from the authority's own publication and revision dates?", "kind": "temporal", "answer_data": [ "registry release publication date as published", "authority's last-revision date for the record", "local ingestion timestamp", "note where one of the two is unknown rather than copied" ] }, { "id": "geo-crsid-q-snap-integrity", "text": "What integrity evidence proves the held snapshot has not drifted from the authority record?", "kind": "evidence", "answer_data": [ "content digest over the declared canonical serialization", "digest algorithm", "timestamp and outcome of the last re-verification", "unverified flag where the digest cannot be recomputed" ] }, { "id": "geo-crsid-q-snap-repin", "text": "Who may re-pin the snapshot, how long is the superseded pin kept, and what remains after it is reduced?", "kind": "retention", "answer_data": [ "role permitted to re-pin", "supersession pointer to the prior snapshot", "minimum retention tied to citing data", "content of the residual provenance stub" ] }, { "id": "geo-crsid-q-snap-degraded", "text": "What is recorded when the registry is unreachable and only a cached definition is available?", "kind": "exception", "answer_data": [ "degraded-resolution flag", "age of the cache at time of use", "stated risk note and the role that accepted it" ] } ], "data_elements": [ { "id": "geo-crsid-de-registry-version", "name": "Registry version", "description": "Release identifier of the CRS registry dataset the definition was resolved against.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-014", "SRC-015" ] }, { "id": "geo-crsid-de-snapshot-retrieved-at", "name": "Snapshot retrieval time", "description": "Observation time at which the definition was retrieved from the authority, in RFC 3339 with seconds and offset.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-014" ] }, { "id": "geo-crsid-de-authority-record-revision-date", "name": "Authority record revision date", "description": "Event date on which the authority itself last revised the record, as published by the authority.", "value_kind": "date", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-014", "SRC-015" ] }, { "id": "geo-crsid-de-snapshot-digest", "name": "Snapshot content digest", "description": "Digest over the snapshot's declared canonical serialization, with its algorithm named.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-012", "SRC-014" ] }, { "id": "geo-crsid-de-snapshot-source-url", "name": "Snapshot source reference", "description": "Resolvable location the snapshot was retrieved from, retained for reproducibility.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-014", "SRC-015" ] } ], "artifacts": [ { "id": "geo-crsid-artifact-pinned-definition", "name": "Pinned CRS definition snapshot", "description": "An immutable, provenance-bearing copy of one authority CRS record as retrieved at a stated registry version, retained so that a coordinate can be reinterpreted later exactly as it was interpreted at capture. It is a citation of the registry, not a local registration.", "media_or_form": [ "WKT2 text as defined by OGC WKT-CRS", "registry record export in structured or tabular form", "GML CRS dictionary entry", "structured record in the adopting Dimension's store" ], "serial": true, "identity_strategy": "Identified by authority name plus authority code plus the registry version at retrieval. Where that triple is not unique within the adopting Dimension, a Dimension-assigned ULID disambiguates. The snapshot never receives a CRS code of its own and never occupies an authority namespace.", "source_refs": [ "SRC-012", "SRC-014", "SRC-015" ] } ], "inline_only_rationale": null }, { "id": "geo-crsid-finding-definition-carriage", "name": "Reference by URI versus carried definition", "description": "Whether a record carries only a resolvable CRS reference, a full definition, or both, what a carried definition must contain to be usable offline, and what is known to be lost in each carriage mode.", "source_refs": [ "SRC-003", "SRC-012", "SRC-013", "SRC-011", "SRC-014" ], "questions": [ { "id": "geo-crsid-q-carry-mode", "text": "Is the CRS carried by reference only, by full definition, or both, and what drove that choice?", "kind": "decision", "answer_data": [ "carriage mode code", "justification note", "consuming systems that cannot resolve a reference" ] }, { "id": "geo-crsid-q-carry-precedence", "text": "When both a reference and a full definition are present, which one prevails and how is divergence detected?", "kind": "composition", "answer_data": [ "stated precedence rule", "element-level comparison method", "divergence findings and their disposition" ] }, { "id": "geo-crsid-q-carry-required", "text": "Which elements must a carried definition contain before it can be used without contacting the registry?", "kind": "requirement", "answer_data": [ "required element list: datum, coordinate system, axes with units, subtype", "completeness check result per element", "blocking gaps" ] }, { "id": "geo-crsid-q-carry-exchange", "text": "Which version of the exchange form is declared, so that a consumer parses the carried definition against the right grammar?", "kind": "interoperability", "answer_data": [ "exchange form name and version in force", "declared grammar or schema reference", "consumer capability note" ] }, { "id": "geo-crsid-q-carry-loss", "text": "What metadata is known to be absent when a definition travels as a well-known text string rather than as a registry record?", "kind": "quality", "answer_data": [ "omitted source and provenance metadata", "omitted applicability metadata", "explicit loss note attached to the carried copy" ] } ], "data_elements": [ { "id": "geo-crsid-de-carriage-mode", "name": "Carriage mode", "description": "Whether the CRS travels as reference only, definition only, or reference plus definition.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-011", "SRC-012" ] }, { "id": "geo-crsid-de-carried-definition-form", "name": "Carried definition form and version", "description": "Named exchange form and version of a carried definition, so it is parsed against the correct grammar.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012", "SRC-013" ] }, { "id": "geo-crsid-de-precedence-rule", "name": "Precedence rule", "description": "Which of reference and carried definition prevails when the two disagree.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "geo-crsid-de-completeness-verdict", "name": "Completeness verdict", "description": "Result of checking a carried definition against the elements required for its subtype.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] } ], "artifacts": [ { "id": "geo-crsid-artifact-carried-definition", "name": "Carried CRS definition document", "description": "The full, self-contained definition of one CRS carried alongside data for consumers that cannot resolve the authority reference, annotated with what its exchange form omits.", "media_or_form": [ "WKT2 CRS string", "GML CRS dictionary entry", "structured definition object", "registry record export" ], "serial": false, "identity_strategy": "Identified by the authority name and code of the CRS it expresses plus the registry version of the snapshot it was derived from; it never establishes an identity independent of that authority record.", "source_refs": [ "SRC-012", "SRC-013", "SRC-011" ] } ], "inline_only_rationale": null } ] }, { "id": "geo-crsid-layer-record-status", "name": "Names, aliases and registry record status", "description": "How a CRS's human-facing labels are kept separate from its definition identity, and how validity, deprecation and supersession observed at the authority are represented locally.", "source_refs": [ "SRC-003", "SRC-012", "SRC-014", "SRC-015", "SRC-016", "SRC-017" ], "findings": [ { "id": "geo-crsid-finding-names-aliases", "name": "Definition identity versus display names and aliases", "description": "Separation of the authoritative definition identity from official names, display labels, aliases, legacy and vendor strings - none of which may be used to identify a CRS.", "source_refs": [ "SRC-003", "SRC-012", "SRC-015" ], "questions": [ { "id": "geo-crsid-q-name-official", "text": "What is the authority's official name for this CRS, and how does it differ from the label shown to users?", "kind": "definition", "answer_data": [ "authority object name as published", "display label in use", "language or locale of the label" ] }, { "id": "geo-crsid-q-name-classify", "text": "Which recorded strings are authority aliases, which are legacy or vendor labels, and which are unclassified?", "kind": "classification", "answer_data": [ "alias list with the alias scope the authority assigns", "legacy or vendor label list with originating system", "unclassified strings pending review" ] }, { "id": "geo-crsid-q-name-nonidentifying", "text": "What rule prevents any name, alias or label from being resolved back to a definition on its own?", "kind": "constraint", "answer_data": [ "stated non-identifying rule", "observed name-collision examples", "the required resolution path through authority and code" ] }, { "id": "geo-crsid-q-name-collision", "text": "Do two distinct CRS records share a name or alias here, and how is that ambiguity resolved?", "kind": "relationship", "answer_data": [ "colliding string", "the distinct authority codes involved", "disambiguation rule applied" ] } ], "data_elements": [ { "id": "geo-crsid-de-official-name", "name": "Official CRS name", "description": "Name of the CRS object as published by the governing authority.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-display-label", "name": "Display label", "description": "Locale-specific label presented to people; never used to resolve a definition.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "geo-crsid-de-alias", "name": "Alias", "description": "Alternative name recorded for the CRS, with the system or authority that uses it.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-015" ] }, { "id": "geo-crsid-de-alias-scope", "name": "Alias scope", "description": "Context in which an alias applies, distinguishing authority aliases from vendor or legacy strings.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-015" ] } ], "artifacts": [], "inline_only_rationale": "Names, aliases and labels are short reference strings that hang directly off the CRS reference and are already fully contained in the pinned and carried definition documents declared elsewhere in this model. Materialising them as a separate local artifact would create a competing name register alongside the authority that already governs those strings, and would invite exactly the name-based resolution this finding forbids." }, { "id": "geo-crsid-finding-deprecation-supersession", "name": "Deprecation, supersession and replacement chain", "description": "Validity status observed from the authority - deprecated flags, replacement pointers, superseded realizations - and what a consumer must do when a referenced CRS is no longer valid.", "source_refs": [ "SRC-014", "SRC-015", "SRC-016", "SRC-017" ], "questions": [ { "id": "geo-crsid-q-dep-status", "text": "What validity status does the authority currently assign to this CRS record?", "kind": "state", "answer_data": [ "deprecated flag as published", "status value as published by the authority", "timestamp at which the status was observed" ] }, { "id": "geo-crsid-q-dep-replacement", "text": "Which record supersedes this one, and is the supersession a correction, a re-realization or a policy replacement?", "kind": "lifecycle", "answer_data": [ "replacement authority code", "supersession reason as classified", "authority remark text quoted or referenced" ] }, { "id": "geo-crsid-q-dep-effective", "text": "From when is the deprecation effective, and how does that relate to data already captured in the deprecated CRS?", "kind": "temporal", "answer_data": [ "authority's effective or publication date for the deprecation", "local observation timestamp recorded separately", "window of already-captured data affected" ] }, { "id": "geo-crsid-q-dep-continued", "text": "Under what conditions may a deprecated CRS still be referenced, and who approves that?", "kind": "exception", "answer_data": [ "permitted-use condition", "named approving role", "expiry of the approval" ] }, { "id": "geo-crsid-q-dep-programme", "text": "Which national or regional modernization programme drives this supersession, and what coordinate change does it imply?", "kind": "relationship", "answer_data": [ "programme and responsible national authority", "successor frame or datum names", "stated magnitude of coordinate change" ] } ], "data_elements": [ { "id": "geo-crsid-de-record-status", "name": "Observed record status", "description": "Validity status as published by the authority at the time of observation.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-014", "SRC-015" ] }, { "id": "geo-crsid-de-deprecated-flag", "name": "Deprecated flag", "description": "Whether the authority marks the record deprecated; deprecated records remain present in the dataset.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-015" ] }, { "id": "geo-crsid-de-status-observed-at", "name": "Status observation time", "description": "When this model observed the status, kept distinct from the authority's own effective date.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-014" ] }, { "id": "geo-crsid-de-replacement-code", "name": "Replacement authority code", "description": "Authority code of a record that replaces this one, where the authority publishes one.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014", "SRC-015" ] }, { "id": "geo-crsid-de-supersession-reason", "name": "Supersession reason", "description": "Why the record was superseded: correction, re-realization, or national programme replacement.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-014", "SRC-016" ] } ], "artifacts": [], "inline_only_rationale": "Deprecation and supersession are states published, dated and maintained by the external CRS authority, which also keeps deprecated records in the dataset rather than removing them. This model records the observed status and the replacement pointer as inline reference data; issuing a local supersession notice would duplicate a registry change record whose authorship, effective dating and retention the custodian owns." } ] } ] }, { "id": "geo-crsid-bundle-definition", "name": "CRS Definition Content and Coordinate-System Semantics", "description": "The substantive content of a static CRS definition: the reference frame it is tied to, the geodetic constants it uses, the coordinate system and axes that give a tuple meaning, its subtype and composition, and the extent over which its use is valid.", "rationale": "ISO 19111 defines a CRS as a coordinate system related to an object by a datum, and requires axis name, abbreviation, direction and unit; WKT-CRS gives the concrete elements for datum, ellipsoid, prime meridian, coordinate system, axis order and usage extent. Every element here is normatively part of the definition, and omitting any one of them leaves coordinates uninterpretable.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011", "SRC-001", "SRC-018" ], "layers": [ { "id": "geo-crsid-layer-datum-and-cs", "name": "Datum, geodetic constants and coordinate system", "description": "The two required components of a CRS definition - the datum that ties it to the object and the coordinate system that gives its tuples meaning - together with the ellipsoid and prime meridian constants the datum depends on.", "source_refs": [ "SRC-003", "SRC-012", "SRC-001", "SRC-016", "SRC-017", "SRC-018" ], "findings": [ { "id": "geo-crsid-finding-datum-ensemble", "name": "Datum, datum ensemble and dynamic reference frame", "description": "Which reference frame the CRS is tied to, whether it is a single realization, an ensemble of realizations, or a dynamic frame with a reference epoch, and what each choice implies for coordinate comparability.", "source_refs": [ "SRC-003", "SRC-012", "SRC-016", "SRC-017" ], "questions": [ { "id": "geo-crsid-q-datum-which", "text": "Which datum or reference frame does this CRS use, and by what authority code is that frame identified?", "kind": "identity", "answer_data": [ "datum name as published", "datum authority code", "datum type: geodetic, vertical or engineering" ] }, { "id": "geo-crsid-q-datum-kind", "text": "Is the referenced frame a single named realization, a datum ensemble, or a dynamic reference frame?", "kind": "classification", "answer_data": [ "frame kind code", "ensemble member realizations where applicable", "ensemble positional accuracy as declared" ] }, { "id": "geo-crsid-q-datum-epoch", "text": "If the frame is dynamic, what is its frame reference epoch and what coordinate epoch applies to the coordinates themselves?", "kind": "temporal", "answer_data": [ "frame reference epoch as a decimal year", "coordinate epoch of the data as a decimal year", "explicit note where the two differ" ] }, { "id": "geo-crsid-q-datum-comparability", "text": "What comparability limit follows from citing an ensemble instead of a named realization?", "kind": "constraint", "answer_data": [ "stated accuracy of the ensemble", "use cases the ensemble accuracy rules out", "cases that require a specific realization to be named" ] }, { "id": "geo-crsid-q-datum-alignment", "text": "Which global or plate-fixed frame is this datum aligned to, and at what epoch was that alignment made?", "kind": "relationship", "answer_data": [ "aligned global frame name", "alignment epoch", "plate-motion note and the resulting divergence over time" ] } ], "data_elements": [ { "id": "geo-crsid-de-datum-name", "name": "Datum or reference frame name", "description": "Name of the datum, datum ensemble or dynamic reference frame the CRS is tied to.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-datum-code", "name": "Datum authority code", "description": "Authority code of the datum where the authority registers it separately.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012", "SRC-015" ] }, { "id": "geo-crsid-de-frame-kind", "name": "Frame kind", "description": "Whether the frame is a single realization, a datum ensemble, or a dynamic reference frame.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-frame-reference-epoch", "name": "Frame reference epoch", "description": "Epoch of the coordinates that define a dynamic reference frame, as a decimal year with its unit.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-017" ] }, { "id": "geo-crsid-de-coordinate-epoch", "name": "Coordinate epoch", "description": "Epoch of the data's own coordinates, required where the CRS is dynamic; distinct from any record timestamp.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "geo-crsid-de-ensemble-accuracy", "name": "Ensemble positional accuracy", "description": "Declared accuracy within which ensemble member realizations are treated as equivalent.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] } ], "artifacts": [], "inline_only_rationale": "The frame description is a small set of named values, authority references and epochs carried directly on the CRS record. The authoritative frame definition itself is already held by the pinned definition snapshot declared in this model, so a second artifact would restate it and give it a chance to diverge from the record it copies." }, { "id": "geo-crsid-finding-ellipsoid-primem", "name": "Ellipsoid and prime meridian", "description": "The geometric reference surface and the meridian from which longitudes are measured - the two constants that silently shift every coordinate value if assumed rather than read.", "source_refs": [ "SRC-003", "SRC-012" ], "questions": [ { "id": "geo-crsid-q-ellip-params", "text": "Which ellipsoid parameters define the reference surface, and in which length unit are they expressed?", "kind": "measurement", "answer_data": [ "ellipsoid name and authority code", "semi-major axis value with its length unit reference", "inverse flattening or semi-minor axis", "sphere flag where the ellipsoid is a sphere" ] }, { "id": "geo-crsid-q-primem-offset", "text": "Which prime meridian does the CRS use, and what is its longitude offset from Greenwich?", "kind": "identity", "answer_data": [ "prime meridian name and authority code", "longitude offset value", "angle unit reference for the offset" ] }, { "id": "geo-crsid-q-ellip-verify", "text": "How is it verified that these constants match the authority record rather than an implementation default?", "kind": "validation", "answer_data": [ "comparison result against the pinned snapshot", "numeric tolerance applied", "mismatch findings and their disposition" ] }, { "id": "geo-crsid-q-primem-exception", "text": "What is recorded when a CRS uses a non-Greenwich prime meridian or a spherical approximation?", "kind": "exception", "answer_data": [ "non-Greenwich meridian name and offset", "downstream impact note", "explicit acknowledgement by the responsible role" ] } ], "data_elements": [ { "id": "geo-crsid-de-ellipsoid-name", "name": "Ellipsoid name", "description": "Name of the ellipsoid, with its authority code where separately registered.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-semi-major-axis", "name": "Semi-major axis", "description": "Semi-major axis value with an explicit length unit reference; a bare number is not a valid value.", "value_kind": "quantity", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-inverse-flattening", "name": "Inverse flattening", "description": "Inverse flattening, or the semi-minor axis where the authority defines the ellipsoid that way.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-prime-meridian-name", "name": "Prime meridian name", "description": "Name of the meridian from which longitudes are quantified.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-prime-meridian-offset", "name": "Prime meridian offset", "description": "Longitude of the prime meridian relative to Greenwich, with an explicit angle unit reference.", "value_kind": "quantity", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] } ], "artifacts": [], "inline_only_rationale": "Ellipsoid and prime meridian are a handful of numeric parameters with unit references, read from the authority definition and carried inline on the CRS record. They have no standalone document of their own, and issuing one locally would compete with the registry entry that already defines them and is already snapshotted here." }, { "id": "geo-crsid-finding-cs-axis", "name": "Coordinate system type, dimension and axis definition", "description": "The coordinate system that gives a tuple meaning - its type and axis count - and, per axis, the name, abbreviation, direction, explicit order, unit and range that must be read from the authority definition and never inferred from a code, label or encoding convention.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011", "SRC-001", "SRC-018" ], "questions": [ { "id": "geo-crsid-q-cs-type", "text": "Which coordinate system type does this CRS use, and how many axes does it declare?", "kind": "classification", "answer_data": [ "coordinate system type code, for example ellipsoidal, Cartesian, spherical or vertical", "declared axis count", "authority coordinate system code where separately registered" ] }, { "id": "geo-crsid-q-axis-attributes", "text": "For each axis, what are its name, abbreviation, direction, unit of measure and declared range?", "kind": "measurement", "answer_data": [ "axis name", "axis abbreviation", "axis direction token", "unit of measure reference", "axis minimum and maximum with range meaning where declared" ] }, { "id": "geo-crsid-q-axis-order", "text": "What is the authority-defined position of each axis in the coordinate tuple, and in which element was that order read explicitly?", "kind": "spatial", "answer_data": [ "axis order integer per axis", "the definition element the order was read from", "explicit confirmation that order was not inferred from a code or label" ] }, { "id": "geo-crsid-q-axis-interface", "text": "Where a serialization or interface imposes its own axis order, how is the divergence from the authority order recorded and reconciled?", "kind": "interoperability", "answer_data": [ "order imposed by the interface or encoding", "authority order for the same CRS", "documented reconciliation and the party responsible for applying it" ] }, { "id": "geo-crsid-q-axis-evidence", "text": "What evidence shows that a producing system's tuple length and axis order actually match the authority definition?", "kind": "validation", "answer_data": [ "comparison test result", "sample coordinate plausibility check", "detected transposition or dimension-mismatch findings" ] } ], "data_elements": [ { "id": "geo-crsid-de-cs-type", "name": "Coordinate system type", "description": "Type of coordinate system used by the CRS, read from the authority definition.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-axis-count", "name": "Axis count", "description": "Number of axes the coordinate system declares; every tuple in scope must carry exactly this many ordinates.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-axis", "name": "Ordered axis list", "description": "The axes in authority order, each with name, abbreviation, direction, unit reference and position.", "value_kind": "collection", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-axis-direction", "name": "Axis direction", "description": "Direction token for an axis, such as north, east, up or a geocentric axis direction.", "value_kind": "code", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-axis-unit", "name": "Axis unit of measure", "description": "Reference to the unit of measure for an axis, resolved from a unit authority rather than restated.", "value_kind": "reference", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-012", "SRC-014" ] }, { "id": "geo-crsid-de-axis-order-source", "name": "Axis order source", "description": "The definition element from which axis order was read, recorded so the order is never taken on trust.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-012", "SRC-018" ] }, { "id": "geo-crsid-de-axis-range", "name": "Axis range", "description": "Minimum and maximum values for an axis with the meaning of the range, where the authority declares them.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] } ], "artifacts": [], "inline_only_rationale": "Axis facts are structured reference values that belong on the CRS record itself and are already fully carried by the pinned snapshot and the carried definition document declared elsewhere in this model. Minting a separate axis artifact would create a second, independently editable statement of the one thing that must never become ambiguous, and the evidence shows axis order already diverges enough across encodings and toolchains without a further local copy." } ] }, { "id": "geo-crsid-layer-subtype-applicability", "name": "CRS subtype, composition and declared applicability", "description": "Which subtype of CRS is in play, how projected, derived and compound CRS are composed from their parts, and the scope and domain of validity that bound legitimate use.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011", "SRC-016", "SRC-017" ], "findings": [ { "id": "geo-crsid-finding-crs-subtype", "name": "CRS subtype, base CRS and compound composition", "description": "The subtype of the definition - geodetic or geographic, projected, vertical, engineering, compound or derived - with the base CRS and defining-conversion reference for derived and projected CRS, and the ordered component list for compound CRS.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011" ], "questions": [ { "id": "geo-crsid-q-sub-which", "text": "Which CRS subtype does this definition instantiate, and which element states it?", "kind": "classification", "answer_data": [ "subtype code", "the authority element the subtype was read from", "the well-known text keyword where a text form exists" ] }, { "id": "geo-crsid-q-sub-base", "text": "For a projected or derived CRS, which base CRS and which defining conversion does it reference?", "kind": "composition", "answer_data": [ "base CRS authority code", "defining conversion method name and code", "reference to the conversion's parameter values held by the operations model" ] }, { "id": "geo-crsid-q-sub-compound", "text": "For a compound CRS, which component CRS are combined, in which order, and what does each contribute?", "kind": "relationship", "answer_data": [ "ordered component CRS codes", "contribution of each component: horizontal, vertical, temporal or parametric", "resulting combined axis count" ] }, { "id": "geo-crsid-q-sub-vertical", "text": "For a vertical or engineering CRS, what is the height or local reference and what must not be assumed about it?", "kind": "constraint", "answer_data": [ "vertical or engineering datum name and code", "gravity-related versus ellipsoidal height flag", "explicit statement that heights from different national datums are not interchangeable" ] }, { "id": "geo-crsid-q-sub-decision", "text": "When a subject needs horizontal and vertical position together, is a compound CRS or two separate references used, and why?", "kind": "decision", "answer_data": [ "chosen approach", "justification", "consumers affected by the choice" ] } ], "data_elements": [ { "id": "geo-crsid-de-crs-subtype", "name": "CRS subtype", "description": "Subtype of the CRS as defined by ISO 19111: geodetic, geographic, projected, vertical, engineering, compound, derived, parametric or temporal.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-base-crs-reference", "name": "Base CRS reference", "description": "Reference to the base CRS from which a projected or derived CRS is obtained.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-defining-conversion-reference", "name": "Defining conversion reference", "description": "Reference to the map projection or other conversion that defines a projected or derived CRS; the operation model owns the method and its execution.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-compound-component", "name": "Compound component reference", "description": "Ordered reference to a component CRS of a compound CRS, with its contribution.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-height-kind", "name": "Height kind", "description": "Whether a height is gravity-related or ellipsoidal, recorded so the two are never silently mixed.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-016" ] } ], "artifacts": [], "inline_only_rationale": "Subtype, base CRS, defining conversion and compound components are typed pointers into definitions that are themselves held by the authority and already snapshotted by this model or owned by the coordinate operation model. The substantive content sits in those referenced records, so this finding is carried purely as inline reference data and deliberately stops at the reference rather than copying a conversion definition it does not own." }, { "id": "geo-crsid-finding-scope-extent", "name": "Scope and domain of validity", "description": "The authority-stated purpose of the CRS and the geographic, vertical and temporal extent over which its use is valid, plus the applicability profile the adopting Dimension declares on top of it.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011", "SRC-016", "SRC-017" ], "questions": [ { "id": "geo-crsid-q-scope-fit", "text": "What scope does the authority state for this CRS, and does the intended use fall inside it?", "kind": "requirement", "answer_data": [ "authority scope text", "intended use description", "fit assessment and residual concerns" ] }, { "id": "geo-crsid-q-scope-extent", "text": "What is the declared domain of validity, and in which CRS is the bounding box itself expressed?", "kind": "spatial", "answer_data": [ "area description text", "bounding box coordinates", "CRS in which the bounding box is expressed", "vertical and temporal extent where declared" ] }, { "id": "geo-crsid-q-scope-outside", "text": "What follows when coordinates fall outside the declared domain of validity?", "kind": "constraint", "answer_data": [ "out-of-extent handling rule", "accuracy degradation note", "named approver required for continued use" ] }, { "id": "geo-crsid-q-scope-permitted", "text": "Which CRS are permitted for a given subject or collection, and who approved that list?", "kind": "ownership", "answer_data": [ "permitted CRS reference list", "designated storage CRS", "approving owner and approval timestamp" ] }, { "id": "geo-crsid-q-scope-advertise", "text": "How is the applicability profile expressed so a consumer knows which CRS it may ask for?", "kind": "interoperability", "answer_data": [ "advertised CRS identifiers", "declared default CRS", "coordinate epoch declaration where the storage CRS is dynamic" ] } ], "data_elements": [ { "id": "geo-crsid-de-authority-scope", "name": "Authority scope statement", "description": "The authority's stated purpose or scope for the CRS definition.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-extent-description", "name": "Extent description", "description": "Human-readable description of the geographic area over which the CRS is valid.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-de-bounding-box", "name": "Domain of validity bounding box", "description": "Bounding coordinates of the domain of validity, meaningless without the CRS they are expressed in.", "value_kind": "geometry", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012", "SRC-011" ] }, { "id": "geo-crsid-de-bounding-box-crs", "name": "Bounding box CRS", "description": "Explicit CRS reference for the bounding box values, never assumed from context.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-001" ] }, { "id": "geo-crsid-de-permitted-crs", "name": "Permitted CRS reference", "description": "A CRS reference the adopting Dimension permits for a given subject or collection.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "geo-crsid-de-storage-crs", "name": "Storage CRS reference", "description": "The CRS in which coordinates for a subject or collection are held, declared rather than inferred.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] } ], "artifacts": [ { "id": "geo-crsid-artifact-applicability-profile", "name": "CRS applicability profile", "description": "A format-neutral declaration, owned by the adopting Dimension, of which CRS references are permitted for a given subject or collection, which one is the storage CRS, and which coordinate epoch applies where that CRS is dynamic.", "media_or_form": [ "structured configuration record", "governance register entry", "collection or dataset metadata description" ], "serial": true, "identity_strategy": "Identified by the subject or collection it governs plus the profile's own sequence value. Where the adopting Dimension has no master-system identifier for the governed subject, a Dimension-assigned ULID is used. The profile never carries or reissues a CRS code.", "source_refs": [ "SRC-003", "SRC-011" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "geo-crsdyn-time-dependent-reference", "name": "Time-Dependent Reference Frame Context", "description": "Context establishing whether a coordinate reference evolves with time, which frame realization or ensemble applies, which epochs are in force, and which deformation model reference governs movement between epochs.", "rationale": "ISO 19111 and OGC Topic 2 make dynamic reference frames, frame reference epoch and coordinate epoch first-class concepts, and OGC API - Features Part 2 states plainly that coordinates referenced to a dynamic CRS are ambiguous if the coordinate epoch is unknown. An agent therefore cannot interpret, compare or operate on positional data without this bundle, and the epochs involved are routinely confused with record timestamps.", "source_refs": [ "SRC-003", "SRC-019", "SRC-011", "SRC-021", "SRC-023" ], "layers": [ { "id": "geo-crsdyn-frame-and-epoch", "name": "Reference Frame Dynamics and Epoch Declaration", "description": "Whether the underlying reference frame is static, plate-fixed or dynamic, the frame reference epoch that defines a dynamic frame, the coordinate epoch attached to coordinate values, and the strict separation of these geodetic instants from record time.", "source_refs": [ "SRC-003", "SRC-019", "SRC-012", "SRC-011", "SRC-027" ], "findings": [ { "id": "geo-crsdyn-frame-dynamics", "name": "Reference frame dynamics classification", "description": "Declares explicitly whether the reference frame underlying a coordinate reference is static, plate-fixed or dynamic in the ISO 19111 sense that its defining parameters include time evolution, and records the frame reference epoch when the frame is dynamic. Frame dynamics is never inferred from a CRS name or code.", "source_refs": [ "SRC-003", "SRC-019", "SRC-012", "SRC-021", "SRC-016" ], "questions": [ { "id": "geo-crsdyn-q-frame-kind", "text": "Is the underlying reference frame static, plate-fixed or dynamic, and which defining clause or register attribute establishes that?", "kind": "classification", "answer_data": [ "frame dynamics classification code", "citing clause, register attribute or WKT DYNAMIC element that establishes it", "name of the declaring authority" ] }, { "id": "geo-crsdyn-q-frame-epoch-value", "text": "What frame reference epoch defines this dynamic reference frame, and in which notation is it expressed?", "kind": "temporal", "answer_data": [ "frame reference epoch as a decimal year in the Gregorian calendar", "equivalent RFC 3339 instant with seconds and explicit offset", "statement of which notation is authoritative for geodetic arithmetic" ] }, { "id": "geo-crsdyn-q-frame-authority", "text": "Which authority defines and publishes this frame realization, under which document and at which version?", "kind": "authority", "answer_data": [ "defining authority name", "defining document identifier and version", "publication date of the realization" ] }, { "id": "geo-crsdyn-q-frame-static-justification", "text": "What evidence justifies treating the frame as static for the subject's stated positional tolerance?", "kind": "evidence", "answer_data": [ "stated positional tolerance with unit", "expected intra-frame velocity or displacement magnitude over the data lifetime", "justification note with approving role and decision reference" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-frame-dynamics-code", "name": "Frame dynamics code", "description": "Controlled value declaring the frame as static, plate-fixed dynamic, or globally dynamic, per the ISO 19111 dynamic reference frame concept.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-016" ] }, { "id": "geo-crsdyn-de-frame-reference-epoch", "name": "Frame reference epoch", "description": "The epoch of the coordinates that define a dynamic reference frame, stored as a decimal year with an equivalent RFC 3339 instant. Present only when the frame is dynamic; it is a property of the frame definition, not of any record.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012", "SRC-021" ] }, { "id": "geo-crsdyn-de-frame-authority-reference", "name": "Frame defining authority reference", "description": "Resolvable reference to the authority and document that define the frame realization, with the document version.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-021", "SRC-016", "SRC-024" ] }, { "id": "geo-crsdyn-de-static-treatment-decision", "name": "Static treatment decision", "description": "Recorded decision, with tolerance and approver, to treat a frame as static for a stated purpose despite known time evolution.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-023", "SRC-022" ] } ], "artifacts": [], "inline_only_rationale": "This finding is purely declarative reference data read from the frame's own defining publication or register entry. It produces no document of its own: the authoritative artefact is the realization publication owned by the geodetic authority, and creating a local artefact here would imply that this model publishes or maintains frame realizations, which the boundary notes exclude." }, { "id": "geo-crsdyn-coordinate-epoch-binding", "name": "Coordinate epoch and coordinate metadata binding", "description": "Binds a coordinate set to its coordinate reference and, when that reference is dynamic, to the coordinate epoch, at an explicitly declared binding scope. Records the carrier that conveys the epoch and the disposition when no epoch is available.", "source_refs": [ "SRC-003", "SRC-011", "SRC-025", "SRC-026", "SRC-027" ], "questions": [ { "id": "geo-crsdyn-q-epoch-requirement", "text": "Is a coordinate epoch required for this coordinate set, and which rule or policy makes it required?", "kind": "requirement", "answer_data": [ "epoch requirement flag", "citation of the requiring clause, recommendation or adopting-Dimension policy", "distinction between normative recommendation and local policy obligation" ] }, { "id": "geo-crsdyn-q-epoch-binding-scope", "text": "At which scope is the coordinate epoch bound — dataset, layer, feature or individual coordinate tuple?", "kind": "composition", "answer_data": [ "binding scope code", "identifier of the bound coordinate set at that scope", "note on whether the carrier can preserve the scope on round trip" ] }, { "id": "geo-crsdyn-q-epoch-value-recorded", "text": "Which coordinate epoch value applies to these coordinates, in decimal year and as an RFC 3339 instant?", "kind": "temporal", "answer_data": [ "coordinate epoch as decimal year", "equivalent RFC 3339 instant with seconds and explicit offset", "source of the epoch value (survey record, producer declaration or register default)" ] }, { "id": "geo-crsdyn-q-epoch-absent", "text": "What disposition is recorded when a dynamic reference is used but no coordinate epoch can be established?", "kind": "exception", "answer_data": [ "unresolved-epoch state code", "prohibited uses while unresolved", "escalation target and reason text" ] }, { "id": "geo-crsdyn-q-epoch-carrier", "text": "Which carrier field conveys the coordinate epoch in the chosen encoding, and what is lost if the carrier is absent?", "kind": "interoperability", "answer_data": [ "carrier field identifier such as a WKT EPOCH subnode, an srs table epoch column or a format-specific epoch key", "loss statement when the carrier cannot hold the epoch", "declared degradation or rejection decision" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-coordinate-epoch", "name": "Coordinate epoch", "description": "The epoch to which coordinates in a dynamic coordinate reference system are referenced, as a decimal year with an RFC 3339 equivalent. It is not the time the record was created, observed or ingested.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-011", "SRC-027" ] }, { "id": "geo-crsdyn-de-epoch-binding-scope", "name": "Epoch binding scope", "description": "Controlled value stating whether the coordinate epoch is bound at dataset, layer, feature or coordinate-tuple level.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-027" ] }, { "id": "geo-crsdyn-de-crs-reference", "name": "Coordinate reference identifier", "description": "Governed IRI, or register authority plus code plus register version, identifying the coordinate reference the coordinate set is expressed in.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-011", "SRC-012", "SRC-024" ] }, { "id": "geo-crsdyn-de-epoch-absence-disposition", "name": "Epoch absence disposition", "description": "State recorded when a dynamic reference lacks a coordinate epoch, together with the uses it blocks.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-023" ] } ], "artifacts": [ { "id": "geo-crsdyn-art-coordinate-metadata-record", "name": "Coordinate metadata record", "description": "A record binding one coordinate set to its coordinate reference and, where the reference is dynamic, to its coordinate epoch and binding scope, corresponding to the ISO 19111 coordinate metadata concept and the WKT COORDINATEMETADATA construct.", "media_or_form": [ "format-neutral structured record", "WKT-CRS COORDINATEMETADATA text with EPOCH", "PROJJSON CoordinateMetadata object", "carrier-native epoch field such as a spatial reference table epoch column or a coordinate epoch key" ], "serial": false, "identity_strategy": "Identified first by the authoritative master-system identifier of the coordinate set it annotates; failing that by the governed CRS IRI combined with the declared coordinate epoch and binding scope; failing that by a UUID or ULID assigned by the adopting Dimension. Neither the coordinate epoch nor any date is used as the identifier.", "source_refs": [ "SRC-003", "SRC-012", "SRC-025", "SRC-026", "SRC-027" ] } ], "inline_only_rationale": null }, { "id": "geo-crsdyn-epoch-time-semantics", "name": "Separation of epoch and record time semantics", "description": "Keeps coordinate epoch, observation time, transformation reference epoch, definition publication time and ingestion time as distinct recorded roles, so that a geodetic reference instant is never read as a record timestamp and a record timestamp is never substituted for an epoch.", "source_refs": [ "SRC-003", "SRC-020", "SRC-022", "SRC-023", "SRC-027" ], "questions": [ { "id": "geo-crsdyn-q-time-role-definitions", "text": "Which distinct time roles are recorded for this coordinate set, and how is each one defined?", "kind": "definition", "answer_data": [ "enumerated time roles in use", "definition text and citing clause per role", "statement of which roles are mandatory for the subject" ] }, { "id": "geo-crsdyn-q-observation-versus-epoch", "text": "Does the observation time of these coordinates differ from their coordinate epoch, and what reconciled them?", "kind": "temporal", "answer_data": [ "observation time as an RFC 3339 instant with offset", "coordinate epoch as decimal year", "citation of the operation or model applied to reconcile them, without its execution details" ] }, { "id": "geo-crsdyn-q-definition-and-ingest-time", "text": "When was the cited reference or deformation-model definition published, and when was this record ingested?", "kind": "provenance", "answer_data": [ "definition publication date of the cited authority document or register release", "ingestion timestamp in RFC 3339 with offset", "identity of the ingesting agent or process" ] }, { "id": "geo-crsdyn-q-epoch-misread-guard", "text": "Which validation prevents a coordinate epoch from being stored or interpreted as a record creation timestamp?", "kind": "validation", "answer_data": [ "validation rule identifier and description", "failure mode it blocks", "action taken on failure" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-observation-time", "name": "Observation time", "description": "The instant at which the position was observed or surveyed, in RFC 3339 with seconds and an explicit offset. Distinct from the coordinate epoch the coordinates are expressed at.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-023" ] }, { "id": "geo-crsdyn-de-transformation-reference-epoch", "name": "Transformation reference epoch", "description": "The epoch a cited coordinate operation or point motion operation is parameterized against, recorded as a citation-side attribute only.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-020" ] }, { "id": "geo-crsdyn-de-definition-published-at", "name": "Definition publication time", "description": "Publication date of the cited reference definition, register release or deformation-model version, as declared by its publishing authority.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022", "SRC-024" ] }, { "id": "geo-crsdyn-de-ingested-at", "name": "Ingestion time", "description": "The instant this model's record was created or last refreshed from its source, in RFC 3339 with seconds and an explicit offset.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-024" ] }, { "id": "geo-crsdyn-de-time-role-map", "name": "Time role map", "description": "Explicit mapping from each recorded time value to its declared semantic role, preventing silent reuse of one value for another role.", "value_kind": "object", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-027" ] } ], "artifacts": [], "inline_only_rationale": "The content here is a set of discrete typed time values plus their role mapping, all carried inline on the record they qualify. Emitting a separate artefact would create a second place where the same instants live and would reintroduce exactly the conflation the finding exists to prevent, so this context is deliberately inline and reference-only." } ] }, { "id": "geo-crsdyn-realization-and-deformation", "name": "Datum Realization and Deformation Model References", "description": "Whether a coordinate reference resolves to a specific datum realization or to a datum ensemble, and which published deformation or point-motion model reference a consumer must apply to move between epochs.", "source_refs": [ "SRC-003", "SRC-020", "SRC-021", "SRC-022", "SRC-023", "SRC-024" ], "findings": [ { "id": "geo-crsdyn-datum-ensemble-resolution", "name": "Datum ensemble versus specific realization", "description": "Records whether the reference resolves to a datum ensemble of multiple realizations treated as not significantly different, or to one named realization member, together with the published ensemble accuracy and the admissibility decision for the subject's tolerance.", "source_refs": [ "SRC-003", "SRC-019", "SRC-012", "SRC-023", "SRC-024" ], "questions": [ { "id": "geo-crsdyn-q-ensemble-or-member", "text": "Does this coordinate reference resolve to a datum ensemble or to a single named realization member?", "kind": "identity", "answer_data": [ "resolution kind code", "ensemble identifier where applicable", "member realization identifier where determinable" ] }, { "id": "geo-crsdyn-q-ensemble-accuracy", "text": "What ensemble accuracy is published for this ensemble, and does it satisfy the subject's positional tolerance?", "kind": "measurement", "answer_data": [ "published ensemble accuracy value with unit", "subject positional tolerance with unit", "comparison outcome and approving role" ] }, { "id": "geo-crsdyn-q-ensemble-members", "text": "Which realization members belong to the ensemble, and which member actually produced these coordinates?", "kind": "relationship", "answer_data": [ "list of member realization references", "producing member reference or explicit undetermined state", "evidence supporting the producing-member attribution" ] }, { "id": "geo-crsdyn-q-ensemble-prohibition", "text": "Under which constraint is ensemble-level referencing prohibited for this subject?", "kind": "constraint", "answer_data": [ "constraint statement and its source", "tolerance threshold that triggers it", "required substitute action, such as citing a specific member" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-ensemble-reference", "name": "Datum ensemble reference", "description": "Resolvable reference to the datum ensemble a coordinate reference resolves to, where ensemble-level referencing is used.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsdyn-de-realization-member-reference", "name": "Realization member reference", "description": "Resolvable reference to the specific datum realization that produced or governs the coordinates.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-021", "SRC-024" ] }, { "id": "geo-crsdyn-de-ensemble-accuracy", "name": "Published ensemble accuracy", "description": "The ensemble accuracy declared by the defining authority, as a quantity with unit, copied as reference context and not recomputed.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsdyn-de-ensemble-admissibility", "name": "Ensemble admissibility decision", "description": "Recorded decision on whether ensemble-level referencing is admissible for the subject, with tolerance and approver.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-023", "SRC-024" ] } ], "artifacts": [], "inline_only_rationale": "Ensemble composition, member list and published ensemble accuracy are register-owned facts resolved against the defining authority. This model carries only the resolution outcome and the local admissibility decision as inline reference data; materialising a local ensemble document would duplicate register content that the boundary notes assign to the register authority." }, { "id": "geo-crsdyn-deformation-model-reference", "name": "Deformation and point-motion model reference", "description": "Cites the deformation or point-motion model a consumer must apply to propagate coordinates between epochs, with identifier, publisher, version and declared spatial and temporal extent, and records what happens outside that extent. No displacement is computed, interpolated or stored here.", "source_refs": [ "SRC-003", "SRC-020", "SRC-016", "SRC-022" ], "questions": [ { "id": "geo-crsdyn-q-deformation-citation", "text": "Which deformation or point-motion model, at which published version, governs epoch propagation for this reference?", "kind": "provenance", "answer_data": [ "deformation model identifier", "published version label as issued by the publisher", "resolvable location of the published model" ] }, { "id": "geo-crsdyn-q-deformation-extent", "text": "What spatial and temporal extent bounds the cited deformation model's declared validity?", "kind": "spatial", "answer_data": [ "spatial extent as a bounding geometry or named region with its own CRS reference", "temporal validity interval with RFC 3339 bounds", "statement that the model is undefined outside these bounds" ] }, { "id": "geo-crsdyn-q-deformation-ownership", "text": "Which authority publishes, versions and evaluates the cited deformation model?", "kind": "ownership", "answer_data": [ "publishing authority name", "statement that evaluation and grid distribution are owned externally", "reference to the model that owns operation execution" ] }, { "id": "geo-crsdyn-q-deformation-out-of-extent", "text": "What is recorded when the subject location or required epoch falls outside the cited model's declared extent?", "kind": "exception", "answer_data": [ "out-of-extent state code", "prohibited uses while out of extent", "alternative model reference or explicit gap record" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-deformation-model-reference", "name": "Deformation model reference", "description": "Resolvable citation of the deformation or point-motion model that governs epoch propagation, carried as a reference only.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-020", "SRC-022" ] }, { "id": "geo-crsdyn-de-deformation-model-version", "name": "Deformation model version label", "description": "The publisher's version label for the cited model, recorded verbatim even where the publisher names versions by approximate publication date; the label is not treated as a date value or an identifier of this record.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022", "SRC-020" ] }, { "id": "geo-crsdyn-de-deformation-applicability-extent", "name": "Deformation applicability extent", "description": "The spatial extent within which the cited model is declared valid, expressed with its own coordinate reference.", "value_kind": "geometry", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-020" ] }, { "id": "geo-crsdyn-de-out-of-extent-disposition", "name": "Out-of-extent disposition", "description": "State and prohibited-use statement recorded when the subject falls outside the cited model's spatial or temporal extent.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-020", "SRC-022" ] } ], "artifacts": [], "inline_only_rationale": "The deformation model itself, its element decomposition, its grids and its evaluation are published, versioned and executed by the geodetic authority that owns it. This model records only a resolvable citation, a version pin and an applicability note, all of which are reference values on the record. Declaring a local artefact would imply custody of the grid or of the displacement computation, which the composition links assign to the deformation-model publisher and to the coordinate-operation model." } ] } ] }, { "id": "geo-crsdyn-composite-and-nonregister", "name": "Composite, Temporal and Non-Register Definition Context", "description": "Context for references that are not a single current horizontal register entry: temporal and vertical components, compound composition and ordering, and definitions that are unknown, custom, engineering-local, superseded or preserved as governed snapshots.", "rationale": "ISO 19111 and WKT-CRS admit compound, temporal, vertical and engineering references as first-class constructs, registers version and deprecate entries, and carriers such as GeoPackage explicitly provide undefined cartesian and undefined geographic rows. Positional data therefore routinely arrives with references that a bare code cannot resolve, and an agent needs an explicit sufficiency test and a pinning mechanism rather than a silent default.", "source_refs": [ "SRC-003", "SRC-019", "SRC-012", "SRC-024", "SRC-025", "SRC-026" ], "layers": [ { "id": "geo-crsdyn-temporal-and-vertical", "name": "Temporal and Vertical Reference Components", "description": "The non-horizontal components a position may be referenced against: a temporal axis with its datum origin, unit, calendar and time scale, and a vertical frame with its dynamics and geopotential realization.", "source_refs": [ "SRC-003", "SRC-012", "SRC-016", "SRC-025", "SRC-028" ], "findings": [ { "id": "geo-crsdyn-temporal-reference", "name": "Temporal reference, datum origin and time scale", "description": "Records the temporal datum origin, the temporal axis kind and unit, the calendar in use, and the time scale the axis realizes, together with the leap-second exposure that follows from choosing a rotation-linked scale.", "source_refs": [ "SRC-003", "SRC-012", "SRC-028" ], "questions": [ { "id": "geo-crsdyn-q-temporal-origin", "text": "What is the temporal datum origin of this axis, and in which calendar is it expressed?", "kind": "definition", "answer_data": [ "temporal datum origin as an RFC 3339 instant with offset", "calendar identifier", "citing definition clause or register entry" ] }, { "id": "geo-crsdyn-q-time-scale-realized", "text": "Which time scale does the temporal axis realize, and which authority maintains that scale?", "kind": "authority", "answer_data": [ "time scale identifier such as an atomic, coordinated or navigation-system scale", "maintaining authority name", "reference to the authority's defining resolution or bulletin" ] }, { "id": "geo-crsdyn-q-temporal-axis-kind", "text": "Is the temporal axis a date-time, a temporal count or a temporal measure, and what unit does it use?", "kind": "classification", "answer_data": [ "temporal axis kind code", "axis unit identifier and conversion factor where applicable", "axis direction and range meaning where declared" ] }, { "id": "geo-crsdyn-q-leap-second-exposure", "text": "How are leap seconds and the decided future change to the maximum UT1-UTC difference handled on this axis?", "kind": "constraint", "answer_data": [ "leap-second handling statement for the chosen scale", "affected comparison or arithmetic operations", "review trigger tied to the announced change and its owning authority" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-temporal-datum-origin", "name": "Temporal datum origin", "description": "The origin instant of the temporal datum, in RFC 3339 with seconds and an explicit offset, with the calendar named separately.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsdyn-de-time-scale-code", "name": "Time scale code", "description": "Controlled value naming the time scale the temporal axis realizes, together with its maintaining authority.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-028", "SRC-003" ] }, { "id": "geo-crsdyn-de-temporal-axis-kind", "name": "Temporal axis kind", "description": "Controlled value distinguishing a date-time axis, a temporal count axis and a temporal measure axis.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsdyn-de-temporal-axis-unit", "name": "Temporal axis unit", "description": "Unit of the temporal axis with its conversion factor where the unit is not a base unit.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012" ] } ], "artifacts": [], "inline_only_rationale": "These are a small set of declared parameters that qualify a temporal axis and are always read together with the reference definition they belong to. The authoritative documents are the time-scale authority's resolutions and the CRS definition itself, both external; a local artefact would either duplicate the pinned definition snapshot or imply that this model realizes a time scale, which the boundary notes exclude." }, { "id": "geo-crsdyn-vertical-reference", "name": "Vertical reference component and its dynamics", "description": "Records the vertical reference frame heights or depths refer to, whether that frame is static or dynamic with its own frame reference epoch, the axis direction and unit, and the geoid or geopotential model version through which the frame is realized.", "source_refs": [ "SRC-003", "SRC-012", "SRC-016", "SRC-025" ], "questions": [ { "id": "geo-crsdyn-q-vertical-frame-identity", "text": "Which vertical reference frame do these heights or depths refer to?", "kind": "identity", "answer_data": [ "vertical reference frame identifier with register authority and version", "frame name as published", "extent over which the frame is declared valid" ] }, { "id": "geo-crsdyn-q-vertical-dynamics", "text": "Is the vertical reference frame static or dynamic, and does it carry its own frame reference epoch distinct from the horizontal frame?", "kind": "state", "answer_data": [ "vertical frame dynamics code", "vertical frame reference epoch where dynamic", "statement of whether it differs from the horizontal frame epoch" ] }, { "id": "geo-crsdyn-q-vertical-realization", "text": "Through which geoid or geopotential model version is the vertical frame realized?", "kind": "provenance", "answer_data": [ "geoid or geopotential model identifier and version", "publishing authority", "publication date of that model version" ] }, { "id": "geo-crsdyn-q-vertical-axis-sense", "text": "Is the vertical axis a height with up positive or a depth with down positive, and in what unit?", "kind": "measurement", "answer_data": [ "axis direction code", "axis unit identifier", "note on sounding or hydrographic sign conventions where they apply" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-vertical-frame-reference", "name": "Vertical reference frame identifier", "description": "Governed identifier of the vertical reference frame that heights or depths are referenced to.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-024" ] }, { "id": "geo-crsdyn-de-vertical-frame-dynamics", "name": "Vertical frame dynamics code", "description": "Controlled value declaring the vertical frame as static or dynamic, tracked separately from horizontal frame dynamics.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-016" ] }, { "id": "geo-crsdyn-de-geopotential-model-reference", "name": "Geoid or geopotential model reference", "description": "Reference to the geoid or geopotential model version realizing the vertical frame, carried as a citation only.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016", "SRC-003" ] }, { "id": "geo-crsdyn-de-vertical-axis-direction", "name": "Vertical axis direction", "description": "Controlled value stating whether the axis increases upward as a height or downward as a depth, with its unit.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] } ], "artifacts": [], "inline_only_rationale": "The vertical component is a set of declared attributes resolved against the register entry and the geoid model publication, both externally owned. Where a definition text is needed it is captured once by the pinned definition snapshot artefact rather than duplicated here, so this finding holds inline reference data only." } ] }, { "id": "geo-crsdyn-compound-composition", "name": "Compound Reference Composition", "description": "How independent component references are combined into one compound coordinate reference, in what declared order, and what axis sequence and epoch applicability result.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011", "SRC-026" ], "findings": [ { "id": "geo-crsdyn-compound-components", "name": "Compound reference components and ordering", "description": "Enumerates the component references of a compound coordinate reference, their declared sequence, the resulting axis order and units, the independence condition that admits the combination, and how a coordinate epoch scopes across components.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011", "SRC-026" ], "questions": [ { "id": "geo-crsdyn-q-compound-components", "text": "Which component coordinate references make up this compound reference?", "kind": "composition", "answer_data": [ "ordered list of component reference identifiers", "component kind per entry, such as horizontal, vertical, temporal or parametric", "register authority and version per component" ] }, { "id": "geo-crsdyn-q-compound-order", "text": "In which order are the components declared, and what axis sequence and units result from that order?", "kind": "constraint", "answer_data": [ "component sequence indices", "resulting ordered axis list with direction and unit per axis", "statement that axis order is recorded explicitly and never inferred from a code" ] }, { "id": "geo-crsdyn-q-compound-independence", "text": "What evidence shows the components are independent, as a compound reference requires?", "kind": "evidence", "answer_data": [ "independence assessment outcome", "reason text citing the definition of independence between component references", "assessing role and decision reference" ] }, { "id": "geo-crsdyn-q-compound-epoch-scope", "text": "If any component is dynamic, does the coordinate epoch apply to that component alone or to the whole compound reference?", "kind": "relationship", "answer_data": [ "epoch applicability scope code", "identifier of the component the epoch qualifies", "note on how the carrier expresses that scope" ] }, { "id": "geo-crsdyn-q-compound-degradation", "text": "How is the compound reference degraded or rejected when a consumer supports only one component?", "kind": "interoperability", "answer_data": [ "degradation decision such as reject, project to a named component, or hold", "component retained and components dropped", "warning text propagated to the consumer" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-component-references", "name": "Component reference list", "description": "Ordered collection of the component coordinate reference identifiers that constitute the compound reference.", "value_kind": "collection", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsdyn-de-component-sequence-index", "name": "Component sequence index", "description": "Explicit position of each component in the declared compound order, used as the canonical ordering key.", "value_kind": "number", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-012", "SRC-026" ] }, { "id": "geo-crsdyn-de-resulting-axis-order", "name": "Resulting axis order", "description": "The ordered axis list produced by the compound composition, each axis carrying name, direction and unit.", "value_kind": "collection", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsdyn-de-epoch-applicability-scope", "name": "Epoch applicability scope", "description": "Controlled value stating whether a coordinate epoch qualifies one named component or the whole compound reference.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-011" ] } ], "artifacts": [ { "id": "geo-crsdyn-art-compound-composition-record", "name": "Compound reference composition record", "description": "A record listing the component references of a compound coordinate reference with their declared sequence, the resulting axis order with directions and units, the independence assessment outcome and the epoch applicability scope.", "media_or_form": [ "format-neutral structured record", "WKT-CRS COMPOUNDCRS text", "PROJJSON CompoundCRS object" ], "serial": false, "identity_strategy": "Identified first by the register authority's own code and register version where the compound reference is a register entry; otherwise by a governed IRI constructed from the ordered component identifiers; otherwise by a UUID or ULID assigned by the adopting Dimension. No date or epoch is used as the identifier.", "source_refs": [ "SRC-003", "SRC-012", "SRC-026" ] } ], "inline_only_rationale": null } ] }, { "id": "geo-crsdyn-nonregister-definitions", "name": "Non-Register, Custom and Pinned Definitions", "description": "References that are not resolvable as a current register entry — unknown, custom, engineering-local, deprecated or superseded — and the governed snapshots that keep historic coordinates interpretable.", "source_refs": [ "SRC-003", "SRC-012", "SRC-024", "SRC-001", "SRC-025", "SRC-026" ], "findings": [ { "id": "geo-crsdyn-nonregister-sufficiency", "name": "Unknown, custom and engineering definition sufficiency", "description": "Tests whether a non-register reference carries a resolvable definition or a complete governed snapshot sufficient to interpret coordinates without external lookup. A bare local name or a numeric code alone is insufficient and produces an unresolved state that blocks positional use.", "source_refs": [ "SRC-003", "SRC-012", "SRC-024", "SRC-001", "SRC-025" ], "questions": [ { "id": "geo-crsdyn-q-nonregister-kind", "text": "Is this reference unknown, custom, engineering-local, or a deprecated or superseded register entry?", "kind": "classification", "answer_data": [ "non-register kind code", "evidence for the classification such as an undefined srs row, a missing register match or a deprecation flag", "originating system or producer" ] }, { "id": "geo-crsdyn-q-definition-sufficiency", "text": "Does this reference carry a resolvable definition or a complete governed snapshot sufficient to interpret coordinates without external lookup?", "kind": "validation", "answer_data": [ "sufficiency outcome code", "list of missing defining elements where insufficient, such as datum, ellipsoid, prime meridian, axes, units or anchor", "rule citation stating that a bare local name or numeric code is insufficient" ] }, { "id": "geo-crsdyn-q-engineering-anchor", "text": "For an engineering or local reference, which anchor point, orientation and carrier object define it, and does that carrier move?", "kind": "spatial", "answer_data": [ "anchor point description with its own coordinate reference where known", "axis orientation definition", "carrier object identity and whether it is fixed or moving, with the moving-carrier consequence for epoch semantics" ] }, { "id": "geo-crsdyn-q-unresolved-state", "text": "Which state is recorded when a definition cannot be resolved, and which uses are then prohibited?", "kind": "state", "answer_data": [ "unresolved state code", "prohibited operations while unresolved, such as merging, reprojection or distance computation", "review owner and re-evaluation trigger" ] }, { "id": "geo-crsdyn-q-custom-definition-approval", "text": "Who may register, amend or approve a custom definition for the adopting Dimension?", "kind": "access", "answer_data": [ "authorized role names", "approval record reference", "restriction note where the definition discloses a sensitive site anchor" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-definition-sufficiency-state", "name": "Definition sufficiency state", "description": "Controlled value recording whether the reference is fully resolvable, sufficient by governed snapshot, or unresolved and blocking.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-025" ] }, { "id": "geo-crsdyn-de-local-definition-payload", "name": "Local definition payload", "description": "The complete definition text supplied with a non-register reference, in a canonical encoding, when no register entry resolves it.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012", "SRC-025", "SRC-026" ] }, { "id": "geo-crsdyn-de-engineering-anchor", "name": "Engineering anchor description", "description": "Anchor point, axis orientation and carrier object for an engineering or local reference, including whether the carrier is fixed or moving.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsdyn-de-definition-resolution-uri", "name": "Definition resolution identifier", "description": "Governed IRI or register locator at which the definition can be resolved, absent for purely local definitions.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-024" ] } ], "artifacts": [ { "id": "geo-crsdyn-art-custom-definition-package", "name": "Custom reference definition package", "description": "A self-contained definition for a non-register coordinate reference, complete enough to interpret coordinates without external lookup: datum or anchor, ellipsoid or carrier description, axis names, directions and units, and any conversion parameters.", "media_or_form": [ "WKT-CRS text carrying the full definition", "PROJJSON CRS object", "format-neutral parameter set with anchor and axis descriptions" ], "serial": false, "identity_strategy": "Identified first by the originating master system's own identifier for the local reference where one exists; otherwise by a governed IRI minted in the adopting Dimension's namespace, which must not shadow any register code; otherwise by a UUID or ULID. A site name, project name or date is never used as the identifier.", "source_refs": [ "SRC-003", "SRC-012", "SRC-025", "SRC-026" ] } ], "inline_only_rationale": null }, { "id": "geo-crsdyn-pinned-snapshot", "name": "Pinned definition snapshot and register provenance", "description": "Preserves the exact canonical definition text, register authority, code and register version in force when coordinates were produced, with an integrity value, so that later register revisions, deprecations or supersessions do not silently change how historic coordinates are interpreted.", "source_refs": [ "SRC-003", "SRC-012", "SRC-011", "SRC-024", "SRC-026" ], "questions": [ { "id": "geo-crsdyn-q-register-identity", "text": "Which register authority, register version and code identify the definition in force for these coordinates?", "kind": "identity", "answer_data": [ "register authority code", "register version or dataset release identifier", "definition code within that register, plus the governed IRI form where available" ] }, { "id": "geo-crsdyn-q-snapshot-integrity", "text": "Which canonical form and integrity value fix the pinned definition text against silent drift?", "kind": "quality", "answer_data": [ "canonical form identifier, such as normalized WKT-CRS text or a named JSON schema version", "digest algorithm and digest value", "verification outcome and last verification timestamp" ] }, { "id": "geo-crsdyn-q-snapshot-supersession", "text": "How is a pinned snapshot marked when the register later deprecates or supersedes the entry?", "kind": "lifecycle", "answer_data": [ "supersession state code", "superseding entry reference where the register names one", "observation timestamp of the upstream change, recorded separately from the register's own publication date" ] }, { "id": "geo-crsdyn-q-snapshot-retention", "text": "How long must a pinned snapshot be retained relative to the coordinates that cite it, and who executes disposal?", "kind": "retention", "answer_data": [ "retention rule tied to the life of the citing coordinate sets", "tombstone content preserved after disposal", "reference to the policy and master system that own disposal execution" ] } ], "data_elements": [ { "id": "geo-crsdyn-de-register-authority-code", "name": "Register authority code", "description": "Controlled value naming the register authority that issued the definition, such as a geodetic parameter register or a naming authority.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-012", "SRC-024" ] }, { "id": "geo-crsdyn-de-register-version", "name": "Register version", "description": "The register release or dataset version in force when the definition was pinned, recorded verbatim as the authority publishes it.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-024", "SRC-012" ] }, { "id": "geo-crsdyn-de-definition-code", "name": "Definition code", "description": "The authority's own code for the definition, used as the primary identifier component together with the register authority and version.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-012", "SRC-024" ] }, { "id": "geo-crsdyn-de-definition-digest", "name": "Definition snapshot digest", "description": "Digest computed over the canonical definition text plus register authority, version and code, used to detect drift or corruption.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012", "SRC-026" ] }, { "id": "geo-crsdyn-de-supersession-state", "name": "Supersession state", "description": "Controlled value recording whether the pinned entry remains current, has been deprecated upstream, or has been superseded, with the superseding reference.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-024" ] } ], "artifacts": [ { "id": "geo-crsdyn-art-definition-snapshot", "name": "Pinned reference definition snapshot", "description": "An immutable capture of one coordinate reference definition as it stood at a named register version, holding the canonical definition text, the register authority, version and code, the digest and the supersession state. Successive captures of the same definition across register versions form a sequence.", "media_or_form": [ "normalized WKT-CRS text", "PROJJSON document", "register export record in a format-neutral structured form" ], "serial": true, "identity_strategy": "Identified first by the register authority's code together with the register version, which is the authoritative master-system identifier for the definition; otherwise by the governed CRS IRI including its version segment; otherwise by a UUID or ULID assigned by the adopting Dimension. Snapshot sequence position is a separate serial number and never a date, even where the upstream publisher names releases by date.", "source_refs": [ "SRC-012", "SRC-011", "SRC-024", "SRC-026" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "geo-xform-operation-chain", "name": "Coordinate Operation Chain and Reproducibility", "description": "Everything needed to state, without ambiguity, which referencing context a coordinate came from, which it was moved to, by which ordered operations and pinned resources, and how the original can still be recovered.", "rationale": "A coordinate operation is defined by its source and target coordinate reference systems, optionally its source and target coordinate epochs, a method with parameter values, and a domain of validity. Chains of such operations are themselves operations. Unless each of those elements is pinned, a derived geometry cannot be interpreted or reproduced, and the difference between a rigorous transformation and an unknown-accuracy fallback is invisible.", "source_refs": [ "SRC-003", "SRC-030", "SRC-031", "SRC-024" ], "layers": [ { "id": "geo-xform-endpoints", "name": "Operation Endpoints, Epoch and Applicability", "description": "The referencing context at each end of the chain, its temporal qualification, and whether the chain is applicable to the subject geometry at all.", "source_refs": [ "SRC-003", "SRC-011", "SRC-005", "SRC-031" ], "findings": [ { "id": "geo-xform-crs-binding", "name": "Source and target coordinate reference system binding", "description": "The chain's endpoints, each carried as a resolvable governed reference to a registry-held CRS definition, plus any interpolation CRS the method requires.", "source_refs": [ "SRC-003", "SRC-011", "SRC-005", "SRC-024" ], "questions": [ { "id": "geo-xform-q-endpoint-identity", "text": "Which governed identifier names the source coordinate reference system and which names the target?", "kind": "identity", "answer_data": [ "Source CRS reference (authority, code or URI)", "Target CRS reference (authority, code or URI)", "Human-readable CRS names for display only" ] }, { "id": "geo-xform-q-crs-by-reference", "text": "Is each coordinate reference system carried by resolvable reference rather than as a locally redefined description?", "kind": "interoperability", "answer_data": [ "Reference form indicator (registry code, definition URI, compound reference array)", "Flag for locally embedded CRS description", "Reason recorded when a local description is unavoidable" ] }, { "id": "geo-xform-q-crs-registry-version", "text": "From which registry authority and dataset version were the endpoint definitions taken?", "kind": "provenance", "answer_data": [ "Registry authority name", "Registry dataset version label", "Deprecation state of each cited CRS at pin time" ] }, { "id": "geo-xform-q-interpolation-crs", "text": "Does any step require an interpolation coordinate reference system distinct from its source and target?", "kind": "composition", "answer_data": [ "Interpolation CRS reference", "Step index that requires it", "Statement that none is required" ] } ], "data_elements": [ { "id": "geo-xform-de-source-crs", "name": "Source CRS reference", "description": "Governed reference to the coordinate reference system the input coordinates are expressed in.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "geo-xform-de-target-crs", "name": "Target CRS reference", "description": "Governed reference to the coordinate reference system the output coordinates are expressed in.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "geo-xform-de-crs-registry-pin", "name": "CRS registry dataset version pin", "description": "Authority and dataset version against which the endpoint references were resolved.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-024" ] }, { "id": "geo-xform-de-interpolation-crs", "name": "Interpolation CRS reference", "description": "Reference to the CRS in which a grid or model is interpolated when it differs from both endpoints.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "geo-xform-de-crs-deprecation-state", "name": "Cited CRS deprecation state", "description": "Whether a cited CRS was current, deprecated or superseded in the pinned registry version.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-024", "SRC-031" ] } ], "artifacts": [], "inline_only_rationale": "Endpoint binding is pure reference data: two governed identifiers, an optional interpolation reference and a registry version pin. The CRS definitions themselves are artifacts of the geodetic registry, not of this model; materializing a local copy would duplicate registry-owned content and create a second, unmaintained source of truth." }, { "id": "geo-xform-epoch", "name": "Coordinate epoch and dynamic-frame qualification", "description": "The epoch to which input and output coordinates are referenced, whether either endpoint is dynamic, and what happens when an epoch is required but absent.", "source_refs": [ "SRC-003", "SRC-011", "SRC-005", "SRC-037", "SRC-034" ], "questions": [ { "id": "geo-xform-q-epoch-values", "text": "To which coordinate epoch are the input coordinates referenced, and to which epoch are the output coordinates referenced?", "kind": "temporal", "answer_data": [ "Source coordinate epoch as a decimal year", "Target coordinate epoch as a decimal year", "Stated epoch convention and its source" ] }, { "id": "geo-xform-q-dynamic-endpoint", "text": "Is either endpoint a dynamic coordinate reference system, so that coordinates without an epoch are ambiguous?", "kind": "state", "answer_data": [ "Dynamic-frame flag per endpoint", "Frame reference epoch where the frame declares one", "Plate-fixed or global frame indicator" ] }, { "id": "geo-xform-q-point-motion-need", "text": "Is a point-motion or deformation step required to move coordinates between the source and target epochs?", "kind": "process", "answer_data": [ "Point-motion step required flag", "Deformation model reference used for the epoch change", "Statement that source and target epochs are identical" ] }, { "id": "geo-xform-q-epoch-missing", "text": "What outcome is recorded when a dynamic reference system is in use and no coordinate epoch is supplied?", "kind": "exception", "answer_data": [ "Epoch-mismatch or epoch-missing outcome code", "Whether a default epoch was assumed and on whose authority", "Uncertainty inflation recorded as a consequence" ] } ], "data_elements": [ { "id": "geo-xform-de-source-epoch", "name": "Source coordinate epoch", "description": "Decimal-year epoch to which the input coordinates are referenced.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-005" ] }, { "id": "geo-xform-de-target-epoch", "name": "Target coordinate epoch", "description": "Decimal-year epoch to which the output coordinates are referenced.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-005" ] }, { "id": "geo-xform-de-dynamic-flag", "name": "Dynamic reference frame flag", "description": "Whether an endpoint CRS is dynamic and therefore requires an epoch for unambiguous coordinates.", "value_kind": "boolean", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-011", "SRC-037" ] }, { "id": "geo-xform-de-epoch-status", "name": "Epoch reconciliation status", "description": "Whether the source and target epochs agree, were reconciled by a point-motion step, or are mismatched.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-034" ] } ], "artifacts": [], "inline_only_rationale": "An epoch is a scalar temporal qualifier of coordinates, not a document. It must travel inline with the coordinates because it changes their meaning; deformation models that realize an epoch change are referenced through the resource-pin finding rather than duplicated here." }, { "id": "geo-xform-applicability", "name": "Area of use, applicability test and ballpark or fallback status", "description": "Whether the chain is declared valid where the subject actually lies, which spatial test was used, and whether the chain is a ballpark or null fallback with unknown accuracy.", "source_refs": [ "SRC-003", "SRC-031", "SRC-032", "SRC-036", "SRC-024" ], "questions": [ { "id": "geo-xform-q-extent-fit", "text": "What area of use bounds each step of the chain, and does the subject geometry lie inside it?", "kind": "spatial", "answer_data": [ "Area of use extent per step", "Subject geometry extent", "Inside, partially outside or fully outside determination" ] }, { "id": "geo-xform-q-spatial-test", "text": "Which spatial test governed selection: strict containment of the area of interest or mere intersection?", "kind": "decision", "answer_data": [ "Spatial test code (contains or intersects)", "Area-of-interest source (supplied, smallest endpoint extent, or intersection of endpoint extents)", "Selection rationale text" ] }, { "id": "geo-xform-q-ballpark-status", "text": "Is the selected chain a ballpark, null or copy operation whose accuracy is unknown?", "kind": "quality", "answer_data": [ "Ballpark or fallback flag", "What the fallback accounts for (axis order, units, prime meridian) and what it omits", "Explicit unknown-accuracy declaration" ] }, { "id": "geo-xform-q-out-of-area", "text": "What outcome is recorded when coordinates fall outside the declared area of use?", "kind": "exception", "answer_data": [ "Out-of-area outcome code", "Whether extrapolation was permitted and by whose decision", "Fraction or count of coordinates outside the extent" ] } ], "data_elements": [ { "id": "geo-xform-de-area-of-use", "name": "Declared area of use", "description": "The extent within which a step or the whole chain is declared valid by its defining authority.", "value_kind": "geometry", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-036" ] }, { "id": "geo-xform-de-extent-test", "name": "Applied spatial test", "description": "The comparison rule used between the area of interest and the operation extent.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-031" ] }, { "id": "geo-xform-de-ballpark-flag", "name": "Ballpark or fallback flag", "description": "Whether the chain includes an operation that performs no datum shift and therefore has unknown accuracy.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-032", "SRC-024" ] }, { "id": "geo-xform-de-area-outcome", "name": "Area applicability outcome", "description": "Result of testing the subject coordinates against the declared area of use.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-036", "SRC-031" ] }, { "id": "geo-xform-de-selection-rationale", "name": "Chain selection rationale", "description": "Why this chain was chosen over the alternatives available at pin time.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-031" ] } ], "artifacts": [], "inline_only_rationale": "Applicability is a judgement recorded as flags, an extent reference and a rationale string bound to one subject. The extents themselves are registry-held attributes of the operations; reproducing them as local artifacts would fork registry-owned definitions." } ] }, { "id": "geo-xform-chain", "name": "Operation Classification, Order and Method Pins", "description": "What kind of operations make up the chain, in what order and direction they apply, and the exact method and parameter values that fix their behaviour.", "source_refs": [ "SRC-003", "SRC-029", "SRC-030", "SRC-035", "SRC-024" ], "findings": [ { "id": "geo-xform-operation-class", "name": "Conversion, transformation, point-motion and concatenation classification", "description": "The classification of each step by whether it changes datum, changes epoch, or only re-expresses coordinates, and whether the whole is a single or a concatenated operation.", "source_refs": [ "SRC-003", "SRC-029", "SRC-035", "SRC-024" ], "questions": [ { "id": "geo-xform-q-step-class", "text": "Is each step a conversion, a transformation, a point-motion operation or a pure axis and unit change?", "kind": "classification", "answer_data": [ "Operation kind code per step", "Whether the step is a map projection treated separately by convention", "Registry-declared operation type where one exists" ] }, { "id": "geo-xform-q-datum-change", "text": "Do the source and target of a step share the same datum, making that step a conversion rather than a transformation?", "kind": "definition", "answer_data": [ "Same-datum flag per step", "Datum or datum ensemble reference at each end of the step", "Note that empirically derived parameters carry error into the output" ] }, { "id": "geo-xform-q-concatenation", "text": "Is the chain a single operation or a concatenated operation, and which constituent operations form it?", "kind": "composition", "answer_data": [ "Single or concatenated indicator", "Ordered list of constituent operation references", "Intermediate or pivot CRS references between steps" ] }, { "id": "geo-xform-q-definition-currency", "text": "Which registry-held definition does each step cite, and was that definition current or superseded when pinned?", "kind": "relationship", "answer_data": [ "Operation definition reference per step", "Currency state (current, superseded, deprecated)", "Superseding operation reference where applicable" ] } ], "data_elements": [ { "id": "geo-xform-de-operation-kind", "name": "Operation kind", "description": "Classification of a step as conversion, transformation, point-motion operation or normalization-only change.", "value_kind": "code", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-029" ] }, { "id": "geo-xform-de-datum-change-flag", "name": "Datum change flag", "description": "Whether the step crosses a datum boundary, which distinguishes a transformation from a conversion.", "value_kind": "boolean", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003" ] }, { "id": "geo-xform-de-operation-reference", "name": "Registry operation reference", "description": "Reference to the registry-held operation definition a step cites.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-024", "SRC-031" ] }, { "id": "geo-xform-de-pivot-crs", "name": "Intermediate or pivot CRS reference", "description": "Reference to a CRS used between two steps of a concatenated operation.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-031" ] } ], "artifacts": [], "inline_only_rationale": "Classification is a small set of coded attributes attached to steps that are themselves references to registry definitions. There is no separate document to hold; the authoritative operation definitions belong to the geodetic registry and are cited, not copied." }, { "id": "geo-xform-method-pin", "name": "Method, parameter, step order and direction pins", "description": "The method identifier, the complete parameter set with units, the applied step order and the forward or inverse direction of each step, recorded so the chain can be rebuilt exactly.", "source_refs": [ "SRC-003", "SRC-030", "SRC-024", "SRC-035" ], "questions": [ { "id": "geo-xform-q-method-identity", "text": "Which operation method identifier and version pin each step of the chain?", "kind": "identity", "answer_data": [ "Method reference per step", "Method name for display", "Operation version label of the pinned parameter set" ] }, { "id": "geo-xform-q-parameter-completeness", "text": "Are all method parameter values recorded with explicit units and no implied or engine-defaulted values?", "kind": "constraint", "answer_data": [ "Parameter name, value and unit per step", "Flag marking any value supplied by a default rather than stated", "Global versus per-step parameter scope" ] }, { "id": "geo-xform-q-step-order-direction", "text": "In what order are the steps applied, and which of them are applied in the inverse direction?", "kind": "process", "answer_data": [ "Step index sequence", "Direction indicator per step (forward or inverse)", "Steps declared as skipped in one direction only" ] }, { "id": "geo-xform-q-operation-version", "text": "Which operation version label identifies the parameter set, so that the same chain can be rebuilt later?", "kind": "provenance", "answer_data": [ "Operation version string", "Authority that issued it", "Date the pin was taken as an observation timestamp" ] } ], "data_elements": [ { "id": "geo-xform-de-method-reference", "name": "Operation method reference", "description": "Governed reference to the mathematical method a step applies.", "value_kind": "reference", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-024" ] }, { "id": "geo-xform-de-parameter-value", "name": "Method parameter value set", "description": "Named parameter values with units for a step, including any value that was defaulted rather than stated.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-024" ] }, { "id": "geo-xform-de-step-index", "name": "Step index", "description": "Ordinal position of a step in the applied sequence.", "value_kind": "number", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-030" ] }, { "id": "geo-xform-de-step-direction", "name": "Step direction", "description": "Whether the step is applied in its forward or inverse sense.", "value_kind": "code", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-030" ] }, { "id": "geo-xform-de-operation-version", "name": "Operation version label", "description": "Version identifier of the parameter set used, as issued by the defining authority.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-024" ] } ], "artifacts": [], "inline_only_rationale": "Method and parameter pins are structured values on the chain record. Serializing them as a proj-string, a well-known-text fragment or any other engine syntax would bind the model to a storage format and to one engine's grammar, which the format-neutral rule forbids." } ] }, { "id": "geo-xform-provenance", "name": "External Resource Pins and Derived-Geometry Lineage", "description": "The external resources and toolchain a result depended on, and the record that keeps the original geometry and CRS recoverable from any derived one.", "source_refs": [ "SRC-033", "SRC-034", "SRC-035", "SRC-005", "SRC-038" ], "findings": [ { "id": "geo-xform-resource-pin", "name": "Grid, model and toolchain resource pins", "description": "Identity, version, integrity value and availability state of every correction resource a step depends on, plus the engine and registry dataset versions in force when the result was produced.", "source_refs": [ "SRC-033", "SRC-034", "SRC-035", "SRC-036", "SRC-038" ], "questions": [ { "id": "geo-xform-q-resource-identity", "text": "Which grid, triangulated-network or deformation-model resources does the chain require, and how is each identified and versioned?", "kind": "identity", "answer_data": [ "Resource name as issued by its distributor", "Published version label", "Region or coverage the resource applies to" ] }, { "id": "geo-xform-q-resource-integrity", "text": "What integrity value binds this record to the exact resource content that was used?", "kind": "evidence", "answer_data": [ "Content checksum value", "Checksum algorithm name", "Verification state (verified, unverified, mismatch)" ] }, { "id": "geo-xform-q-resource-missing", "text": "What outcome is recorded when a required resource is unavailable at evaluation time?", "kind": "exception", "answer_data": [ "Missing-resource outcome code", "Whether the step was declared optional or replaced by a zero-shift substitute", "Accuracy consequence of the substitution" ] }, { "id": "geo-xform-q-toolchain-pin", "text": "Which transformation engine version and registry dataset version were in force when the result was produced?", "kind": "provenance", "answer_data": [ "Engine name and version", "Registry dataset version", "Resource package version or distribution endpoint used" ] } ], "data_elements": [ { "id": "geo-xform-de-resource-name", "name": "Resource identifier", "description": "Distributor-issued name of a grid, triangulated-network or deformation-model resource.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-033", "SRC-038" ] }, { "id": "geo-xform-de-resource-version", "name": "Resource version label", "description": "Published version of the resource, never reused for changed content.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-033", "SRC-038" ] }, { "id": "geo-xform-de-resource-checksum", "name": "Resource content checksum", "description": "Integrity value with a named algorithm binding the pin to exact resource content.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-033" ] }, { "id": "geo-xform-de-resource-availability", "name": "Resource availability state", "description": "Whether each required resource was present, retrieved remotely, substituted or missing.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-034", "SRC-031" ] }, { "id": "geo-xform-de-engine-pin", "name": "Transformation engine version pin", "description": "Name and version of the engine that produced the result, recorded for reproduction only.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-029", "SRC-034" ] } ], "artifacts": [ { "id": "geo-xform-grid-resource", "name": "Geodetic grid, triangulated-network or deformation-model resource", "description": "The external correction resource a grid-based or time-dependent step depends on, referenced by identity, version and checksum rather than embedded in this model.", "media_or_form": [ "gridded horizontal or vertical correction file", "triangulated irregular network model", "time-dependent deformation model package", "resource entry retrieved from a distribution service" ], "serial": true, "identity_strategy": "Distributor-issued resource name plus published version label is the master-system identifier; a content checksum with a named algorithm binds the reference to exact content; a Dimension-assigned ULID is used only for a locally held copy that carries no distributor identifier. Hosting, licensing and retraction remain with the distributor.", "source_refs": [ "SRC-033", "SRC-035", "SRC-036", "SRC-038" ] } ], "inline_only_rationale": null }, { "id": "geo-xform-derived-lineage", "name": "Original preservation and derived-geometry lineage", "description": "The rule that a derived geometry never displaces its original, and the lineage record that ties the derived geometry back to the original geometry, original CRS and the chain that produced it.", "source_refs": [ "SRC-005", "SRC-011", "SRC-003", "SRC-001" ], "questions": [ { "id": "geo-xform-q-original-preserved", "text": "Which original geometry and original coordinate reference system does this derived geometry come from?", "kind": "provenance", "answer_data": [ "Reference to the original geometry", "Reference to the original CRS and epoch", "Reference to the chain declaration that produced the derivation" ] }, { "id": "geo-xform-q-authoritative-geometry", "text": "Which representation is authoritative when the original and a derived geometry disagree?", "kind": "ownership", "answer_data": [ "Authoritative-role code per representation (original or derived)", "Purpose each representation is fit for", "Rule forbidding replacement of the original by a derived form" ] }, { "id": "geo-xform-q-derivation-times", "text": "When was the derived geometry produced, and is that time kept separate from the time the geometry itself was valid?", "kind": "temporal", "answer_data": [ "Derivation observation timestamp", "Event time of the underlying geometry where known", "Statement that the coordinate epoch is not either of these" ] }, { "id": "geo-xform-q-lineage-sufficiency", "text": "Is the recorded lineage sufficient to reproduce the derived geometry from the original?", "kind": "validation", "answer_data": [ "Completeness verdict over endpoint, epoch, method, parameter, resource and engine pins", "List of missing pins", "Reproducibility status (reproducible, reproducible-with-caveats, not reproducible)" ] } ], "data_elements": [ { "id": "geo-xform-de-original-geometry-ref", "name": "Original geometry reference", "description": "Reference to the geometry from which the derived geometry was produced.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-005" ] }, { "id": "geo-xform-de-original-crs-ref", "name": "Original CRS and epoch reference", "description": "Reference to the referencing context of the original geometry, retained unchanged.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-005", "SRC-011" ] }, { "id": "geo-xform-de-chain-ref", "name": "Chain declaration reference", "description": "Reference to the operation chain that produced the derived geometry.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-030" ] }, { "id": "geo-xform-de-derivation-role", "name": "Representation role", "description": "Whether a stored geometry is the original or a derived representation, and what it is fit for.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-005", "SRC-001" ] }, { "id": "geo-xform-de-derivation-observed-at", "name": "Derivation observation timestamp", "description": "When the derivation was evaluated and recorded, distinct from the geometry's own event time.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "Lineage here is a set of references and roles carried alongside the geometry, not a separate deliverable. Making it an artifact would invite a lineage document that drifts from the geometry it describes; the reproducibility guarantee depends on the pins travelling with the coordinates themselves." } ] } ] }, { "id": "geo-xform-accuracy-quality", "name": "Accuracy, Normalization and Declared Outcomes", "description": "How good the resulting coordinates are, how they were normalized and reshaped, and what must be told to a consumer before the result is trusted.", "rationale": "A coordinate operation carries a stated accuracy, and empirically derived transformation parameters transfer their error into the output. Grid-based transformations supply local error estimates and are bounded by supported regions. Axis order, units and dimensionality differ between referencing contexts and encodings, and encoding rules force geometry-level treatment such as antimeridian splitting and precision limits. None of this is inferable from the coordinates alone, so it must be declared.", "source_refs": [ "SRC-003", "SRC-036", "SRC-001", "SRC-005", "SRC-032" ], "layers": [ { "id": "geo-xform-accuracy", "name": "Stated Accuracy and Positional Uncertainty", "description": "The accuracy the defining authority states for the operations used, and the positional uncertainty and numeric precision that qualify the resulting coordinates.", "source_refs": [ "SRC-003", "SRC-036", "SRC-038", "SRC-032", "SRC-001" ], "findings": [ { "id": "geo-xform-stated-accuracy", "name": "Stated operation accuracy of the chain", "description": "The accuracy values declared by the defining authority for each step, how a chain-level figure is derived, and the mandatory unknown state when any step lacks one.", "source_refs": [ "SRC-003", "SRC-031", "SRC-032", "SRC-024" ], "questions": [ { "id": "geo-xform-q-stated-accuracy-values", "text": "What accuracy value does the defining authority state for each step, and in what unit?", "kind": "measurement", "answer_data": [ "Stated accuracy value and unit per step", "Whether the value is a horizontal, vertical or combined figure", "Absence indicator where no value is published" ] }, { "id": "geo-xform-q-chain-accuracy-rule", "text": "How is a single accuracy figure derived for the whole chain from its per-step values?", "kind": "quality", "answer_data": [ "Aggregation rule identifier and its conservatism assumption", "Resulting chain accuracy value and unit", "Note that the rule is a local convention, not a registry statement" ] }, { "id": "geo-xform-q-accuracy-authority", "text": "Which authority stated the accuracy, and is it a published statement rather than a local estimate?", "kind": "authority", "answer_data": [ "Stating authority name", "Registry dataset version the statement was read from", "Local-estimate flag with its basis where no published value exists" ] }, { "id": "geo-xform-q-accuracy-unknown", "text": "Is chain accuracy marked unknown whenever any step lacks a published accuracy or is a fallback?", "kind": "constraint", "answer_data": [ "Unknown-accuracy flag", "Step indices that caused it", "Prohibition on presenting an unknown-accuracy chain as accurate" ] } ], "data_elements": [ { "id": "geo-xform-de-step-accuracy", "name": "Stated step accuracy", "description": "Accuracy value published by the defining authority for a single operation step, with unit.", "value_kind": "quantity", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-024" ] }, { "id": "geo-xform-de-chain-accuracy", "name": "Derived chain accuracy", "description": "Conservative accuracy figure computed for the whole chain from its per-step values.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-031" ] }, { "id": "geo-xform-de-accuracy-basis", "name": "Accuracy basis statement", "description": "Whether the figure is authority-published, locally estimated or unknown, and how it was obtained.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-024", "SRC-032" ] }, { "id": "geo-xform-de-accuracy-unknown-flag", "name": "Unknown-accuracy flag", "description": "Set whenever any step lacks a published accuracy or is a ballpark or null operation.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-032", "SRC-024" ] } ], "artifacts": [], "inline_only_rationale": "Stated accuracy is an attribute the geodetic registry publishes against its own operation definitions. This model records the values it read, the version it read them from and a conservative chain figure; holding them as a local artifact would create a stale mirror of registry-owned quality statements." }, { "id": "geo-xform-uncertainty", "name": "Positional uncertainty, precision and resolution of the result", "description": "The uncertainty attached to output coordinates, its components and confidence basis, and the stored numeric precision and resolution that can silently dominate it.", "source_refs": [ "SRC-036", "SRC-038", "SRC-001", "SRC-003" ], "questions": [ { "id": "geo-xform-q-uncertainty-values", "text": "What positional uncertainty is attached to the output coordinates, split into horizontal and vertical components?", "kind": "measurement", "answer_data": [ "Horizontal uncertainty value and unit", "Vertical uncertainty value and unit", "Component the value omits, if any" ] }, { "id": "geo-xform-q-uncertainty-basis", "text": "At what confidence level and by what evaluation method is the uncertainty expressed?", "kind": "quality", "answer_data": [ "Confidence level or coverage statement", "Evaluation method name", "Reference to the external quality vocabulary used" ] }, { "id": "geo-xform-q-uncertainty-source", "text": "Does the uncertainty come from a per-point local error estimate or from a single blanket figure for the whole operation?", "kind": "evidence", "answer_data": [ "Uncertainty source code (per-point estimate, blanket figure, propagated, unknown)", "Reference to the resource supplying local error estimates", "Coverage region within which the estimate is valid" ] }, { "id": "geo-xform-q-precision-vs-uncertainty", "text": "What stored numeric precision and coordinate resolution are used, and is stored precision coarser than the stated uncertainty?", "kind": "constraint", "answer_data": [ "Decimal places or resolution retained per ordinate", "Comparison verdict between precision and uncertainty", "Precision-loss warning where rounding exceeds the uncertainty" ] } ], "data_elements": [ { "id": "geo-xform-de-positional-uncertainty", "name": "Positional uncertainty", "description": "Uncertainty attributed to the output coordinates, by component where available.", "value_kind": "quantity", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-036", "SRC-038" ] }, { "id": "geo-xform-de-uncertainty-confidence", "name": "Uncertainty confidence basis", "description": "Confidence level and evaluation method under which the uncertainty is stated.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-038" ] }, { "id": "geo-xform-de-uncertainty-source", "name": "Uncertainty source kind", "description": "Whether the value is a per-point local error estimate, a blanket operation figure, propagated or unknown.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-036", "SRC-038" ] }, { "id": "geo-xform-de-coordinate-precision", "name": "Retained coordinate precision", "description": "Decimal places or ordinate resolution retained in storage or export.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "geo-xform-de-resolution", "name": "Coordinate resolution", "description": "The smallest coordinate difference the representation can distinguish, expressed in ground units.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] } ], "artifacts": [], "inline_only_rationale": "Uncertainty and precision are per-coordinate qualifiers that must be inseparable from the values they qualify. Local error estimates live inside the pinned grid resources, which are already referenced through the resource-pin finding; restating them locally would duplicate distributor-owned content." } ] }, { "id": "geo-xform-normalization", "name": "Axis, Unit, Dimension and Geometry Treatment", "description": "The normalizations applied before and after the chain, and the shape-level treatment that changes a geometry without any datum change.", "source_refs": [ "SRC-001", "SRC-005", "SRC-011", "SRC-030", "SRC-036" ], "findings": [ { "id": "geo-xform-axis-unit-dimension", "name": "Axis order, unit and dimensionality normalization", "description": "Which axis order and units the coordinates are written in, where that ordering came from, and whether the chain adds, drops or reinterprets an ordinate.", "source_refs": [ "SRC-001", "SRC-011", "SRC-005", "SRC-030", "SRC-036" ], "questions": [ { "id": "geo-xform-q-axis-order-source", "text": "In which axis order are the coordinates written, and does that order come from the CRS definition or from an encoding rule?", "kind": "interoperability", "answer_data": [ "Axis order code as written", "Order authority (CRS definition or encoding profile)", "Axis-swap step index where normalization was applied" ] }, { "id": "geo-xform-q-unit-normalization", "text": "Which unit applies to each ordinate, and were units normalized before the operation was applied?", "kind": "constraint", "answer_data": [ "Unit per ordinate", "Unit-conversion step index", "Prime meridian offset applied, if any" ] }, { "id": "geo-xform-q-dimension-change", "text": "Does the chain change coordinate dimensionality, for example dropping a height ordinate or adding a time ordinate?", "kind": "classification", "answer_data": [ "Input and output coordinate dimension", "Ordinate added, dropped or reinterpreted", "Height type before and after (ellipsoidal, orthometric, none)" ] }, { "id": "geo-xform-q-dimension-unsupported", "text": "What outcome is recorded when the input dimensionality is not supported by a step of the chain?", "kind": "exception", "answer_data": [ "Unsupported-dimension outcome code", "Step index that rejected the input", "Whether a height was passed through unchanged rather than transformed" ] } ], "data_elements": [ { "id": "geo-xform-de-axis-order", "name": "Written axis order", "description": "The order in which ordinates are written, and the authority that fixed it.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-005" ] }, { "id": "geo-xform-de-coordinate-unit", "name": "Ordinate unit", "description": "Unit of measure for each ordinate as written.", "value_kind": "code", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-030" ] }, { "id": "geo-xform-de-coordinate-dimension", "name": "Coordinate dimension", "description": "Number of ordinates per position before and after the chain.", "value_kind": "number", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-001", "SRC-034" ] }, { "id": "geo-xform-de-height-type", "name": "Height ordinate type", "description": "Whether a vertical ordinate is ellipsoidal, orthometric or absent, before and after the chain.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-036", "SRC-037" ] }, { "id": "geo-xform-de-normalization-applied", "name": "Normalization steps applied", "description": "Axis swap, unit conversion and prime-meridian adjustments applied around the substantive operations.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-030", "SRC-032" ] } ], "artifacts": [], "inline_only_rationale": "Axis order, units and dimensionality are properties of how the coordinate tuple is written and must be read together with it. They are also the exact properties a ballpark operation manipulates, so isolating them in a separate artifact would break the link between the tuple and its interpretation." }, { "id": "geo-xform-geometry-treatment", "name": "Densification, clipping, wrapping and antimeridian or polar handling", "description": "Shape-level treatment applied around the operation: added vertices, clipped or wrapped extents, and how geometries crossing the antimeridian or approaching the poles were handled.", "source_refs": [ "SRC-001", "SRC-005", "SRC-029" ], "questions": [ { "id": "geo-xform-q-densification", "text": "Was the geometry densified before the operation, and to what deviation tolerance?", "kind": "process", "answer_data": [ "Densification applied flag", "Deviation tolerance value and unit", "Vertex count before and after" ] }, { "id": "geo-xform-q-antimeridian", "text": "How was a geometry crossing the antimeridian treated, and was it split rather than left spanning?", "kind": "spatial", "answer_data": [ "Antimeridian treatment code (split, left spanning, wrapped)", "Resulting geometry role change, such as single to multi-part", "Bounding-box convention applied for the crossing extent" ] }, { "id": "geo-xform-q-clip-wrap", "text": "Was any clipping or longitude wrapping applied, and what extent governed it?", "kind": "constraint", "answer_data": [ "Clip or wrap treatment code", "Governing extent or longitude range", "Whether clipping removed part of the subject geometry" ] }, { "id": "geo-xform-q-polar-handling", "text": "How is behaviour near the poles and near projection singularities declared?", "kind": "quality", "answer_data": [ "Polar or singularity treatment statement", "Region where the declaration applies", "Explicit gap statement where no authoritative rule exists" ] } ], "data_elements": [ { "id": "geo-xform-de-densification-tolerance", "name": "Densification tolerance", "description": "Maximum permitted deviation between the densified and the true transformed curve.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-029" ] }, { "id": "geo-xform-de-vertex-count-delta", "name": "Vertex count change", "description": "Difference in vertex count between the original and the treated geometry.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "geo-xform-de-antimeridian-treatment", "name": "Antimeridian treatment", "description": "How a geometry crossing the antimeridian was handled and under which encoding rule.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-005" ] }, { "id": "geo-xform-de-clip-extent", "name": "Clipping or wrapping extent", "description": "The extent or longitude range that governed clipping or wrapping.", "value_kind": "geometry", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "geo-xform-de-polar-treatment", "name": "Polar and singularity treatment note", "description": "Declared handling near poles and projection singularities, including an explicit gap where no rule is authoritative.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-029", "SRC-001" ] } ], "artifacts": [], "inline_only_rationale": "These are declarations about what was done to one geometry, meaningful only next to that geometry and its lineage. They are recorded inline as treatment codes and tolerances; the reshaped geometry itself is the host's data, not an artifact this mixin owns. Densification tolerance and polar handling rest on practice rather than a normative source and are flagged as a gap." } ] }, { "id": "geo-xform-outcomes", "name": "Declared Outcomes and Exceptions", "description": "The single outcome status of an applied chain, the named exceptions that may qualify it, and the limits that must be stated before a consumer relies on the result.", "source_refs": [ "SRC-031", "SRC-032", "SRC-034", "SRC-036", "SRC-001" ], "findings": [ { "id": "geo-xform-outcome-exception", "name": "Outcome status, exception taxonomy and lossy or round-trip declaration", "description": "One coded status per applied chain, the named exception set that can accompany it, the tolerance actually tested, and an honest statement of round-trip and export limits.", "source_refs": [ "SRC-031", "SRC-032", "SRC-034", "SRC-036", "SRC-001", "SRC-030" ], "questions": [ { "id": "geo-xform-q-outcome-status", "text": "What single outcome status does the record carry for the applied chain as a whole?", "kind": "state", "answer_data": [ "Outcome status code (succeeded, succeeded with qualifications, refused)", "Observation timestamp of the outcome", "Reference to the chain declaration the outcome belongs to" ] }, { "id": "geo-xform-q-exception-taxonomy", "text": "Which named exception applies: missing resource, out-of-area, epoch mismatch, axis ambiguity, unsupported dimension, invalid geometry, tolerance breach or lossy export?", "kind": "exception", "answer_data": [ "Exception code list", "Affected step index or ordinate per exception", "Severity and whether it blocks use" ] }, { "id": "geo-xform-q-tolerance-test", "text": "Which declared tolerance was tested against the result, and did the result breach it?", "kind": "validation", "answer_data": [ "Declared tolerance value and unit", "Observed residual or deviation", "Breach verdict and the party who set the tolerance" ] }, { "id": "geo-xform-q-roundtrip-claim", "text": "Is any round-trip claim limited to chains that are bijective, non-iterative and unrounded?", "kind": "requirement", "answer_data": [ "Round-trip claim code (none, bounded by tolerance, not claimed)", "Reasons reversibility is not guaranteed, such as grid interpolation, iteration or rounding", "Measured round-trip residual where one was computed" ] }, { "id": "geo-xform-q-consumer-disclosure", "text": "What must a consumer be told before treating the derived geometry as fit for its purpose?", "kind": "quality", "answer_data": [ "Disclosure set: unknown-accuracy flag, uncertainty, exceptions and lossy-export notes", "Fitness statement scoped to a named purpose", "Pointer to the original geometry and CRS" ] } ], "data_elements": [ { "id": "geo-xform-de-outcome-status", "name": "Chain outcome status", "description": "Single coded status for the applied chain.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-031", "SRC-036" ] }, { "id": "geo-xform-de-exception-code", "name": "Exception code", "description": "Named exception raised during the chain, with the step or ordinate it applies to.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-034", "SRC-036", "SRC-032" ] }, { "id": "geo-xform-de-tolerance-breach", "name": "Tolerance breach indicator", "description": "Whether the observed residual exceeded the declared tolerance.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-031" ] }, { "id": "geo-xform-de-roundtrip-claim", "name": "Round-trip claim", "description": "What, if anything, is claimed about reversing the chain, and why exactness is not claimed.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-030", "SRC-032" ] }, { "id": "geo-xform-de-lossy-export-note", "name": "Lossy export note", "description": "Statement of what an export dropped or rounded, such as a height ordinate, an epoch or decimal places.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-005" ] }, { "id": "geo-xform-de-outcome-observed-at", "name": "Outcome observation timestamp", "description": "When the outcome was evaluated and recorded, kept separate from the geometry's event time.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-003" ] } ], "artifacts": [ { "id": "geo-xform-transformation-report", "name": "Coordinate transformation report", "description": "The record issued for one applied chain that states its outcome status, exceptions, accuracy and uncertainty summary, and any lossy-export or round-trip qualification, so a consumer can judge fitness without re-deriving anything.", "media_or_form": [ "structured outcome record", "human-readable report", "message payload attached to a derived geometry" ], "serial": false, "identity_strategy": "No external master system issues an identifier for a locally produced report, so a Dimension-assigned UUID or ULID is used. The report references the chain declaration, resource pins and original geometry rather than repeating them; the observation timestamp is metadata and never the identifier.", "source_refs": [ "SRC-003", "SRC-031", "SRC-036" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "geo-govctl-authority-provenance-bundle", "name": "Authority, Identity and Provenance Control", "description": "Who is accountable for a geometry and coordinate-reference attachment, who may change it, how it is identified and versioned, and what evidence supports the values it asserts.", "rationale": "A coordinate assertion is only trustworthy if the reference frame it cites, the operation that produced it and the party that approved it are all recoverable. ISO 19111 / OGC Topic 2 objects already carry identifier, scope, extent, remarks, operation version and accuracy, and registry practice adds immutable identifiers with superseded and retired states; this bundle binds those facts to an accountable party and a reviewable decision without duplicating registry maintenance.", "source_refs": [ "SRC-003", "SRC-040", "SRC-041", "SRC-016" ], "layers": [ { "id": "geo-govctl-roles-authority-layer", "name": "Accountable Roles and Decision Authority", "description": "Advisory role assignment for the attachment and the authority to select a CRS, correct geometry and set transformation policy for this subject.", "source_refs": [ "SRC-042", "SRC-045", "SRC-006", "SRC-046" ], "findings": [ { "id": "geo-govctl-accountable-roles", "name": "Advisory accountability roles for the attachment", "description": "Names the parties accountable for a geometry and coordinate-reference attachment - host-object owner, geometry steward, CRS/geodetic authority liaison, producer, independent reviewer and approver - and records that these assignments are advisory attributes, not authorization grants.", "source_refs": [ "SRC-042", "SRC-045", "SRC-046" ], "questions": [ { "id": "geo-govctl-q-role-holder", "text": "Which named party holds each accountable role for this geometry and coordinate-reference attachment?", "kind": "ownership", "answer_data": [ "Role code from a controlled list (host-object owner, geometry steward, CRS authority liaison, producer, independent reviewer, approver)", "Reference to a party record in the adopting Dimension's party registry", "Assignment start time and optional end time" ] }, { "id": "geo-govctl-q-role-advisory-status", "text": "Are the recorded role assignments advisory attributes rather than access grants?", "kind": "authority", "answer_data": [ "Boolean advisory flag fixed to true for every role assignment", "Reference to the external decision component that consumes the attribute", "Statement that no allow or deny outcome is derivable from this record alone" ] }, { "id": "geo-govctl-q-role-independence", "text": "How is the independent reviewer kept distinct from the producer and the approver of the same attachment?", "kind": "constraint", "answer_data": [ "Separation-of-duties rule expressed as a disjointness constraint between role holders", "Recorded exception when the same party unavoidably holds two roles", "Justification text for any permitted overlap" ] }, { "id": "geo-govctl-q-role-continuity", "text": "What applies when a role is vacant, delegated, or the host object changes owner?", "kind": "exception", "answer_data": [ "Delegation reference naming the acting party and the delegating party", "Vacancy marker with escalation target", "Rule that host-owner change re-points the owner role without changing attachment identity" ] }, { "id": "geo-govctl-q-role-external-authority", "text": "Which role covers the case where the geodetic authority sits outside the adopting organisation?", "kind": "relationship", "answer_data": [ "Liaison role reference plus identifier of the external geodetic authority", "Statement that the external authority is referenced, not governed", "Contact or registry endpoint reference for the external authority" ] } ], "data_elements": [ { "id": "geo-govctl-de-role-assignment", "name": "Role assignment", "description": "One accountable role bound to one party reference for a stated period, marked advisory.", "value_kind": "object", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-046", "SRC-042" ] }, { "id": "geo-govctl-de-role-code", "name": "Role code", "description": "Controlled value naming the accountability role held.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-046" ] }, { "id": "geo-govctl-de-party-reference", "name": "Party reference", "description": "Resolvable reference to the organisation or person holding the role, held in an external party registry.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-046", "SRC-041" ] }, { "id": "geo-govctl-de-advisory-flag", "name": "Advisory attribute flag", "description": "Marks the assignment as an attribute for an external policy decision point, never as an access grant.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-042", "SRC-045" ] } ], "artifacts": [], "inline_only_rationale": "Role accountability is structured reference data: controlled role codes pointing at party records maintained in an external registry, with validity intervals. No document is produced or held by this model, and materialising a role roster as an artifact would create a second, divergent copy of party data that this model has no authority to maintain." }, { "id": "geo-govctl-change-authority", "name": "Authority over CRS selection, geometry correction and transformation policy", "description": "Records who may choose or change the coordinate reference system for the host object, who may authorise a geometry correction, and who sets the permitted transformation methods, grids and accuracy limits for this subject.", "source_refs": [ "SRC-003", "SRC-006", "SRC-016", "SRC-033" ], "questions": [ { "id": "geo-govctl-q-crs-selection-authority", "text": "Who is authorised to select or change the coordinate reference system bound to this host object?", "kind": "authority", "answer_data": [ "Reference to the authorising party or committee", "Scope of the authority (single attachment, host class, whole Dimension)", "Reference to the mandate or instrument that confers the authority" ] }, { "id": "geo-govctl-q-crs-decision-basis", "text": "Which decision record justifies the chosen CRS, transformation path and grid?", "kind": "decision", "answer_data": [ "Decision record reference and its issue time in RFC 3339", "Fitness-for-use rationale against the intended applications", "Alternatives considered and reason for rejection" ] }, { "id": "geo-govctl-q-correction-route", "text": "Does a coordinate correction proceed as an in-place correction or as a new approved version?", "kind": "process", "answer_data": [ "Change class (non-substantive correction, substantive change, supersession)", "Required approval level per change class", "Trigger conditions that force the substantive route" ] }, { "id": "geo-govctl-q-transformation-constraints", "text": "Which transformation methods, grids and minimum accuracy are permitted for this subject?", "kind": "constraint", "answer_data": [ "Permitted coordinate-operation method identifiers and operation versions", "Permitted grid file identifiers with licence status", "Minimum acceptable stated operation accuracy and the unit of measure" ] }, { "id": "geo-govctl-q-authority-escalation", "text": "What escalation applies when the geodetic authority deprecates or replaces a referenced definition?", "kind": "exception", "answer_data": [ "Escalation target and required response interval", "Interim policy while a replacement frame is adopted", "Impact list of attachments citing the deprecated definition" ] } ], "data_elements": [ { "id": "geo-govctl-de-authority-holder", "name": "Change authority holder", "description": "Party or body empowered to approve a CRS selection or transformation policy for this subject.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-006", "SRC-016" ] }, { "id": "geo-govctl-de-decision-reference", "name": "Decision record reference", "description": "Resolvable reference to the record holding the CRS or transformation decision and its rationale.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-041", "SRC-046" ] }, { "id": "geo-govctl-de-permitted-operation", "name": "Permitted coordinate operation", "description": "Identifier, operation version and stated accuracy of a coordinate operation allowed for this subject.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-039" ] }, { "id": "geo-govctl-de-change-class", "name": "Change class", "description": "Classification of a proposed change as non-substantive correction, substantive change or supersession.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-040", "SRC-046" ] } ], "artifacts": [ { "id": "geo-govctl-crs-authority-decision-record", "name": "CRS and transformation authority decision record", "description": "The recorded decision selecting a coordinate reference system, transformation path, grid and accuracy floor for a subject, with rationale, authority basis, alternatives considered and effective time.", "media_or_form": [ "structured decision record", "signed narrative document", "meeting minute extract" ], "serial": false, "identity_strategy": "Authoritative master-system identifier issued by the adopting Dimension's decision register; where none exists, a governed IRI under the Dimension namespace; otherwise a ULID. The decision date is metadata and is never used as the identifier.", "source_refs": [ "SRC-006", "SRC-016", "SRC-046" ] } ], "inline_only_rationale": null } ] }, { "id": "geo-govctl-identity-version-layer", "name": "Host-Bound Identity, Version and Supersession", "description": "How an attachment is identified relative to its host object, and how versions, effective intervals and supersession of both the attachment and the definitions it cites are governed.", "source_refs": [ "SRC-040", "SRC-003", "SRC-046", "SRC-016" ], "findings": [ { "id": "geo-govctl-host-bound-identity", "name": "Host-dependent identity of the attachment", "description": "Establishes how a geometry and coordinate-reference attachment is identified when its identity depends on the host object, and how the coordinate reference system itself is cited so the citation remains resolvable.", "source_refs": [ "SRC-040", "SRC-003", "SRC-039" ], "questions": [ { "id": "geo-govctl-q-attachment-identifier", "text": "What identifier distinguishes this attachment from other geometry attachments on the same host object?", "kind": "identity", "answer_data": [ "Attachment identifier plus the host-object identifier it qualifies", "Role or purpose discriminator when a host carries several geometries", "Identifier scheme in use and its issuing system" ] }, { "id": "geo-govctl-q-master-identifier", "text": "Does an authoritative master-system identifier already exist for this geometry, and is it recorded?", "kind": "provenance", "answer_data": [ "Master-system identifier value and the system of record that issued it", "Statement of precedence over any locally minted identifier", "Reason recorded when no master identifier exists" ] }, { "id": "geo-govctl-q-crs-citation", "text": "How is the coordinate reference system cited so that the citation stays unambiguous and resolvable?", "kind": "interoperability", "answer_data": [ "Governed identifier such as an authority code with authority name and dataset version, or a persistent definition IRI including its version path segment", "Prohibition on informal or display-name-only citation", "Recorded axis order and units as declared by the cited definition" ] }, { "id": "geo-govctl-q-identity-survival", "text": "Does attachment identity survive host-object merge, split or re-identification?", "kind": "lifecycle", "answer_data": [ "Rule binding attachment identity to host identity", "Successor and predecessor attachment references after merge or split", "Retention of the retired identifier as a non-reusable value" ] } ], "data_elements": [ { "id": "geo-govctl-de-attachment-identifier", "name": "Attachment identifier", "description": "Identifier of the geometry and coordinate-reference attachment, qualified by the host-object identifier.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-040" ] }, { "id": "geo-govctl-de-host-object-reference", "name": "Host object reference", "description": "Resolvable reference to the object that the mixin is attached to.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-046" ] }, { "id": "geo-govctl-de-crs-citation", "name": "Coordinate reference system citation", "description": "Governed identifier of the bound CRS, including authority name, code and the dataset or definition version cited.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-039", "SRC-040" ] }, { "id": "geo-govctl-de-identifier-precedence", "name": "Identifier precedence note", "description": "Records which identifier is authoritative when a master-system identifier and a locally minted identifier coexist.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-040" ] } ], "artifacts": [], "inline_only_rationale": "Identity is pure inline reference data - identifier values, their issuing authority and precedence between them. Emitting an identity document would create a second place where an identifier could drift from its issuing system, which the persistent-identifier procedures this finding relies on explicitly aim to prevent." }, { "id": "geo-govctl-version-supersession", "name": "Version, effective interval and supersession", "description": "Governs versioning of the attachment and handling of superseded or deprecated definitions it cites, including which version is current and over what interval a version is asserted to hold.", "source_refs": [ "SRC-040", "SRC-046", "SRC-016", "SRC-003" ], "questions": [ { "id": "geo-govctl-q-current-version", "text": "Which version of this attachment is current, and which are retained but no longer current?", "kind": "state", "answer_data": [ "Version label and a current-version pointer", "Previous-version chain references", "Version notes describing what changed" ] }, { "id": "geo-govctl-q-effective-interval", "text": "Over what effective interval is this version asserted to hold?", "kind": "temporal", "answer_data": [ "Effective-from and optional effective-to timestamps in RFC 3339 with seconds and explicit offset", "Record creation and last-modified timestamps kept separate from the effective interval", "Coordinate epoch of the geometry expressed as a decimal year where a dynamic reference frame applies" ] }, { "id": "geo-govctl-q-supersession-reason", "text": "Which prior version does this record supersede and on what stated ground?", "kind": "lifecycle", "answer_data": [ "Superseded version reference", "Supersession ground (correction, re-survey, frame replacement, policy change)", "Approving party reference and approval time" ] }, { "id": "geo-govctl-q-deprecated-definition", "text": "How is a deprecated or retired CRS definition handled without breaking existing citations?", "kind": "interoperability", "answer_data": [ "Retained original identifier with a superseded or retired status marker", "Successor definition reference", "Migration note stating whether coordinate values change and by how much" ] }, { "id": "geo-govctl-q-change-significance", "text": "What distinguishes a non-substantive correction from a change that requires a new version?", "kind": "classification", "answer_data": [ "Criteria list separating editorial from value-affecting change", "Threshold in metres or in stated accuracy beyond which a new version is required", "Recorded classification outcome for the change at hand" ] } ], "data_elements": [ { "id": "geo-govctl-de-version-label", "name": "Version label", "description": "Version identifier of the attachment record, ordered and non-reused.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-046" ] }, { "id": "geo-govctl-de-effective-interval", "name": "Effective interval", "description": "Interval over which this version is asserted to hold, expressed as RFC 3339 instants with explicit offsets.", "value_kind": "duration", "cardinality": "1", "required": true, "source_refs": [ "SRC-046", "SRC-003" ] }, { "id": "geo-govctl-de-supersedes-reference", "name": "Supersedes reference", "description": "Reference to the version this record replaces, with the ground for replacement.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-040", "SRC-046" ] }, { "id": "geo-govctl-de-definition-status", "name": "Cited definition status", "description": "Status of each cited external definition as valid, superseded or retired, with successor reference where applicable.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-040", "SRC-016" ] } ], "artifacts": [], "inline_only_rationale": "Version, effective interval and supersession are attributes of the attachment record itself and of the external definitions it cites. They must travel with every projection of the record rather than in a separate document, and the authoritative status of a cited definition is owned by its registry, which this model references rather than republishes." } ] }, { "id": "geo-govctl-provenance-review-layer", "name": "Provenance and Independent Review Evidence", "description": "Where the geometry came from, which definitions, operations and grids produced it, and what independent review and approval evidence supports its release.", "source_refs": [ "SRC-041", "SRC-003", "SRC-033", "SRC-006" ], "findings": [ { "id": "geo-govctl-derivation-provenance", "name": "Provenance of source and derived geometry", "description": "Records the source geometry or survey, the CRS definition version, coordinate operation and grid used to derive the current geometry, the agent that performed the derivation, and the separation of observation time from ingestion time.", "source_refs": [ "SRC-041", "SRC-003", "SRC-033", "SRC-039" ], "questions": [ { "id": "geo-govctl-q-source-geometry", "text": "Which source geometry, survey or dataset was this geometry derived from?", "kind": "provenance", "answer_data": [ "Reference to the source entity and its version", "Source custodian reference and licence status", "Statement when the geometry is an original observation rather than a derivation" ] }, { "id": "geo-govctl-q-derivation-inputs", "text": "Which definition version, coordinate operation and grid file were used to produce the current values?", "kind": "relationship", "answer_data": [ "Coordinate operation identifier with operation version and stated accuracy", "Grid file identifier, version and provider", "Registry dataset version from which the definitions were taken" ] }, { "id": "geo-govctl-q-observation-vs-ingestion", "text": "When was the geometry observed or surveyed, and when was it captured into this record?", "kind": "temporal", "answer_data": [ "Event time of observation or survey in RFC 3339 with seconds and explicit offset", "Ingestion or observation-record time held as a separate value", "Coordinate epoch where the reference frame is dynamic" ] }, { "id": "geo-govctl-q-derivation-agent", "text": "Which agent, software version and parameter set performed the derivation?", "kind": "evidence", "answer_data": [ "Agent reference for the responsible organisation or person", "Software or service name and version acting on behalf of that agent", "Parameter values applied, including any grid interpolation choice" ] }, { "id": "geo-govctl-q-residual-uncertainty", "text": "What residual positional uncertainty is asserted for the derived geometry?", "kind": "measurement", "answer_data": [ "Uncertainty value with unit and confidence basis", "Whether the value is propagated from operation accuracy or independently assessed", "Reference to the assessment method held in the quality model" ] } ], "data_elements": [ { "id": "geo-govctl-de-source-entity", "name": "Source entity reference", "description": "Reference to the geometry, survey or dataset from which this geometry was derived.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-041" ] }, { "id": "geo-govctl-de-derivation-activity", "name": "Derivation activity reference", "description": "Reference to the activity that generated the geometry, with its responsible agent.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-041" ] }, { "id": "geo-govctl-de-operation-and-grid", "name": "Operation and grid used", "description": "Coordinate operation identifier, operation version and grid file reference applied in the derivation.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-033" ] }, { "id": "geo-govctl-de-observation-time", "name": "Observation time", "description": "Time the geometry was observed or surveyed, recorded separately from ingestion time.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-041" ] }, { "id": "geo-govctl-de-positional-uncertainty", "name": "Positional uncertainty", "description": "Asserted positional uncertainty of the geometry with unit and basis.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006", "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "Derivation provenance is a graph of references to entities, activities and agents that are held and versioned by the producing and provenance systems. Copying survey reports, grid files or operation definitions into a local artifact would duplicate content this model does not own and cannot keep current; the correct representation is a resolvable reference set carried inline with the record." }, { "id": "geo-govctl-review-approval-evidence", "name": "Independent review and approval evidence", "description": "Captures the evidence that an independent reviewer examined the geometry and its CRS binding, which checks were required, who approved release, and how rejection or conditional approval is recorded.", "source_refs": [ "SRC-006", "SRC-040", "SRC-046", "SRC-043" ], "questions": [ { "id": "geo-govctl-q-review-evidence", "text": "What evidence shows an independent reviewer examined this geometry and its coordinate-reference binding?", "kind": "evidence", "answer_data": [ "Reviewer reference and review completion time", "Scope of the review and items examined", "Reference to the review record" ] }, { "id": "geo-govctl-q-required-checks", "text": "Which checks must pass before release, and which are advisory only?", "kind": "validation", "answer_data": [ "Named check list with blocking or advisory status per check", "Outcome per check with recorded value where numeric", "Statement that check execution is performed by an external validation component" ] }, { "id": "geo-govctl-q-approval-authority", "text": "Who approved release of this version and under what authority basis?", "kind": "authority", "answer_data": [ "Approver reference and approval time", "Authority basis or delegation reference", "Approval scope limited to the specific version identifier" ] }, { "id": "geo-govctl-q-rejection-handling", "text": "How are rejection and conditional approval recorded and resubmitted?", "kind": "process", "answer_data": [ "Outcome code (approved, conditionally approved, rejected)", "Conditions attached and their resolution status", "Resubmission reference linking to the superseding review" ] } ], "data_elements": [ { "id": "geo-govctl-de-review-outcome", "name": "Review outcome", "description": "Coded result of the independent review with reviewer reference and completion time.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-046" ] }, { "id": "geo-govctl-de-check-result", "name": "Check result", "description": "Named check with blocking or advisory status and its recorded outcome.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "geo-govctl-de-approval-record-reference", "name": "Approval record reference", "description": "Reference to the approval decision, its approver and its scope.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-046", "SRC-043" ] } ], "artifacts": [ { "id": "geo-govctl-review-approval-record", "name": "Review and approval record", "description": "The record of an independent review of a geometry and coordinate-reference version: items examined, check outcomes, reviewer and approver references, conditions attached and the resulting release decision.", "media_or_form": [ "structured review record", "countersigned report", "checklist attachment" ], "serial": true, "identity_strategy": "Authoritative master-system identifier from the adopting Dimension's review register where one exists; otherwise a governed IRI, otherwise a ULID. Serial ordering is a monotonic zero-padded sequence scoped to the attachment identifier, and contains no date component.", "source_refs": [ "SRC-043", "SRC-046", "SRC-040" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "geo-govctl-exposure-records-bundle", "name": "Exposure, Rights and Records Control", "description": "What may be released about a location and at what precision, under which licence and attribution obligations, how long the record is kept, and which external profiles and governance records it points to.", "rationale": "Coordinate values can be sensitive, and the definitions, grids and source geometries used to produce them carry licence conditions that differ from read access: the EPSG terms permit use but restrict for-profit distribution and require ownership acknowledgement, and transformation grids split into freely redistributable and non-redistributable sets. Sensitivity handling has an established grid-based generalization practice with provider-owned classification and mandatory review dates, while retention and disposition are owned by records policy. This bundle governs those release and retention obligations without claiming enforcement.", "source_refs": [ "SRC-039", "SRC-033", "SRC-044", "SRC-043", "SRC-046" ], "layers": [ { "id": "geo-govctl-release-control-layer", "name": "Release Control: Sensitivity, Rights and Licensing", "description": "Classification of sensitive locations with the matching precision-reduction policy, and the licence, attribution and redistribution obligations attached to definitions, grids and source geometries.", "source_refs": [ "SRC-044", "SRC-039", "SRC-033", "SRC-046" ], "findings": [ { "id": "geo-govctl-sensitive-location-control", "name": "Sensitive-location classification and precision reduction", "description": "Classifies whether a location is sensitive, records who determined that, fixes the generalization method and the released precision against the precision retained internally, and requires the generalization to be disclosed and periodically re-reviewed.", "source_refs": [ "SRC-044", "SRC-006", "SRC-042", "SRC-045" ], "questions": [ { "id": "geo-govctl-q-sensitivity-basis", "text": "On what basis is this location classified as sensitive, and which party determined it?", "kind": "classification", "answer_data": [ "Sensitivity category from a graded controlled list", "Reason code and free-text justification", "Determining party reference, which is the data provider or host-object owner" ] }, { "id": "geo-govctl-q-generalization-method", "text": "Which generalization method applies, and what precision is released compared with the precision retained?", "kind": "privacy", "answer_data": [ "Method code, with grid-based coordinate rounding preferred over randomization", "Released precision expressed as rounding level or grid cell size, and the resulting uncertainty in metres", "Retained internal precision held under restricted access" ] }, { "id": "geo-govctl-q-generalization-disclosure", "text": "How is the fact and degree of generalization disclosed to downstream consumers?", "kind": "quality", "answer_data": [ "Generalization statement carried with every released copy", "Information-withheld statement naming what was removed", "Coordinate uncertainty value consistent with the released precision" ] }, { "id": "geo-govctl-q-sensitivity-review-cycle", "text": "When is the sensitivity classification reviewed again, and what triggers an earlier review?", "kind": "temporal", "answer_data": [ "Next review date recorded with the classification", "Trigger events such as changed protection status, publication or host-object change", "Reviewer reference and previous review outcome" ] }, { "id": "geo-govctl-q-full-precision-recipients", "text": "Which recipients may receive full precision, and which component decides that?", "kind": "access", "answer_data": [ "Recipient class attribute values supplied to the external decision component", "Statement that the decision point evaluates and the enforcement point applies the outcome", "Reference to the applicable policy identifier, without reproducing the policy" ] } ], "data_elements": [ { "id": "geo-govctl-de-sensitivity-category", "name": "Sensitivity category", "description": "Graded classification of location sensitivity with its reason code.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-044" ] }, { "id": "geo-govctl-de-generalization-method", "name": "Generalization method", "description": "Method used to reduce released precision, with its parameters such as rounding level or grid cell size.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-044" ] }, { "id": "geo-govctl-de-released-precision", "name": "Released precision", "description": "Precision of the coordinates as released, with the corresponding uncertainty in metres.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-044", "SRC-006" ] }, { "id": "geo-govctl-de-sensitivity-review-date", "name": "Sensitivity review date", "description": "Date on which the sensitivity classification is next due for reassessment.", "value_kind": "date", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-044" ] } ], "artifacts": [ { "id": "geo-govctl-sensitivity-assessment-record", "name": "Sensitivity assessment and generalization statement", "description": "The recorded assessment of location sensitivity for a host object: category, reason, determining party, chosen generalization method and parameters, released versus retained precision, disclosure wording and next review date.", "media_or_form": [ "structured assessment record", "narrative justification note", "generalization disclosure statement" ], "serial": false, "identity_strategy": "Authoritative master-system identifier from the adopting Dimension's assessment register where one exists; otherwise a governed IRI in the Dimension namespace; otherwise a ULID. The review date is an attribute, never the identifier.", "source_refs": [ "SRC-044", "SRC-006" ] } ], "inline_only_rationale": null }, { "id": "geo-govctl-rights-licensing-control", "name": "Rights, licensing and redistribution obligations", "description": "Declares the licence and attribution conditions attached to each input - CRS definitions, transformation grids and source geometries - and to the derived geometry, and keeps read access strictly distinct from redistribution rights.", "source_refs": [ "SRC-039", "SRC-033", "SRC-046", "SRC-047" ], "questions": [ { "id": "geo-govctl-q-input-licences", "text": "Under which licence is each input held - CRS definition, transformation grid and source geometry?", "kind": "ownership", "answer_data": [ "Licence reference per input with its owner and version", "Statement of the owner acknowledgement required by the definition supplier", "Recorded uncertainty where an input licence is unknown" ] }, { "id": "geo-govctl-q-derived-redistribution", "text": "May the derived geometry be redistributed, and under what conditions?", "kind": "constraint", "answer_data": [ "Redistribution permission state (permitted, permitted with attribution, prohibited, undetermined)", "Conditions inherited from the most restrictive input", "Prohibition on for-profit distribution where the input licence forbids it" ] }, { "id": "geo-govctl-q-attribution-notices", "text": "Which attribution or acknowledgement notices must accompany a published copy?", "kind": "requirement", "answer_data": [ "Exact notice text required per input", "Placement obligation for the notice in any transmission or publication", "Rule that modified parameter values may not be attributed to the original dataset" ] }, { "id": "geo-govctl-q-access-versus-redistribution", "text": "Does the ability to read a grid, definition or source geometry imply any right to redistribute it?", "kind": "access", "answer_data": [ "Explicit separation of access rights from licence terms", "Flag marking inputs that are obtainable but not freely redistributable", "Reference to the access policy identifier that is evaluated elsewhere" ] } ], "data_elements": [ { "id": "geo-govctl-de-input-licence", "name": "Input licence declaration", "description": "Licence reference, owner and required acknowledgement for one input used by the attachment.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-039", "SRC-033", "SRC-046" ] }, { "id": "geo-govctl-de-redistribution-state", "name": "Redistribution state", "description": "Coded permission state for redistributing the derived geometry, independent of read access.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-033", "SRC-046" ] }, { "id": "geo-govctl-de-attribution-notice", "name": "Attribution notice text", "description": "Verbatim acknowledgement text that must travel with any published copy.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-039" ] }, { "id": "geo-govctl-de-access-rights-reference", "name": "Access rights reference", "description": "Reference to the access-rights statement or policy identifier applying to the record, recorded separately from licence terms.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-046", "SRC-042" ] } ], "artifacts": [ { "id": "geo-govctl-rights-and-attribution-notice", "name": "Rights and attribution notice set", "description": "The collected licence references, ownership acknowledgements and redistribution conditions for the CRS definitions, grids and source geometries used, in the form that must accompany a published copy of the geometry.", "media_or_form": [ "structured rights declaration", "notice text block", "licence reference list" ], "serial": false, "identity_strategy": "Governed IRI in the adopting Dimension namespace where no master-system rights register exists; a master-system rights-record identifier takes precedence, and a ULID is the fallback. Licence version is an attribute of the notice, not part of its identifier.", "source_refs": [ "SRC-039", "SRC-033", "SRC-046" ] } ], "inline_only_rationale": null } ] }, { "id": "geo-govctl-records-external-layer", "name": "Retention Control and External Governance References", "description": "Retention class, legal hold and tombstone markers for the attachment's own records, and the declared interoperability profiles and references to externally held audit, decision and registry records.", "source_refs": [ "SRC-043", "SRC-040", "SRC-046", "SRC-003" ], "findings": [ { "id": "geo-govctl-retention-hold-tombstone", "name": "Retention class, legal hold and tombstone marking", "description": "Records the retention class applying to the attachment and its supporting evidence, whether a hold suspends disposition, what a tombstone asserts after removal, and which external component executes destruction or transfer.", "source_refs": [ "SRC-043", "SRC-046", "SRC-040" ], "questions": [ { "id": "geo-govctl-q-retention-class", "text": "What retention class applies to this attachment and to its supporting evidence records?", "kind": "retention", "answer_data": [ "Retention class code and the schedule reference it derives from", "Retention trigger event and retention period", "Whether evidence records follow the same class as the geometry record" ] }, { "id": "geo-govctl-q-legal-hold", "text": "Is this record under a hold that suspends disposition, and who imposed it?", "kind": "constraint", "answer_data": [ "Hold flag with imposing party reference and imposition time", "Scope of the hold across versions and evidence records", "Release condition and releasing party, with disposition suspended until release" ] }, { "id": "geo-govctl-q-tombstone-content", "text": "What remains visible after removal, and what does the tombstone assert?", "kind": "state", "answer_data": [ "Retained identifier, status marker and removal time", "Statement of what was removed and under which authority", "Successor reference where the attachment was replaced rather than destroyed" ] }, { "id": "geo-govctl-q-disposition-executor", "text": "Which component executes destruction or transfer, and on whose authority?", "kind": "authority", "answer_data": [ "Reference to the records system responsible for execution", "Reference to the adopting Dimension policy authorising the action", "Explicit statement that this model marks state and never performs deletion" ] }, { "id": "geo-govctl-q-host-retirement", "text": "What happens to the attachment when the host object is retired or transferred?", "kind": "lifecycle", "answer_data": [ "Rule that the attachment follows the host disposition outcome", "Transfer package contents when the host moves to another custodian", "Orphan handling when the host reference can no longer be resolved" ] } ], "data_elements": [ { "id": "geo-govctl-de-retention-class", "name": "Retention class", "description": "Coded retention class with the schedule reference and retention trigger it derives from.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-043" ] }, { "id": "geo-govctl-de-hold-flag", "name": "Hold flag", "description": "Marks that disposition is suspended, with imposing party and release condition.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-043" ] }, { "id": "geo-govctl-de-tombstone-state", "name": "Tombstone state", "description": "Post-removal marker retaining the identifier, status, removal time and successor reference.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-040", "SRC-043" ] }, { "id": "geo-govctl-de-disposition-executor-reference", "name": "Disposition executor reference", "description": "Reference to the external records component that performs destruction or transfer.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-043" ] } ], "artifacts": [ { "id": "geo-govctl-disposition-tombstone-record", "name": "Disposition and tombstone record", "description": "The record that marks an attachment as held, disposed or transferred: retention class applied, hold history, removal or transfer time, authority reference, and the tombstone content left in place of the removed material.", "media_or_form": [ "structured tombstone record", "disposition marker entry", "transfer manifest reference" ], "serial": true, "identity_strategy": "Authoritative master-system identifier from the records system where one exists; otherwise a governed IRI, otherwise a ULID. Serial ordering is a monotonic zero-padded sequence scoped to the attachment identifier; removal timestamps are attributes and never form the identifier.", "source_refs": [ "SRC-043", "SRC-040" ] } ], "inline_only_rationale": null }, { "id": "geo-govctl-interop-profile-external-refs", "name": "Declared interoperability profile and external governance references", "description": "Declares which interoperability profile or encoding contract the attachment claims, distinguishes alignment from evidenced conformance, and holds resolvable references to externally owned audit, decision and registry records.", "source_refs": [ "SRC-003", "SRC-006", "SRC-040", "SRC-047", "SRC-041" ], "questions": [ { "id": "geo-govctl-q-declared-profile", "text": "Which interoperability profile or encoding contract does this attachment declare?", "kind": "interoperability", "answer_data": [ "Profile identifier with version and issuing organisation", "Encoding contract items such as axis order, units and coordinate-value ordering as declared by the cited CRS", "Regional or sectoral guidance identifier where a public authority mandates a CRS set" ] }, { "id": "geo-govctl-q-alignment-versus-conformance", "text": "Is the declaration an alignment statement or an evidenced conformance claim?", "kind": "evidence", "answer_data": [ "Claim type marked as alignment or as conformance", "Reference to the test or certification evidence where conformance is claimed", "Default position that an unevidenced claim is recorded as alignment only" ] }, { "id": "geo-govctl-q-external-record-references", "text": "Which externally held audit, decision or registry records does this attachment point to?", "kind": "relationship", "answer_data": [ "Resolvable reference and owning system per external record", "Reference type (audit entry, decision record, registry entry)", "Statement that the referenced content is neither copied nor governed here" ] }, { "id": "geo-govctl-q-profile-conflict", "text": "How is a conflict between two declared external specifications recorded?", "kind": "exception", "answer_data": [ "Conflict statement naming both specifications and the conflicting requirement", "Precedence decision reference and the authority that made it", "Open-conflict marker where no precedence has been decided" ] } ], "data_elements": [ { "id": "geo-govctl-de-profile-declaration", "name": "Profile declaration", "description": "Identifier and version of a declared interoperability profile, with the claim type.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006", "SRC-047" ] }, { "id": "geo-govctl-de-conformance-evidence-reference", "name": "Conformance evidence reference", "description": "Reference to test or certification evidence supporting a conformance claim.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-006" ] }, { "id": "geo-govctl-de-external-record-reference", "name": "External governance record reference", "description": "Resolvable reference to an audit, decision or registry record held and governed by another system.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-041", "SRC-040" ] }, { "id": "geo-govctl-de-conflict-note", "name": "Specification conflict note", "description": "Recorded conflict between two declared specifications, with any precedence decision reference.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-040", "SRC-047" ] } ], "artifacts": [], "inline_only_rationale": "This finding is deliberately reference-only. Profiles, certification evidence, registry entries and audit records are authored, versioned and retained by other organisations and systems; copying them here would create stale duplicates and would imply ownership of audit-trail and conformance-testing semantics that sit outside this model. The correct representation is a set of resolvable references plus a claim-type marker carried inline." } ] } ] }, { "id": "geo-svc-context-operations", "name": "Coordinate Context Operation Lifecycle", "description": "Operations that resolve, bind, correct and retire a geometry together with its coordinate reference context on a host record, expressed without reference to any storage engine or interface protocol.", "rationale": "The abstract referencing model makes a coordinate meaningless without its coordinate reference system, and ambiguous without a coordinate epoch where the frame is dynamic. Any read, binding or correction that does not carry the exact context version in force therefore produces an uninterpretable value, so context resolution and versioning are lifecycle concerns rather than presentation concerns.", "source_refs": [ "SRC-003", "SRC-011", "SRC-006" ], "layers": [ { "id": "geo-svc-resolution-and-binding", "name": "Resolution and Host Binding", "description": "How a caller determines which geometry and coordinate reference context apply at a stated instant, how that context is attached to a host record, and which preconditions a request must satisfy before any mutation is proposed.", "source_refs": [ "SRC-003", "SRC-011", "SRC-006" ], "findings": [ { "id": "geo-svc-as-of-read", "name": "As-of resolution of geometry and coordinate reference context", "description": "Determines which geometry version and which coordinate reference context version apply for a stated instant, which registry release and coordinate epoch qualify the returned coordinates, and what must be returned when no context is in force. Resolution never falls back to an implied default coordinate reference system.", "source_refs": [ "SRC-003", "SRC-011", "SRC-048", "SRC-051", "SRC-004" ], "questions": [ { "id": "geo-svc-q-asof-selector", "text": "Which instant governs this read: the event time the geometry is asserted to describe, or the observation time at which the record became known?", "kind": "temporal", "answer_data": [ "Event instant as an RFC 3339 date-time with seconds and explicit offset or Z", "Observation or ingestion instant in the same form", "Identifier of the context version selected by that instant", "Selector precedence rule applied when both are supplied" ] }, { "id": "geo-svc-q-asof-epoch", "text": "Is the resolved reference frame dynamic, and if so which coordinate epoch qualifies the returned coordinates?", "kind": "state", "answer_data": [ "Dynamic or static frame indicator", "Coordinate epoch as a decimal year", "Frame reference epoch of the datum", "Statement that coordinates are ambiguous where the frame is dynamic and the epoch is absent" ] }, { "id": "geo-svc-q-asof-registry", "text": "Which registry release was in force for the resolved context, and what was the status of the referenced code at that release?", "kind": "provenance", "answer_data": [ "Registry authority identifier", "Registry release version and its release date", "Record status: valid, superseded or deprecated", "Superseding record reference where one exists" ] }, { "id": "geo-svc-q-asof-auth", "text": "Which authorization reference accompanied the read, and which external decision reference was returned for it?", "kind": "access", "answer_data": [ "Authorization reference identifier presented by the caller", "External policy decision reference and outcome indicator", "Scope of the subject and resource the decision covered", "Indicator of whether a precision-reduced view was served" ] }, { "id": "geo-svc-q-asof-fail", "text": "What is reported when no context version is in force at the requested instant?", "kind": "exception", "answer_data": [ "Explicit resolution failure code", "Nearest earlier and nearest later context version references", "Assertion that no default coordinate reference system was substituted", "Diagnostic reason text" ] } ], "data_elements": [ { "id": "geo-svc-de-asof-instant", "name": "As-of instant", "description": "The instant against which the applicable geometry and coordinate reference context version are selected, qualified by which time axis it denotes.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-048", "SRC-003" ] }, { "id": "geo-svc-de-context-version-ref", "name": "Resolved context version reference", "description": "Reference to the exact geometry and coordinate reference context version that the resolution returned.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "geo-svc-de-coordinate-epoch", "name": "Coordinate epoch", "description": "The reference time, expressed as a decimal year, to which coordinates in a dynamic reference frame are referred. It is a geodetic quantity and is never used as a record timestamp.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-011", "SRC-052" ] }, { "id": "geo-svc-de-registry-release-ref", "name": "Registry release reference", "description": "Authority and release version of the geodetic registry that was in force when the context was resolved, together with the status of the referenced code at that release.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-051", "SRC-040" ] }, { "id": "geo-svc-de-resolution-outcome", "name": "Resolution outcome code", "description": "Coded result of the as-of resolution distinguishing resolved, ambiguous, not-in-force and unresolvable-reference outcomes.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-011", "SRC-003" ] } ], "artifacts": [ { "id": "geo-svc-resolved-context-snapshot", "name": "Resolved coordinate context snapshot", "description": "A reported, non-authoritative snapshot of exactly what a caller was given for a stated as-of instant: geometry version reference, coordinate reference context, coordinate epoch, registry release and outcome code. It is evidence of what was resolved, not a second copy of the record.", "media_or_form": [ "structured record", "serialized document", "interface response payload" ], "serial": true, "identity_strategy": "Identified by the host system's own snapshot record key where one is issued; otherwise a Dimension-assigned ULID. The snapshot always carries, but is never identified by, the as-of instant.", "source_refs": [ "SRC-011", "SRC-003", "SRC-048" ] } ], "inline_only_rationale": null }, { "id": "geo-svc-host-binding", "name": "Binding a geometry and coordinate reference context to a host record", "description": "Establishes the attachment between a host record and a geometry with its coordinate reference context: which identifier binds them, what role the geometry plays for the host, how many such geometries may coexist, which reference frame kind is bound, and which storage coordinate reference system is declared.", "source_refs": [ "SRC-003", "SRC-011", "SRC-006", "SRC-053", "SRC-040" ], "questions": [ { "id": "geo-svc-q-binding-identity", "text": "Which identifier binds this geometry and coordinate reference context to its host, and which authority issued that identifier?", "kind": "identity", "answer_data": [ "Binding identifier and its issuing authority", "Host record reference and the host model that owns it", "Identifier tier used: master-system key, governed global identifier or Dimension-assigned identifier" ] }, { "id": "geo-svc-q-binding-role", "text": "What role does this geometry play for the host, and how many geometries of that role may coexist?", "kind": "composition", "answer_data": [ "Geometry role code, for example extent, representative point, service area or centroid", "Cardinality permitted for that role", "Rule for selecting a primary geometry where several exist at differing accuracy or time" ] }, { "id": "geo-svc-q-binding-crs-kind", "text": "Which kind of coordinate reference system is bound, and is its datum a single realization or an ensemble?", "kind": "classification", "answer_data": [ "CRS kind: geodetic, projected, vertical, compound, engineering, parametric or temporal", "Reference frame or datum ensemble reference", "Ensemble indicator and the stated ensemble accuracy where applicable", "Coordinate system axes with their units and declared order" ] }, { "id": "geo-svc-q-binding-storage-crs", "text": "Which coordinate reference system is declared as the storage CRS for this binding, and which others may it be served in?", "kind": "interoperability", "answer_data": [ "Storage CRS reference and its coordinate epoch where the frame is dynamic", "List of CRS references the binding may be served in", "Statement that any served CRS other than storage requires a pinned transformation" ] } ], "data_elements": [ { "id": "geo-svc-de-binding-id", "name": "Binding identifier", "description": "Stable identifier for the attachment of a geometry and coordinate reference context to a host record.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-040", "SRC-006" ] }, { "id": "geo-svc-de-host-ref", "name": "Host record reference", "description": "Reference to the record whose spatial location this mixin describes; the host owns the identity and lifecycle of the thing itself.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-006" ] }, { "id": "geo-svc-de-geometry-role", "name": "Geometry role", "description": "Coded role the geometry plays for the host, distinguishing several coexisting geometries of the same host.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-006" ] }, { "id": "geo-svc-de-crs-ref", "name": "Coordinate reference system reference", "description": "Reference to the CRS definition as authority, code and registry release, or as a governed definition URI.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-051", "SRC-040" ] }, { "id": "geo-svc-de-crs-kind", "name": "Coordinate reference system kind", "description": "Classification of the bound CRS as geodetic, projected, vertical, compound, engineering, parametric or temporal.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003" ] }, { "id": "geo-svc-de-ensemble-flag", "name": "Datum ensemble indicator", "description": "Indicates that the referenced datum is an ensemble of realizations rather than a single realization, with the ensemble accuracy that bounds its internal ambiguity.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-051" ] }, { "id": "geo-svc-de-storage-crs", "name": "Declared storage CRS", "description": "The CRS in which the bound coordinates are held, distinguished from any CRS in which they may be served.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] } ], "artifacts": [ { "id": "geo-svc-binding-record", "name": "Geometry and coordinate reference binding record", "description": "The reported binding proposal or current binding state: host reference, geometry role, geometry value, coordinate reference context, storage CRS and permitted served CRS. Committing it to storage is performed by an external system.", "media_or_form": [ "structured record", "serialized document", "tabular column set with attached metadata" ], "serial": false, "identity_strategy": "Identified by the host system's authoritative binding key where the host system of record issues one; otherwise by a governed definition URI where the binding is itself published; otherwise by a Dimension-assigned UUID or ULID.", "source_refs": [ "SRC-040", "SRC-006", "SRC-011" ] } ], "inline_only_rationale": null }, { "id": "geo-svc-request-preconditions", "name": "Operation preconditions, idempotency and explicit failure", "description": "The precondition envelope that every geometry or coordinate reference operation carries: the idempotency key that makes a repeated request safe, the version precondition that rejects a stale write, the authorization reference resolved by an external decision point, and the failure vocabulary that forbids silent defaulting.", "source_refs": [ "SRC-011", "SRC-004", "SRC-049", "SRC-002" ], "questions": [ { "id": "geo-svc-q-precond-idempotency", "text": "Which idempotency key scopes a repeated create or correction request, and over what window must the same key yield the same reported outcome?", "kind": "constraint", "answer_data": [ "Idempotency key value and the scope it is unique within", "Replay window duration", "Outcome equivalence rule for a replayed key", "Behaviour when the same key arrives with a different payload" ] }, { "id": "geo-svc-q-precond-concurrency", "text": "Which version precondition must a mutating request carry so that a stale write is rejected rather than merged?", "kind": "requirement", "answer_data": [ "Expected version token of the current binding", "Comparison rule and rejection outcome on mismatch", "Statement that no automatic merge of geometry or CRS context is performed" ] }, { "id": "geo-svc-q-precond-authority", "text": "Which authorization reference and policy reference must accompany the request, and which external point returns the decision?", "kind": "authority", "answer_data": [ "Authorization reference identifier", "Policy reference identifier", "External decision point reference and returned decision reference", "Statement that this model performs no evaluation or enforcement" ] }, { "id": "geo-svc-q-precond-failure", "text": "Which distinct failure codes are emitted for an unresolvable CRS, a missing coordinate epoch, an unavailable transformation resource, a precondition mismatch and a hold conflict?", "kind": "exception", "answer_data": [ "Enumerated failure codes with their triggering condition", "Retryable or terminal classification for each code", "Required diagnostic references, such as the missing resource or blocking hold reference", "Prohibition on substituting a default CRS, epoch or ballpark result in place of a failure" ] } ], "data_elements": [ { "id": "geo-svc-de-idempotency-key", "name": "Idempotency key", "description": "Caller-supplied key that makes a repeated create or correction request produce the same reported outcome within a declared window.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "geo-svc-de-expected-version", "name": "Expected version token", "description": "Optimistic concurrency precondition naming the binding version the caller believes is current; a mismatch is a terminal rejection.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-041" ] }, { "id": "geo-svc-de-authorization-ref", "name": "Authorization reference", "description": "Reference to the authorization grant presented with the request. It is carried, never evaluated, by this model.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-006" ] }, { "id": "geo-svc-de-decision-ref", "name": "External policy decision reference", "description": "Reference to the decision returned by the external enforcement point, retained so that a report can be correlated by the audit owner.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "geo-svc-de-failure-code", "name": "Operation failure code", "description": "Coded, enumerated failure outcome that names the unsatisfied precondition or unresolvable reference.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011", "SRC-049" ] } ], "artifacts": [], "inline_only_rationale": "These elements are request-scoped parameters and returned outcome codes on a single operation call. They have no independent existence, no addressable state and no consumer beyond the call that carried them, so issuing an artifact for them would create a second, competing record of an operation. The durable trace of a request belongs to the external audit and provenance record model, which owns capture, correlation and retention of decision and idempotency references; reproducing it here would claim audit-trail ownership that this model explicitly does not hold. The context is therefore purely inline reference data attached to the operation envelope." } ] }, { "id": "geo-svc-correction-and-closure", "name": "Correction by Supersession and Closure", "description": "How a geometry or coordinate reference context is corrected without mutating an original, and how a binding is marked for closure with disposition readiness reported to the party that owns retention.", "source_refs": [ "SRC-041", "SRC-003", "SRC-051" ], "findings": [ { "id": "geo-svc-supersession-correction", "name": "Correction by supersession over immutable originals", "description": "Governs how a geometry value or a coordinate reference context is corrected: originals remain immutable, every correction is a new version that names what it supersedes and why, and every host reference or derived geometry affected by the correction is reported so referential integrity can be restored by their owners.", "source_refs": [ "SRC-041", "SRC-003", "SRC-051", "SRC-037" ], "questions": [ { "id": "geo-svc-q-supersede-states", "text": "Which states may a geometry and coordinate reference context version occupy between issue and supersession?", "kind": "lifecycle", "answer_data": [ "Enumerated version states, for example proposed, in force, superseded and invalidated", "Permitted state transitions and the trigger for each", "Instant of each transition as an RFC 3339 date-time with seconds and explicit offset or Z", "Rule that a superseded version remains readable and is never edited in place" ] }, { "id": "geo-svc-q-supersede-reason", "text": "Which prior version does this correction supersede, and what reason and evidence justify it?", "kind": "provenance", "answer_data": [ "Reference to the superseded version", "Correction reason code, for example measurement error, wrong CRS assignment, registry deprecation or reference-frame change", "Reference to the evidence that supports the correction", "Responsible agent reference for the correction" ] }, { "id": "geo-svc-q-supersede-impact", "text": "Which host references and derived geometries must be re-pointed or re-derived once this version is superseded?", "kind": "relationship", "answer_data": [ "List of incoming references to the superseded version", "List of derived geometries produced from it and their evidence record references", "Re-derivation obligation indicator per dependent", "Statement that re-pointing is executed by the owner of each dependent, not by this model" ] }, { "id": "geo-svc-q-supersede-threshold", "text": "Which classes of change require a new version rather than an annotation on the existing one?", "kind": "decision", "answer_data": [ "Change classes that force a new version, such as any coordinate value change, CRS reference change, epoch change or axis-order correction", "Change classes recordable as annotation, such as descriptive remarks", "Tolerance below which a coordinate change is still treated as a new version", "Rationale for each threshold" ] } ], "data_elements": [ { "id": "geo-svc-de-version-id", "name": "Context version identifier", "description": "Identifier of one immutable version of a geometry and coordinate reference context binding.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-041", "SRC-040" ] }, { "id": "geo-svc-de-supersedes-ref", "name": "Superseded version reference", "description": "Reference from a correction to the immediately prior version it replaces, forming an ordered supersession chain.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-041" ] }, { "id": "geo-svc-de-correction-reason", "name": "Correction reason code", "description": "Coded justification for issuing a new version, distinguishing data error from authority-driven change such as registry deprecation or reference-frame replacement.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-051", "SRC-037" ] }, { "id": "geo-svc-de-effective-interval", "name": "Effective interval", "description": "The interval during which a version is in force, bounded by instants recorded with seconds and an explicit offset, and kept distinct from any coordinate epoch.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-048", "SRC-003" ] }, { "id": "geo-svc-de-impacted-refs", "name": "Impacted reference set", "description": "The reported set of incoming references and derived geometries affected by a supersession, with a re-derivation obligation flag per entry.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-041", "SRC-037" ] } ], "artifacts": [ { "id": "geo-svc-supersession-record", "name": "Supersession and correction record", "description": "The issued record of one correction: new version reference, superseded version reference, reason code, responsible agent, effective interval and the impacted reference set. It is shaped as a derivation and revision assertion so that downstream owners can act on it.", "media_or_form": [ "structured record", "provenance assertion set", "serialized document" ], "serial": true, "identity_strategy": "Identified by the master system's own correction record key where the system of record issues one; otherwise by a Dimension-assigned ULID. The correction instant is recorded as an attribute and is never used as the identifier.", "source_refs": [ "SRC-041", "SRC-040", "SRC-048" ] } ], "inline_only_rationale": null }, { "id": "geo-svc-tombstone-readiness", "name": "Tombstone marking and disposition readiness", "description": "Marks a binding as invalidated and reports whether it is ready for disposition: which retention policy governs it, whether a hold is asserted, which incoming references would break, and what minimal residual payload may survive. Execution of destruction is never performed here.", "source_refs": [ "SRC-041", "SRC-006", "SRC-051" ], "questions": [ { "id": "geo-svc-q-tombstone-policy", "text": "Which retention rule governs disposition of this binding, and where is the governing policy defined?", "kind": "retention", "answer_data": [ "Retention policy reference and the model or authority that owns it", "Minimum retention period and its start trigger", "Statement that this model reports readiness only and executes no destruction" ] }, { "id": "geo-svc-q-tombstone-hold", "text": "Is a legal or regulatory hold asserted against this binding, and by which reference?", "kind": "state", "answer_data": [ "Hold asserted indicator", "Hold reference identifier and asserting authority", "Hold assertion instant with seconds and explicit offset or Z", "Rule that disposition readiness is false while any hold is unresolved" ] }, { "id": "geo-svc-q-tombstone-integrity", "text": "Which incoming references would break on destruction, and what minimal residual payload must survive as a tombstone?", "kind": "relationship", "answer_data": [ "List of incoming required and optional references", "Residual payload profile: binding identifier, invalidation instant and superseded-by reference", "Rule that no coordinate values are retained in the residual payload unless the retention owner directs otherwise", "Blocking reference list returned when integrity would be violated" ] }, { "id": "geo-svc-q-tombstone-privacy", "text": "Which coordinate precision or locational attributes must be removed or generalised before any residual record is kept?", "kind": "privacy", "answer_data": [ "Location sensitivity classification of the binding", "Generalisation or precision-reduction rule applied to any residual", "Reference to the jurisdiction-specific rule that set the threshold", "Indicator that generalisation was applied and by which reference" ] } ], "data_elements": [ { "id": "geo-svc-de-tombstone-id", "name": "Tombstone identifier", "description": "Identifier of the marker that records a binding as invalidated while preserving referential resolvability.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-041" ] }, { "id": "geo-svc-de-invalidation-instant", "name": "Invalidation instant", "description": "The instant at which the binding was asserted to be no longer valid, recorded with seconds and an explicit offset or Z and distinguished from any later physical destruction performed elsewhere.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-041", "SRC-048" ] }, { "id": "geo-svc-de-hold-ref", "name": "Hold reference", "description": "Reference to an asserted legal or regulatory hold that blocks disposition readiness.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-041" ] }, { "id": "geo-svc-de-retention-policy-ref", "name": "Retention policy reference", "description": "Reference to the externally owned retention rule that governs disposition of this binding.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-041" ] }, { "id": "geo-svc-de-residual-profile", "name": "Residual payload profile", "description": "Declares which fields survive in the tombstone and which are removed or generalised, including any locational precision reduction.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006", "SRC-041" ] } ], "artifacts": [ { "id": "geo-svc-tombstone-marker", "name": "Binding tombstone marker", "description": "The issued marker asserting that a binding is invalidated, carrying only the residual payload profile, the invalidation instant, any superseded-by reference and the disposition-readiness determination with blocking holds and references.", "media_or_form": [ "structured record", "provenance invalidation assertion", "serialized document" ], "serial": false, "identity_strategy": "Reuses the authoritative binding identifier issued by the host system of record so that dangling references still resolve; where no such identifier exists, a Dimension-assigned UUID is used. The invalidation instant is an attribute, never an identifier.", "source_refs": [ "SRC-041", "SRC-040" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "geo-svc-computation-operations", "name": "Geometry Computation, Comparison and Export", "description": "Operations that check, derive, relate and project geometry values: validating structure and coordinate reference context, pinning a transformation for external execution with reproducible evidence, gating comparison on compatible spatial semantics, and reporting loss on export into any binding.", "rationale": "Operation selection between two coordinate reference systems is heuristic and depends on registry content, locally available grids, area of use and engine version, so an unpinned transformation is not reproducible. Serializations each fix different defaults and each drop different parts of the context. Both facts make explicit pinning, explicit comparability preconditions and itemised loss reporting mandatory rather than advisory.", "source_refs": [ "SRC-049", "SRC-001", "SRC-002", "SRC-052", "SRC-050" ], "layers": [ { "id": "geo-svc-validation-and-transformation", "name": "Validation and Pinned Transformation", "description": "How a geometry and its coordinate reference context are checked for completeness and structural admissibility, and how a coordinate transformation is specified so that an external engine can execute it and return re-derivable evidence.", "source_refs": [ "SRC-003", "SRC-049", "SRC-053", "SRC-050" ], "findings": [ { "id": "geo-svc-context-validation", "name": "Validation of geometry structure and coordinate reference context completeness", "description": "Defines the checks that must pass before a geometry is published or used: structural admissibility for the declared geometry kind, mandatory and conditionally mandatory coordinate reference context fields, agreement between declared axes, units and coordinate tuples, and containment within the area of validity of the referenced CRS and operation.", "source_refs": [ "SRC-003", "SRC-053", "SRC-001", "SRC-052", "SRC-011" ], "questions": [ { "id": "geo-svc-q-validate-structure", "text": "Which structural conditions must a geometry satisfy for its declared geometry kind, and which failures are non-recoverable?", "kind": "validation", "answer_data": [ "Geometry kind from the simple feature hierarchy or an explicitly declared extension", "Structural checks such as ring closure, ring orientation, self-intersection, minimum vertex count and nesting of interior rings", "Per-check outcome with severity", "Non-recoverable failure list that blocks publication" ] }, { "id": "geo-svc-q-validate-context", "text": "Which coordinate reference context fields are mandatory before publication, and which become mandatory only for a dynamic reference frame?", "kind": "constraint", "answer_data": [ "Unconditionally mandatory fields: CRS reference, issuing authority and coordinate dimension", "Conditionally mandatory fields: coordinate epoch where the frame is dynamic, ensemble accuracy where the datum is an ensemble", "Distinction between an absent CRS field and an explicitly undefined CRS value", "Outcome when a mandatory field is missing" ] }, { "id": "geo-svc-q-validate-units", "text": "Do the declared axis units, axis order and coordinate dimension agree with the actual coordinate tuples?", "kind": "measurement", "answer_data": [ "Declared axis list with unit of measure and abbreviation per axis", "Declared axis order and the order actually present in the tuples", "Declared coordinate dimension versus observed tuple length", "Mismatch outcome and the axis at which it was detected" ] }, { "id": "geo-svc-q-validate-extent", "text": "Does the geometry fall within the stated area of validity of the referenced CRS and of any pinned operation?", "kind": "spatial", "answer_data": [ "Area of validity of the referenced CRS", "Area of use of any pinned coordinate operation", "Containment outcome, including partial containment", "Severity assigned to out-of-extent coordinates" ] }, { "id": "geo-svc-q-validate-severity", "text": "Which validation severities are distinguished, and which of them block publication rather than warn?", "kind": "quality", "answer_data": [ "Severity vocabulary, for example blocking, warning and informational", "Mapping of each check to a severity", "Rule for aggregating severities into an overall outcome", "Statement of who may waive a warning and under which reference" ] } ], "data_elements": [ { "id": "geo-svc-de-geometry-kind", "name": "Geometry kind", "description": "Classification of the geometry value within the simple feature hierarchy or an explicitly declared extension beyond it.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-053", "SRC-001" ] }, { "id": "geo-svc-de-coordinate-dimension", "name": "Coordinate dimension", "description": "Number of ordinates in each coordinate tuple, distinguished from the topological dimension of the geometry.", "value_kind": "number", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-002" ] }, { "id": "geo-svc-de-axis-declaration", "name": "Axis declaration", "description": "Ordered list of coordinate system axes with name, abbreviation, direction and unit of measure, establishing the authoritative tuple order for the bound CRS.", "value_kind": "collection", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-004" ] }, { "id": "geo-svc-de-validation-outcome", "name": "Validation outcome", "description": "Aggregate result of the validation run with per-check outcomes and severities.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-053", "SRC-011" ] }, { "id": "geo-svc-de-extent-check", "name": "Area-of-validity check result", "description": "Result of testing the geometry against the area of validity of the referenced CRS and the area of use of any pinned operation.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-049" ] } ], "artifacts": [ { "id": "geo-svc-validation-report", "name": "Geometry and context validation report", "description": "The issued report listing every check performed, its outcome, severity and the exact location or field at which it failed, together with the aggregate publication decision input. It reports; it does not gate publication itself.", "media_or_form": [ "structured record", "tabular result set", "serialized document" ], "serial": true, "identity_strategy": "Identified by the master system's validation run key where one is issued; otherwise a Dimension-assigned ULID, with the binding identifier and version carried as attributes. No date component is used as the identifier.", "source_refs": [ "SRC-053", "SRC-003", "SRC-040" ] } ], "inline_only_rationale": null }, { "id": "geo-svc-pinned-transformation", "name": "Externally executed transformation under a pinned operation with reproducibility evidence", "description": "Specifies a coordinate transformation as an explicit pin set rather than a request to convert: which operation, which engine and version, which registry release, which grid or deformation resources with checksums, which source and target epochs, and what accuracy is claimed. Execution belongs to an external engine; this finding governs what must be declared beforehand and what evidence must return.", "source_refs": [ "SRC-049", "SRC-003", "SRC-050", "SRC-041", "SRC-051" ], "questions": [ { "id": "geo-svc-q-pin-operation", "text": "Which coordinate operation is pinned for this transformation, and which candidate operations were considered and rejected?", "kind": "process", "answer_data": [ "Pinned operation reference by registry code, or an explicit pipeline definition where no registry code applies", "Operation kind: conversion, transformation, point motion operation or concatenation", "Candidate operations considered with the reason each was rejected", "Any pivot or intermediate CRS forced by the pin" ] }, { "id": "geo-svc-q-pin-resources", "text": "Which engine, registry release and transformation resources must be recorded so that the result can be re-derived exactly?", "kind": "provenance", "answer_data": [ "Engine identifier and version", "Registry release version used for operation lookup", "Grid and deformation model resource references with content digests and versions", "Responsible agent and the plan reference under which the run was executed" ] }, { "id": "geo-svc-q-pin-accuracy", "text": "What accuracy is claimed for the pinned operation, and is that claim taken from the registry or asserted by the executing engine?", "kind": "measurement", "answer_data": [ "Claimed accuracy value with unit", "Source of the claim: registry-published accuracy or engine assertion", "Indicator of unknown accuracy", "Statement of whether accuracy was propagated across a concatenated chain and how" ] }, { "id": "geo-svc-q-pin-degraded", "text": "What must be reported when a required grid is unavailable and only a lower-quality or ballpark operation remains?", "kind": "exception", "answer_data": [ "Missing resource identifiers and the operations they disqualified", "Ballpark or degraded-operation indicator on the result", "Rule that a degraded result is labelled and never presented as a registry-accuracy result", "Failure code emitted when no acceptable operation remains" ] }, { "id": "geo-svc-q-pin-ownership", "text": "Which party executes the pinned operation, and what does this model return when execution is delegated?", "kind": "ownership", "answer_data": [ "Executing system reference and its operator", "Statement that this model assembles the pin set and validates the returned evidence but performs no arithmetic", "Evidence fields the executing system must return", "Rejection outcome when returned evidence does not match the pin set" ] } ], "data_elements": [ { "id": "geo-svc-de-pinned-operation-ref", "name": "Pinned operation reference", "description": "The single operation that must be applied, given as a registry authority and code, or as an explicit pipeline definition where no registry code applies.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-049", "SRC-003", "SRC-051" ] }, { "id": "geo-svc-de-engine-ref", "name": "Engine reference and version", "description": "Identity and exact version of the external system that executes the operation; different versions may select or implement operations differently.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-049" ] }, { "id": "geo-svc-de-resource-pin-set", "name": "Transformation resource pin set", "description": "The grid, geoid and deformation model resources required by the pinned operation, each with a version and a content digest so availability and identity can be re-verified.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-049", "SRC-037" ] }, { "id": "geo-svc-de-claimed-accuracy", "name": "Claimed operation accuracy", "description": "Accuracy asserted for the pinned operation, with its unit and the source of the claim, or an explicit unknown marker.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-049", "SRC-051" ] }, { "id": "geo-svc-de-epoch-pair", "name": "Source and target coordinate epochs", "description": "The coordinate epochs of the input and output coordinates, required whenever either reference frame is dynamic or a point motion operation is involved.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "geo-svc-de-degraded-flag", "name": "Degraded or ballpark indicator", "description": "Marks a result produced without a required resource or by a synthetic ballpark operation, so that it is never consumed as a registry-accuracy value.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-049" ] } ], "artifacts": [ { "id": "geo-svc-operation-pin-set", "name": "Coordinate operation pin set", "description": "The complete, self-contained declaration handed to an executing system: source and target CRS references, source and target epochs, pinned operation, engine and version, resource pins with digests, accuracy expectation and acceptance tolerances.", "media_or_form": [ "structured record", "operation declaration document", "parameter set attached to an execution request" ], "serial": false, "identity_strategy": "Identified by a governed definition URI where the pin set is published for reuse; otherwise by a Dimension-assigned ULID. Component operations and resources retain their own authority-issued identifiers and are never renamed locally.", "source_refs": [ "SRC-049", "SRC-040", "SRC-051" ] }, { "id": "geo-svc-transformation-evidence-record", "name": "Transformation evidence record", "description": "The returned evidence for one executed transformation: pin set reference, resolved resource digests, executing agent, start and end instants, accuracy actually applicable, degraded indicators, and the derivation link from input coordinates to output coordinates.", "media_or_form": [ "structured record", "provenance derivation assertion set", "serialized document" ], "serial": true, "identity_strategy": "Identified by the executing system's own run identifier where the engine issues one; otherwise by a Dimension-assigned ULID. Execution instants are recorded as attributes and never used as identifiers.", "source_refs": [ "SRC-041", "SRC-049", "SRC-048" ] } ], "inline_only_rationale": null } ] }, { "id": "geo-svc-comparison-and-export", "name": "Comparison Preconditions and Export Loss", "description": "How two geometries are judged comparable before any spatial relation or measurement is admitted, and how a geometry is projected into a target binding with every loss itemised.", "source_refs": [ "SRC-002", "SRC-001", "SRC-052", "SRC-013" ], "findings": [ { "id": "geo-svc-comparability-gate", "name": "Compatibility preconditions for comparing or relating geometries", "description": "States the preconditions that must hold before a topological relation, distance, area or aggregation between two geometries is admissible: a common resolvable coordinate reference context, a compatible edge interpretation, an agreed epoch basis, and a relation family whose assumptions the geometries satisfy. Failure is reported, not silently repaired.", "source_refs": [ "SRC-002", "SRC-052", "SRC-003", "SRC-006" ], "questions": [ { "id": "geo-svc-q-compare-preconditions", "text": "Which conditions must hold before a topological or metric relation between two geometries is admitted?", "kind": "constraint", "answer_data": [ "Resolvable coordinate reference context on both operands", "Common CRS reference, or a pinned transformation reference that establishes one", "Agreement of coordinate dimension and unit of measure", "Outcome vocabulary: comparable, comparable only after a named transformation, or not comparable" ] }, { "id": "geo-svc-q-compare-edges", "text": "Are the edges of the two geometries interpreted as planar or spherical, and does the chosen relation family assume one of these?", "kind": "classification", "answer_data": [ "Edge interpretation declared for each operand", "Relation family selected: Simple Features, Egenhofer or region connection calculus", "Assumption of the selected family regarding edge interpretation", "Outcome when the two operands declare different edge interpretations" ] }, { "id": "geo-svc-q-compare-epoch", "text": "When the two operands carry different coordinate epochs, at which epoch is the comparison performed?", "kind": "temporal", "answer_data": [ "Coordinate epoch of each operand", "Selected comparison epoch and the rule that chose it", "Reference to the point motion or transformation pin that aligned the operands", "Outcome when one operand has no epoch and its frame is dynamic" ] }, { "id": "geo-svc-q-compare-ensemble", "text": "Does equality of the two CRS references actually establish equality of realization, or is one of them a datum ensemble?", "kind": "identity", "answer_data": [ "Ensemble indicator for each referenced datum", "Stated ensemble accuracy that bounds internal ambiguity", "Rule that ensemble membership does not establish comparability below the ensemble accuracy", "Precision threshold above which the comparison is admitted" ] }, { "id": "geo-svc-q-compare-failure", "text": "What is reported when comparability fails, and may a result ever be returned with a qualification instead?", "kind": "exception", "answer_data": [ "Explicit incomparability failure code with the unmet precondition named", "Conditions under which a qualified result may be returned with the transformation and residual uncertainty stated", "Prohibition on silently transforming an operand to force a comparison", "Reference to the evidence record for any transformation that was applied" ] } ], "data_elements": [ { "id": "geo-svc-de-comparability-outcome", "name": "Comparability outcome", "description": "Coded determination of whether two geometries may be related, may be related only after a named transformation, or may not be related.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-003" ] }, { "id": "geo-svc-de-common-crs-ref", "name": "Common coordinate reference basis", "description": "The CRS in which the comparison is to be performed, together with the transformation pin reference for any operand that had to be brought to it.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-049" ] }, { "id": "geo-svc-de-edge-interpretation", "name": "Edge interpretation", "description": "Declares whether the segments between coordinate tuples are interpreted as planar straight lines or as geodesics on the spheroid of the CRS.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-052" ] }, { "id": "geo-svc-de-epoch-alignment-basis", "name": "Epoch alignment basis", "description": "The coordinate epoch at which the comparison is performed and the rule or operation that aligned differing operand epochs to it.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-049" ] }, { "id": "geo-svc-de-relation-family", "name": "Relation family", "description": "The topological relation vocabulary applied to the comparison and the semantic assumptions it carries.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] } ], "artifacts": [], "inline_only_rationale": "Comparability is a precondition evaluated per comparison against the two operands as they stand at that moment; it has no independent subject and becomes stale the instant either operand is superseded. Issuing an artifact would create a durable assertion about a transient pairwise judgement and would compete with the transformation evidence record, which already carries the authoritative statement of any alignment that was actually performed. The determination is therefore expressed as inline predicate outcomes and failure codes returned with the comparison request, referencing the evidence record where a transformation was involved." }, { "id": "geo-svc-export-loss", "name": "Export and redaction into a target binding with loss reporting", "description": "Governs projection of a geometry and its coordinate reference context into a target serialization, database or interface binding. Each binding carries a different subset of the semantics, so the export declares the target, itemises every loss with its magnitude, records any redaction applied, and identifies loss classes that must block the export outright.", "source_refs": [ "SRC-001", "SRC-052", "SRC-013", "SRC-002", "SRC-011", "SRC-053" ], "questions": [ { "id": "geo-svc-q-export-target", "text": "Which target binding is requested, and which parts of the coordinate reference context can that binding not carry?", "kind": "interoperability", "answer_data": [ "Target binding identifier and version", "Context fields the binding cannot express, such as coordinate epoch, ensemble accuracy or per-geometry CRS", "Binding-fixed defaults that will override declared values, such as a mandated single CRS and axis order", "Declared CRS actually written into the export" ] }, { "id": "geo-svc-q-export-losses", "text": "Which specific losses occurred on this export, and what is the magnitude of each?", "kind": "evidence", "answer_data": [ "Itemised loss list by class: CRS collapse, epoch loss, dimension loss, precision truncation, curve linearisation, topology loss, measure or ordinate loss, antimeridian splitting", "Magnitude per item with unit, for example maximum displacement introduced by linearisation or truncation", "Reversibility indicator per item", "Count of features or vertices affected" ] }, { "id": "geo-svc-q-export-redaction", "text": "Which redaction or coordinate generalisation was applied before export, and under which reference?", "kind": "privacy", "answer_data": [ "Redaction or generalisation rule applied", "Reference to the policy or decision that required it", "Resulting effective precision or generalisation radius", "Indicator that the export is generalised, carried in the export itself" ] }, { "id": "geo-svc-q-export-blocking", "text": "Which loss classes must block an export rather than merely be reported?", "kind": "requirement", "answer_data": [ "Blocking loss classes and their thresholds", "Rationale tying each threshold to a stated fitness-for-use", "Override reference required to proceed despite a blocking loss", "Failure code emitted when a blocking loss is detected" ] } ], "data_elements": [ { "id": "geo-svc-de-target-binding-ref", "name": "Target binding reference", "description": "Identifies the serialization, database or interface binding the geometry is being projected into, with its version.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-052", "SRC-013" ] }, { "id": "geo-svc-de-exported-crs", "name": "Declared CRS on export", "description": "The CRS reference actually written into or asserted alongside the exported representation, which may be fixed by the binding rather than by the source context.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-011", "SRC-004" ] }, { "id": "geo-svc-de-loss-items", "name": "Loss item list", "description": "Itemised losses incurred by the export, each with class, magnitude, unit, reversibility and affected count.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-013", "SRC-052" ] }, { "id": "geo-svc-de-precision-applied", "name": "Applied precision or tolerance", "description": "The coordinate precision, rounding or linearisation tolerance applied during export, expressed with an explicit unit.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "geo-svc-de-redaction-ref", "name": "Redaction reference", "description": "Reference to the rule or decision that required generalisation or removal of locational detail before export.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "geo-svc-de-blocking-loss-flag", "name": "Blocking loss indicator", "description": "Marks that a loss of a class declared non-permissible was detected, which turns the export into an explicit failure.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011", "SRC-001" ] } ], "artifacts": [ { "id": "geo-svc-export-loss-report", "name": "Export loss and redaction report", "description": "The issued report accompanying one export: source binding version, target binding and version, declared CRS written out, itemised losses with magnitudes and reversibility, redaction reference, applied precision and the blocking determination.", "media_or_form": [ "structured record", "tabular result set", "serialized document accompanying the exported payload" ], "serial": true, "identity_strategy": "Identified by the exporting system's own export job key where one is issued; otherwise a Dimension-assigned ULID, with the source binding version and target binding reference carried as attributes rather than as identifier components.", "source_refs": [ "SRC-001", "SRC-052", "SRC-040" ] } ], "inline_only_rationale": null } ] } ] } ] }, "functions": [ { "id": "geo-core-fn-bind-geometry-to-host", "name": "Bind geometry value to host", "description": "Attach a geometry value to a host Spatial Thing with a declared role and cardinality, establishing the weak identity of the value without asserting any identity for the host.", "inputs": [ "Host thing reference", "Geometry value", "Geometry role code", "Default-geometry designation" ], "outputs": [ "Host binding record", "Weak identity key for the geometry value" ], "preconditions": [ "The host exists and is identified by its own model", "The role code is drawn from a governed role vocabulary", "At most one geometry per host carries the default designation" ], "effects": [ "The geometry becomes addressable through the host binding", "No host attribute other than the geometry binding is created or modified" ], "source_refs": [ "SRC-006", "SRC-004" ] }, { "id": "geo-core-fn-declare-crs-binding", "name": "Declare CRS binding", "description": "Record the resolvable CRS reference, axis order, longitude-range convention and, for a dynamic CRS, the coordinate epoch under which the coordinate tuples are to be read.", "inputs": [ "Geometry value", "CRS reference URI", "Axis order statement", "Coordinate epoch, where the CRS is dynamic" ], "outputs": [ "CRS binding record attached to the geometry value" ], "preconditions": [ "The CRS reference resolves against an external register that this model does not own", "The axis order is stated explicitly rather than inferred from tuple content" ], "effects": [ "Coordinate tuples become interpretable", "No CRS definition, datum parameter or transformation is created or executed here" ], "source_refs": [ "SRC-003", "SRC-011", "SRC-004" ] }, { "id": "geo-core-fn-classify-geometry", "name": "Classify geometry type and dimensionality", "description": "Assign the primitive or aggregate type, the interpolation rule, and the topological, coordinate and spatial dimensions together with the Z and M presence flags.", "inputs": [ "Coordinate sequence structure", "Declared ordinate set", "Type vocabulary reference" ], "outputs": [ "Type declaration", "Dimensionality profile with Z and M flags" ], "preconditions": [ "The ordinate set is uniform across all positions, or a partial-population rule is declared", "The type vocabulary is resolvable" ], "effects": [ "Consumers can parse tuples and select correct handling", "Any inconsistency between declared type and structure is raised as a classification failure rather than silently corrected" ], "source_refs": [ "SRC-002", "SRC-007", "SRC-001" ] }, { "id": "geo-core-fn-record-declared-extent", "name": "Record declared extent", "description": "Store an envelope or bounding box with its CRS, axis ordering, derivation method, containment guarantee and antimeridian or polar convention flags.", "inputs": [ "Extent tuples", "Extent CRS reference", "Derivation method", "Containment guarantee and tolerance" ], "outputs": [ "Declared extent record with provenance" ], "preconditions": [ "The derivation method is stated", "Where the extent crosses the antimeridian, the inverted-ordering convention is flagged" ], "effects": [ "The extent is available as a declared summary", "The extent is marked stale when the underlying coordinate payload digest changes; this function does not compute extents" ], "source_refs": [ "SRC-004", "SRC-001", "SRC-007" ] }, { "id": "geo-core-fn-record-validity-assertion", "name": "Record validity assertion", "description": "Store an externally produced validity or simplicity verdict against a named profile version, with tolerance, evaluator reference and assessment time.", "inputs": [ "Validity profile reference and version", "Verdict and failure reasons", "Tolerance", "Evaluator reference", "Assessment time" ], "outputs": [ "Validity assertion record referencing the external assessment" ], "preconditions": [ "The verdict was produced by an evaluator outside this model", "The profile version is resolvable" ], "effects": [ "The verdict becomes discoverable alongside the geometry value", "No evaluation, repair or enforcement is performed, and no evaluator audit record is reproduced" ], "source_refs": [ "SRC-002", "SRC-008", "SRC-007" ] }, { "id": "geo-core-fn-record-declared-relation", "name": "Record declared spatial relation", "description": "Store an asserted topological relation between two geometry values with its relation family, predicate, evaluation context and assertion status.", "inputs": [ "Subject geometry reference", "Related geometry reference", "Relation family and predicate", "Evaluation context (CRS, dimensionality, tolerance)", "Assertion status" ], "outputs": [ "Declared relation record" ], "preconditions": [ "Both operands carry a CRS binding, and any mismatch is declared", "The predicate belongs to the stated relation family" ], "effects": [ "The relation is available as reference data", "Cached relations are invalidated when either operand changes; predicate evaluation remains with the external engine" ], "source_refs": [ "SRC-002", "SRC-008" ] }, { "id": "geo-core-fn-project-to-encoding", "name": "Project geometry value to an encoding", "description": "Produce or consume a serialized projection of the geometry value under a named encoding profile, reporting which declared semantics the projection cannot carry.", "inputs": [ "Geometry value with its declarations", "Target encoding profile reference" ], "outputs": [ "Encoded geometry artifact with profile reference and digest", "Loss report listing unsupported ordinates, types or precision" ], "preconditions": [ "The encoding profile is named and resolvable", "The canonical form is defined by this model, not by the encoding" ], "effects": [ "A projection exists for transfer or storage", "Losses are recorded explicitly; a lossy projection never replaces the canonical value" ], "source_refs": [ "SRC-001", "SRC-005", "SRC-007", "SRC-002" ] }, { "id": "geo-core-fn-set-presence-state", "name": "Set geometry presence state", "description": "Declare whether a host binding holds an empty typed geometry, no geometry, an unknown location or a deliberately suppressed or generalized location.", "inputs": [ "Host binding reference", "Presence state code", "Suppression reason and generalization resolution, where applicable" ], "outputs": [ "Presence state record" ], "preconditions": [ "Suppression is authorized by a referenced disclosure policy", "No sentinel coordinate is used to represent any of these states" ], "effects": [ "Consumers can distinguish empty, absent, unknown and withheld locations", "The disclosure decision itself is made and logged by the referenced policy service, not here" ], "source_refs": [ "SRC-002", "SRC-004", "SRC-006", "SRC-007" ] }, { "id": "geo-crsid-fn-resolve-reference", "name": "Resolve a CRS reference to an authoritative definition", "description": "Take an authority/code pair or definition URI and obtain the governing authority's record, reporting the registry release actually served.", "inputs": [ "authority name token", "authority code or definition URI", "requested registry version or wildcard token" ], "outputs": [ "resolved authority definition", "registry version actually served", "resolution outcome and diagnostics" ], "preconditions": [ "the identifier is expressed in an accepted form with an explicit authority", "the authority is a recognised custodian rather than a mirror or vendor catalogue" ], "effects": [ "a resolution event with an RFC 3339 timestamp is recorded against the reference", "an unresolvable or ambiguous reference is flagged, never silently defaulted to a fallback CRS" ], "source_refs": [ "SRC-011", "SRC-014", "SRC-015" ] }, { "id": "geo-crsid-fn-pin-snapshot", "name": "Pin a registry snapshot with provenance", "description": "Capture one resolved authority definition as an immutable snapshot carrying registry version, retrieval URL, retrieval time and a content digest.", "inputs": [ "resolved authority definition", "registry version", "retrieval URL", "identity of the retrieving agent" ], "outputs": [ "pinned definition snapshot", "content digest and algorithm", "provenance record" ], "preconditions": [ "the definition was resolved from the custodian registry", "a canonical serialization has been declared for digest computation" ], "effects": [ "the snapshot becomes immutable and is superseded rather than edited", "the prior pin is retained with a supersession pointer for as long as data cites it" ], "source_refs": [ "SRC-012", "SRC-014", "SRC-015" ] }, { "id": "geo-crsid-fn-materialize-axis-order", "name": "Materialize explicit axis order and units", "description": "Read axis name, abbreviation, direction, order, unit and range from the authoritative definition and record them explicitly, refusing to infer any of them from a code, label or encoding convention.", "inputs": [ "pinned or resolved CRS definition" ], "outputs": [ "explicit ordered axis list with units and declared ranges", "citation of the element each value was read from", "gap findings where the definition is silent" ], "preconditions": [ "an authoritative definition is available for the CRS", "the definition's coordinate system element is present" ], "effects": [ "axis order is stated as read, with its source element cited", "a definition lacking explicit axis information yields a gap finding rather than a default order" ], "source_refs": [ "SRC-003", "SRC-012", "SRC-001", "SRC-018" ] }, { "id": "geo-crsid-fn-check-definition-completeness", "name": "Check definition completeness against required elements", "description": "Compare a CRS definition against the elements ISO 19111 requires for its subtype and report what is missing.", "inputs": [ "CRS definition", "CRS subtype as read from the definition", "required-element list for that subtype" ], "outputs": [ "completeness finding per required element", "overall completeness verdict" ], "preconditions": [ "the subtype was determined from the definition rather than guessed from a code or name" ], "effects": [ "missing datum, coordinate system, axis, unit or subtype elements are reported as findings", "findings are handed to the adopting Dimension's validation and enforcement services, which decide and act on them" ], "source_refs": [ "SRC-003", "SRC-012" ] }, { "id": "geo-crsid-fn-observe-record-status", "name": "Observe registry record status and replacement pointers", "description": "Read the authority's current validity status for a referenced record and record it with a separate observation time.", "inputs": [ "CRS reference", "authority record as resolved" ], "outputs": [ "observed status value and deprecated flag", "replacement authority code where the authority publishes one", "observation timestamp" ], "preconditions": [ "the authority publishes a status for the record, or its absence is recorded as unknown" ], "effects": [ "the observed status is stored with its observation time kept distinct from the authority's effective date", "migration to a replacement CRS is proposed for a named approver, never executed by this model" ], "source_refs": [ "SRC-014", "SRC-015", "SRC-016", "SRC-017" ] }, { "id": "geo-crsid-fn-assess-applicability", "name": "Assess a use against the declared domain of validity", "description": "Compare an intended use and a subject's extent against the CRS scope and domain of validity, and report fit.", "inputs": [ "CRS scope and extent as declared by the authority", "intended use description", "extent of the data or subject" ], "outputs": [ "applicability assessment", "out-of-extent findings", "recorded justification where the use is still proposed" ], "preconditions": [ "the authority declares a scope and extent, or the absence of one is recorded as a gap" ], "effects": [ "out-of-extent use is surfaced for a named approver with an expiry", "no coordinates are altered and no use is blocked by this model" ], "source_refs": [ "SRC-003", "SRC-012", "SRC-011" ] }, { "id": "geo-crsid-fn-compare-definitions", "name": "Compare two CRS definitions for equivalence", "description": "Compare two definitions element by element - datum, ellipsoid, prime meridian, coordinate system, axis order and units - and report agreement, difference, and difference in axis order alone.", "inputs": [ "first CRS definition", "second CRS definition", "numeric tolerance for parameter comparison" ], "outputs": [ "element-level agreement report", "axis-order-only difference flag", "material difference findings" ], "preconditions": [ "both definitions are available in a comparable canonicalized form" ], "effects": [ "definitions describing the same frame but differing in axis order are distinguished from definitions describing different frames", "no coordinate values are converted and no transformation is selected or applied" ], "source_refs": [ "SRC-003", "SRC-012", "SRC-001", "SRC-018" ] }, { "id": "geo-crsdyn-fn-declare-reference-binding", "name": "Declare coordinate reference binding", "description": "Attach a resolvable coordinate reference to a subject's coordinate set and, where the underlying frame is dynamic, attach the coordinate epoch and its binding scope, producing a coordinate metadata record.", "inputs": [ "subject coordinate set identifier", "coordinate reference identifier as a governed IRI or register authority, code and version", "coordinate epoch where the frame is dynamic", "declared binding scope" ], "outputs": [ "coordinate metadata record", "binding completeness state", "list of unmet binding requirements" ], "preconditions": [ "the coordinate reference resolves to a definition or to a governed snapshot", "the frame dynamics classification for the reference is recorded" ], "effects": [ "the coordinate set becomes interpretable without out-of-band assumptions about frame or epoch", "an unresolved reference or a missing epoch on a dynamic frame is recorded as incomplete rather than silently defaulted", "no coordinate values are altered" ], "source_refs": [ "SRC-003", "SRC-011", "SRC-027" ] }, { "id": "geo-crsdyn-fn-validate-epoch-completeness", "name": "Validate epoch completeness and time-role separation", "description": "Check that a dynamic reference carries a coordinate epoch at a declared scope, and that coordinate epoch, observation time, transformation reference epoch, definition publication time and ingestion time are held in distinct roles with correct notation.", "inputs": [ "coordinate metadata record", "time role map", "adopting-Dimension epoch policy" ], "outputs": [ "validation report with per-rule outcomes", "list of violated rules with severity", "recorded unresolved-epoch state where applicable" ], "preconditions": [ "a coordinate reference binding exists for the coordinate set", "the epoch policy in force is identified" ], "effects": [ "records a pass or fail state on this model's own record", "blocks positional use flagged by policy while an epoch is unresolved", "does not modify coordinates and does not perform any epoch propagation" ], "source_refs": [ "SRC-003", "SRC-011", "SRC-023", "SRC-027" ] }, { "id": "geo-crsdyn-fn-resolve-and-pin-definition", "name": "Resolve and pin a reference definition", "description": "Resolve a coordinate reference against the cited register or a supplied definition, normalize it to a canonical form, and store it as a pinned snapshot with register authority, version, code and integrity digest. The register itself is read, never maintained.", "inputs": [ "coordinate reference identifier", "register authority and version to resolve against", "supplied definition text where the reference is non-register" ], "outputs": [ "pinned reference definition snapshot", "canonical definition text and digest", "resolution outcome state" ], "preconditions": [ "the register authority and version to resolve against are declared", "read access to the register or to the supplied definition is available under its terms of use" ], "effects": [ "later register revisions cannot silently change how historic coordinates are interpreted", "an unresolvable reference produces an unresolved record rather than an assumed definition", "no register entry is created, amended or deprecated by this function" ], "source_refs": [ "SRC-012", "SRC-011", "SRC-024", "SRC-026" ] }, { "id": "geo-crsdyn-fn-record-deformation-reference", "name": "Record a deformation model reference", "description": "Record the identifier, publisher, version label and declared spatial and temporal extent of the deformation or point-motion model a consumer must apply, together with the out-of-extent disposition. No displacement is computed, interpolated or stored.", "inputs": [ "coordinate reference identifier", "deformation model citation from the publishing authority", "subject location and required epoch range" ], "outputs": [ "deformation model reference record", "applicability outcome for the subject location and epoch range", "out-of-extent disposition where applicable" ], "preconditions": [ "the frame is classified as dynamic or semi-dynamic, or the subject spans epochs", "the publishing authority and version label of the cited model are known" ], "effects": [ "a consumer can locate the governing model and know whether it applies", "evaluation, grid distribution and versioning of the model remain with its publishing authority", "no displacement value is produced by this model" ], "source_refs": [ "SRC-003", "SRC-020", "SRC-022" ] }, { "id": "geo-crsdyn-fn-assess-compound-composition", "name": "Assess compound reference composition", "description": "Enumerate the component references of a compound coordinate reference, verify the declared order and the independence condition, derive the resulting axis sequence with directions and units, and determine the epoch applicability scope.", "inputs": [ "compound reference identifier or component reference list", "declared component sequence", "component definitions or their pinned snapshots" ], "outputs": [ "compound reference composition record", "resulting ordered axis list", "independence assessment outcome" ], "preconditions": [ "each component reference resolves to a definition or a governed snapshot", "the declared component sequence is present and not inferred from a code" ], "effects": [ "axis order and units become explicit rather than assumed", "a composition failing the independence condition is rejected and recorded, not silently flattened", "no coordinate values are reordered or converted by this function" ], "source_refs": [ "SRC-003", "SRC-012", "SRC-026" ] }, { "id": "geo-crsdyn-fn-classify-nonregister-definition", "name": "Classify and gate a non-register definition", "description": "Decide whether an unknown, custom, engineering-local, deprecated or superseded reference is sufficiently defined for use, or must be held as unresolved, and route custom definitions to the approving role.", "inputs": [ "candidate reference as supplied by the producer", "any accompanying definition payload or anchor description", "adopting-Dimension policy on custom definitions" ], "outputs": [ "non-register kind classification", "definition sufficiency state with missing elements listed", "custom reference definition package where sufficiency is met" ], "preconditions": [ "a register resolution attempt has been made and its outcome recorded", "the approving role for custom definitions is identified" ], "effects": [ "a bare local name or numeric code is recorded as unresolved and blocks the uses named in policy", "an approved custom definition becomes usable without external lookup", "no default reference is substituted for an unresolved one" ], "source_refs": [ "SRC-003", "SRC-012", "SRC-024", "SRC-001", "SRC-025" ] }, { "id": "geo-xform-fn-assemble-chain", "name": "Assemble declared operation chain record", "description": "Build a complete, ordered chain declaration from supplied endpoint references, operation references, method and parameter pins, and report which pins are missing. Records only; performs no coordinate evaluation and queries no registry at run time.", "inputs": [ "Source and target CRS references", "Optional source and target coordinate epochs", "Ordered operation references with method and parameter values", "Step directions and any interpolation CRS reference" ], "outputs": [ "Chain declaration record with ordered steps", "Pin completeness report listing missing method, parameter or direction values" ], "preconditions": [ "Both endpoint CRS references are governed and resolvable", "Every step carries an explicit index and direction" ], "effects": [ "Emits a chain declaration and a completeness report", "Does not transform coordinates, rank candidate operations at run time, or alter registry-held definitions" ], "source_refs": [ "SRC-003", "SRC-030", "SRC-024" ] }, { "id": "geo-xform-fn-check-applicability", "name": "Validate area-of-use applicability", "description": "Compare the subject geometry extent with the declared area of use of every step under a stated spatial test and report the applicability outcome.", "inputs": [ "Subject geometry extent", "Declared area of use per step", "Spatial test selection (contains or intersects)" ], "outputs": [ "Applicability outcome code per step and for the chain", "List of steps whose extent does not cover the subject" ], "preconditions": [ "At least one step declares an area of use, or the absence is recorded explicitly" ], "effects": [ "Reports an out-of-area outcome when coverage fails", "Does not suppress, substitute or re-select an operation" ], "source_refs": [ "SRC-031", "SRC-036", "SRC-003" ] }, { "id": "geo-xform-fn-check-epoch", "name": "Validate coordinate epoch consistency", "description": "Determine whether an epoch is required by either endpoint, whether the supplied epochs are consistent with the chain, and whether a point-motion step is needed.", "inputs": [ "Dynamic-frame flags for both endpoints", "Source and target coordinate epochs", "Step list including any point-motion or deformation step" ], "outputs": [ "Epoch reconciliation status", "Epoch-missing or epoch-mismatch exception where applicable" ], "preconditions": [ "Endpoint CRS references are resolved sufficiently to know whether each frame is dynamic" ], "effects": [ "Reports epoch adequacy and required point-motion steps", "Never silently assumes a default epoch; any assumption must be supplied and attributed" ], "source_refs": [ "SRC-003", "SRC-011", "SRC-005", "SRC-037" ] }, { "id": "geo-xform-fn-verify-resource-pins", "name": "Verify external resource and toolchain pins", "description": "Check that every grid, triangulated-network or deformation-model dependency carries an identifier, version and checksum, and that engine and registry version pins are present and internally consistent.", "inputs": [ "Resource identifiers, versions and checksums", "Recomputed checksum values where a local copy is presented", "Engine version and registry dataset version pins" ], "outputs": [ "Pin verification report with verified, unverified and mismatched states", "Missing-resource exception list" ], "preconditions": [ "The chain declaration names which steps depend on an external resource" ], "effects": [ "Reports integrity and completeness of pins", "Never downloads, installs, licenses or redistributes a resource; acquisition stays with the distribution service" ], "source_refs": [ "SRC-033", "SRC-034", "SRC-035", "SRC-038" ] }, { "id": "geo-xform-fn-summarize-accuracy", "name": "Calculate conservative chain accuracy and uncertainty summary", "description": "Derive a single accuracy and uncertainty summary for the chain from per-step stated values and any supplied local error estimates, forcing an unknown result whenever a step lacks a published value or is a fallback.", "inputs": [ "Stated accuracy per step with units", "Local error estimates supplied with a resource, where available", "Ballpark or fallback flags" ], "outputs": [ "Chain accuracy value and unit, or an unknown-accuracy declaration", "Uncertainty summary with component split and stated basis" ], "preconditions": [ "Units are normalized before aggregation", "The aggregation rule and its conservatism assumption are declared" ], "effects": [ "Emits an accuracy and uncertainty summary marked as a local computation, not an authority statement", "Sets the unknown-accuracy flag when any step is unquantified" ], "source_refs": [ "SRC-003", "SRC-032", "SRC-036", "SRC-038" ] }, { "id": "geo-xform-fn-check-normalization", "name": "Validate axis, unit and dimensionality declarations", "description": "Compare the written axis order, ordinate units and coordinate dimension with the endpoint CRS definitions and the applicable encoding rule, and report ambiguity or unsupported dimensionality.", "inputs": [ "Written axis order and its claimed authority", "Ordinate units and coordinate dimension", "Endpoint CRS axis and unit definitions", "Encoding profile rule in force" ], "outputs": [ "Normalization validation verdict", "Axis-ambiguity and unsupported-dimension exceptions" ], "preconditions": [ "The encoding profile whose axis rule applies is named" ], "effects": [ "Reports mismatches between CRS-defined and written axis order or units", "Does not reorder, reproject or rewrite coordinates" ], "source_refs": [ "SRC-001", "SRC-011", "SRC-005", "SRC-030" ] }, { "id": "geo-xform-fn-check-tolerance", "name": "Validate residuals against declared tolerance", "description": "Test supplied residuals, including round-trip residuals, against a declared tolerance and report a breach, without asserting that any chain is exactly reversible.", "inputs": [ "Declared tolerance value, unit and the party that set it", "Supplied residual or round-trip deviation values", "Chain reversibility characteristics such as iteration, grid interpolation and rounding" ], "outputs": [ "Tolerance breach verdict with observed maximum residual", "Round-trip claim code with the reasons exactness is not claimed" ], "preconditions": [ "A tolerance is declared with a unit and an owner", "Residuals were supplied; this function does not compute coordinates to obtain them" ], "effects": [ "Reports breach or conformance against the declared tolerance", "Refuses to emit an exact round-trip claim for non-bijective, iterative or rounded chains" ], "source_refs": [ "SRC-030", "SRC-032", "SRC-031" ] }, { "id": "geo-xform-fn-report-outcome", "name": "Report chain outcome and consumer disclosures", "description": "Compose the transformation report: one outcome status, the exception set, the accuracy and uncertainty summary, lineage pointers to the original geometry and CRS, and any lossy-export or round-trip qualification.", "inputs": [ "Verdicts from applicability, epoch, resource-pin, normalization and tolerance checks", "Accuracy and uncertainty summary", "Original geometry and CRS references", "Export or serialization losses that were applied" ], "outputs": [ "Transformation report record", "Consumer disclosure set including the unknown-accuracy flag and lossy-export notes" ], "preconditions": [ "All contributing checks have produced a verdict or an explicit not-evaluated marker", "An observation timestamp is available" ], "effects": [ "Emits a report with a single outcome status and an observation timestamp", "Does not enforce acceptance, gate downstream use, or write an audit trail; those belong to the adopting Dimension" ], "source_refs": [ "SRC-003", "SRC-031", "SRC-001", "SRC-036" ] }, { "id": "geo-govctl-assign-stewardship-record", "name": "Record accountable role assignment", "description": "Record or update the advisory assignment of an accountability role for a geometry and coordinate-reference attachment.", "inputs": [ "Attachment identifier", "Role code", "Party reference", "Assignment start time in RFC 3339" ], "outputs": [ "Updated role-assignment set with advisory flag set", "Rejection reason where the separation-of-duties constraint fails" ], "preconditions": [ "The attachment exists and its host-object reference resolves", "The party reference resolves in the external party registry" ], "effects": [ "Role assignment is recorded as an attribute for consumption by an external decision component", "No access outcome is computed or granted by this function" ], "source_refs": [ "SRC-042", "SRC-045", "SRC-046" ] }, { "id": "geo-govctl-record-crs-decision", "name": "Record CRS and transformation decision", "description": "Capture a decision that selects or changes the coordinate reference system, permitted coordinate operations, grids and accuracy floor for a subject.", "inputs": [ "Attachment or host-class reference", "Chosen CRS citation with authority, code and dataset version", "Permitted operation identifiers with operation versions", "Authority basis reference", "Decision time in RFC 3339" ], "outputs": [ "Decision record reference bound to the subject", "Impact list of attachments affected by the change" ], "preconditions": [ "The cited CRS and operations resolve in the authoritative registry", "The recording party holds the declared change authority" ], "effects": [ "Decision becomes the stated basis for subsequent CRS citations on the subject", "Superseded decisions are marked rather than removed" ], "source_refs": [ "SRC-003", "SRC-040", "SRC-006", "SRC-016" ] }, { "id": "geo-govctl-issue-geometry-version", "name": "Issue attachment version and mark supersession", "description": "Create a new version of a geometry and coordinate-reference attachment, set its effective interval and mark the prior version superseded.", "inputs": [ "Attachment identifier", "Change class", "Effective-from time in RFC 3339 with explicit offset", "Supersession ground", "Approval reference where the change class requires it" ], "outputs": [ "New version label with current-version pointer moved", "Previous-version chain entry with supersession ground" ], "preconditions": [ "The change class has been classified against the substantive-change criteria", "Any required approval exists for a substantive change" ], "effects": [ "Prior version is retained with a superseded marker and its identifier is not reused", "Effective interval of the prior version is closed at the new effective-from instant" ], "source_refs": [ "SRC-040", "SRC-046", "SRC-003" ] }, { "id": "geo-govctl-record-review-outcome", "name": "Record independent review outcome", "description": "Record the outcome of an independent review of a geometry and its CRS binding, including check results, conditions and the release decision.", "inputs": [ "Attachment version reference", "Reviewer reference", "Check results with blocking or advisory status", "Outcome code and any attached conditions" ], "outputs": [ "Review and approval record reference", "Blocking-check failure list where the outcome is rejection" ], "preconditions": [ "The reviewer is distinct from the producer and the approver, or a recorded overlap exception exists", "The version under review is not already superseded" ], "effects": [ "Review evidence becomes attached to the specific version identifier", "Checks are recorded as reported outcomes; execution of the checks stays with the external validation component" ], "source_refs": [ "SRC-006", "SRC-046", "SRC-043" ] }, { "id": "geo-govctl-classify-sensitive-location", "name": "Classify sensitive location and set released precision", "description": "Assign a sensitivity category to a location, select the generalization method and released precision, and set the next review date.", "inputs": [ "Attachment identifier", "Sensitivity category and reason code", "Generalization method and parameters", "Determining party reference", "Next review date" ], "outputs": [ "Sensitivity assessment record reference", "Released precision value with its coordinate uncertainty", "Generalization disclosure statement text" ], "preconditions": [ "The determining party is the data provider or host-object owner", "Retained full-precision values are held under restricted access" ], "effects": [ "Released copies carry the generalization and information-withheld statements", "Sensitivity category is exposed as an attribute to the external decision component, which alone decides recipient access" ], "source_refs": [ "SRC-044", "SRC-042", "SRC-045" ] }, { "id": "geo-govctl-declare-rights-and-attribution", "name": "Declare rights, licences and redistribution state", "description": "Declare the licence and acknowledgement obligations of each input and compute the resulting redistribution state of the derived geometry.", "inputs": [ "Input list covering CRS definitions, grids and source geometries", "Licence reference and required acknowledgement per input", "Intended publication channel" ], "outputs": [ "Rights and attribution notice set", "Redistribution state for the derived geometry", "Undetermined-licence list requiring resolution" ], "preconditions": [ "Every input used in the derivation is enumerated", "Access rights are recorded separately from licence terms" ], "effects": [ "Redistribution state inherits the most restrictive input condition", "An input that is readable but not redistributable is flagged rather than treated as open" ], "source_refs": [ "SRC-039", "SRC-033", "SRC-046" ] }, { "id": "geo-govctl-mark-disposition-state", "name": "Mark retention, hold or tombstone state", "description": "Apply a retention class, impose or release a hold, or place a tombstone marker on an attachment record.", "inputs": [ "Attachment identifier", "Retention class or hold action", "Authority reference", "Action time in RFC 3339" ], "outputs": [ "Updated retention and hold state", "Tombstone record reference where removal was marked" ], "preconditions": [ "A retention schedule reference exists in the adopting Dimension's records policy", "No active hold is present when a disposition marker is applied" ], "effects": [ "Disposition is suspended for as long as a hold is present", "State is marked only; destruction, transfer and physical deletion are executed by the referenced records system under the adopting Dimension's policy" ], "source_refs": [ "SRC-043", "SRC-040" ] }, { "id": "geo-svc-fn-resolve-as-of", "name": "Resolve coordinate context as of an instant", "description": "Selects the geometry version and coordinate reference context version in force for a stated event or observation instant and reports what was resolved, including the coordinate epoch and registry release. Never substitutes a default CRS.", "inputs": [ "Binding identifier", "As-of instant with its time-axis selector", "Optional requested served CRS reference" ], "outputs": [ "Resolved coordinate context snapshot", "Resolution outcome code", "Nearest earlier and later version references when nothing is in force" ], "preconditions": [ "Binding identifier resolves to at least one version", "As-of instant is an RFC 3339 date-time with seconds and an explicit offset or Z", "Time-axis selector is stated when both event and observation times exist" ], "effects": [ "Emits a snapshot report only", "Makes no change to any stored record", "Emits an explicit failure rather than defaulting the CRS or epoch" ], "source_refs": [ "SRC-003", "SRC-011", "SRC-048" ] }, { "id": "geo-svc-fn-compose-binding-proposal", "name": "Compose a host binding proposal", "description": "Assembles a complete, checkable binding of a geometry and coordinate reference context to a host record and reports whether it is admissible. Commitment to storage is performed by an external system.", "inputs": [ "Host record reference", "Geometry value with declared geometry kind and coordinate dimension", "CRS reference, axis declaration and coordinate epoch where applicable", "Geometry role and idempotency key" ], "outputs": [ "Geometry and coordinate reference binding record", "Admissibility outcome with unmet requirements listed" ], "preconditions": [ "Host record reference resolves in the host model", "CRS reference resolves against a named registry release", "Coordinate epoch supplied where the referenced frame is dynamic" ], "effects": [ "Emits a binding proposal and an admissibility report", "Performs no persistence and returns no commit confirmation", "Reports rather than enforces the authorization reference outcome" ], "source_refs": [ "SRC-003", "SRC-011", "SRC-006" ] }, { "id": "geo-svc-fn-check-preconditions", "name": "Check operation preconditions", "description": "Evaluates idempotency, optimistic concurrency and authorization-reference presence for a proposed operation and reports a precondition determination with a specific failure code where any precondition is unmet.", "inputs": [ "Proposed operation descriptor", "Idempotency key", "Expected version token", "Authorization reference and policy reference" ], "outputs": [ "Precondition determination", "Failure code with the unmet precondition named", "Replay determination for a previously seen idempotency key" ], "preconditions": [ "Current binding version is retrievable for comparison", "Failure vocabulary for this operation class is declared" ], "effects": [ "Emits a determination report only", "Performs no authorization evaluation and no enforcement", "Retains no audit trail; emits decision and key references for the external audit owner" ], "source_refs": [ "SRC-011", "SRC-004", "SRC-002" ] }, { "id": "geo-svc-fn-plan-supersession", "name": "Plan a correction by supersession", "description": "Computes the supersession chain for a proposed correction, classifies the change, and reports every incoming reference and derived geometry that will require re-pointing or re-derivation.", "inputs": [ "Current context version reference", "Proposed corrected geometry or CRS context", "Correction reason code and supporting evidence reference" ], "outputs": [ "Supersession and correction record", "Change classification with the versioning decision", "Impacted reference set with a re-derivation obligation per dependent" ], "preconditions": [ "Current version exists and is in force", "Correction reason code is drawn from the declared vocabulary", "Proposed change differs from the current version by more than the declared no-change tolerance" ], "effects": [ "Emits a supersession record and an impact report", "Never mutates the superseded version", "Does not re-point dependents; their owners execute that" ], "source_refs": [ "SRC-041", "SRC-003", "SRC-037" ] }, { "id": "geo-svc-fn-assess-disposition-readiness", "name": "Assess disposition readiness", "description": "Reports whether a binding is ready for disposition by checking asserted holds, incoming references and the residual payload profile, and produces a tombstone marker where readiness is established.", "inputs": [ "Binding identifier", "Retention policy reference", "Asserted hold references", "Incoming reference inventory" ], "outputs": [ "Disposition readiness determination", "Binding tombstone marker where readiness holds", "Blocking hold and blocking reference lists where it does not" ], "preconditions": [ "Retention policy reference resolves in the externally owned retention model", "Incoming reference inventory is available for the binding" ], "effects": [ "Emits a readiness report and, where applicable, a tombstone marker", "Destroys nothing and executes no retention schedule", "Reports readiness as false while any hold is unresolved" ], "source_refs": [ "SRC-041", "SRC-006" ] }, { "id": "geo-svc-fn-validate-context", "name": "Validate geometry and coordinate reference context", "description": "Runs structural, context-completeness, axis and unit agreement, and area-of-validity checks over a geometry and its coordinate reference context and reports per-check outcomes with severities.", "inputs": [ "Geometry value and declared geometry kind", "CRS reference with axis declaration and coordinate epoch where applicable", "Optional pinned operation reference for area-of-use checking" ], "outputs": [ "Geometry and context validation report", "Aggregate validation outcome", "Per-check severity list with failure locations" ], "preconditions": [ "Declared geometry kind is drawn from a stated geometry vocabulary", "CRS reference resolves against a named registry release", "Axis declaration is present for the referenced CRS" ], "effects": [ "Emits a validation report only", "Does not repair, normalise or re-project the geometry", "Reports the publication decision input without gating publication" ], "source_refs": [ "SRC-003", "SRC-053", "SRC-001", "SRC-052" ] }, { "id": "geo-svc-fn-assemble-operation-pin", "name": "Assemble a coordinate operation pin set", "description": "Builds the complete declaration an external engine needs to perform a reproducible transformation, listing the pinned operation, engine and version, registry release, required resources with digests, epochs, claimed accuracy and acceptance tolerances.", "inputs": [ "Source CRS reference and source coordinate epoch", "Target CRS reference and target coordinate epoch", "Candidate operation set with accuracy and area of use", "Available resource inventory with digests" ], "outputs": [ "Coordinate operation pin set", "Rejected-candidate list with rejection reasons", "Missing resource list and degraded-operation indicator" ], "preconditions": [ "Both CRS references resolve against a named registry release", "Coordinate epochs are supplied where either frame is dynamic", "Acceptance accuracy tolerance is declared by the caller" ], "effects": [ "Emits a pin set declaration and a candidate rejection report", "Executes no coordinate arithmetic and acquires no grid or deformation resource", "Marks any result path that would rely on a missing resource as degraded" ], "source_refs": [ "SRC-049", "SRC-003", "SRC-051", "SRC-050" ] }, { "id": "geo-svc-fn-verify-transformation-evidence", "name": "Verify returned transformation evidence", "description": "Checks that evidence returned by an external executing system matches the pin set it was issued against, that all resource digests re-verify, and that any degraded or ballpark path is labelled, then reports acceptance or rejection.", "inputs": [ "Coordinate operation pin set reference", "Transformation evidence record returned by the executing system", "Acceptance tolerance and degraded-result policy reference" ], "outputs": [ "Evidence acceptance determination", "Mismatch list naming each pin that failed to re-verify", "Re-derivation instructions where evidence is rejected" ], "preconditions": [ "Pin set reference resolves to an issued pin set", "Evidence record names an executing agent, engine version and execution instants" ], "effects": [ "Emits an acceptance or rejection report only", "Does not re-execute the transformation", "Rejects evidence whose digests, engine version or registry release differ from the pin set" ], "source_refs": [ "SRC-041", "SRC-049", "SRC-048" ] }, { "id": "geo-svc-fn-evaluate-comparability", "name": "Evaluate comparability of two geometries", "description": "Determines whether two geometries may be topologically related, measured or aggregated, by testing common coordinate reference basis, dimension and unit agreement, edge interpretation, epoch alignment and datum-ensemble ambiguity.", "inputs": [ "Two geometry and coordinate reference contexts", "Requested relation family and required precision threshold" ], "outputs": [ "Comparability outcome", "Named unmet precondition where the outcome is negative", "Reference to the transformation pin required to make the operands comparable" ], "preconditions": [ "Both operands carry a resolvable CRS reference", "Requested relation family and its assumptions are stated" ], "effects": [ "Emits a comparability determination only", "Never transforms an operand silently to force a comparison", "Reports ensemble ambiguity as a bound on admissible precision" ], "source_refs": [ "SRC-002", "SRC-052", "SRC-003" ] }, { "id": "geo-svc-fn-report-export-loss", "name": "Report export loss for a target binding", "description": "Computes, for a stated target binding, which parts of the geometry and coordinate reference context cannot be carried, the magnitude and reversibility of each loss, any applied redaction, and whether a blocking loss class was triggered.", "inputs": [ "Source geometry and coordinate reference context", "Target binding reference and version", "Redaction or generalisation rule reference", "Declared blocking loss classes and thresholds" ], "outputs": [ "Export loss and redaction report", "Blocking determination with failure code where applicable", "Declared CRS that will be written into the export" ], "preconditions": [ "Target binding and version are stated explicitly", "Loss class vocabulary and thresholds are declared by the adopting Dimension" ], "effects": [ "Emits a loss report and a blocking determination only", "Does not write, transmit or publish the exported payload", "Treats no binding as canonical and records binding-fixed defaults as losses rather than as truth" ], "source_refs": [ "SRC-001", "SRC-052", "SRC-013", "SRC-011" ] } ], "composition": [ { "target": "WM-XCT-010 Location Referencing / Address (registry parent candidate)", "relation": "CHILD", "purpose": "Registry metadata places this entry beneath WM-XCT-010 Location Referencing / Address, but no relationship contract was supplied. Treat the edge as a candidate composition link: WM-XCT-010 may consume this mixin for coordinate-backed locations and addresses, while this model retains geometry and CRS semantics until the boundary is formally adjudicated.", "required": true, "source_refs": [ "SRC-006", "SRC-004" ] }, { "target": "Host feature, place, asset or object model", "relation": "MIX-IN", "purpose": "Geometry is mixed into any host thing as a property with a declared role. The host model owns real-world identity, classification and lifecycle; this mixin supplies the shape value and its binding only.", "required": true, "source_refs": [ "SRC-006", "SRC-004" ] }, { "target": "Coordinate reference system register / authority model", "relation": "REFERENCE", "purpose": "Carry the resolvable CRS reference, axis-order statement and coordinate-epoch parameter for each geometry value. The register's CRS definitions, datum parameters, versioning and deprecation lifecycle remain entirely with the target.", "required": true, "source_refs": [ "SRC-003", "SRC-011" ] }, { "target": "Coordinate operation and positional accuracy model", "relation": "REFERENCE", "purpose": "Record which coordinate operation produced a transformed geometry and the resulting positional-quality statement. Parameter derivation, operation selection and transformation execution stay with the target.", "required": false, "source_refs": [ "SRC-011", "SRC-003" ] }, { "target": "Geometry computation and spatial predicate evaluation service", "relation": "REFERENCE", "purpose": "Reference the evaluator that produced validity verdicts and relation results, and store the verdict as reference data. Evaluation, overlay, repair execution, enforcement and the evaluator's audit trail are owned by the target.", "required": false, "source_refs": [ "SRC-002", "SRC-008" ] }, { "target": "Geometry encoding and serialization profile model", "relation": "REFERENCE", "purpose": "Name the encoding profile used for a projection and record its losslessness. Encoding grammar, conformance classes and parser behaviour belong to the target; this model states only which semantics must survive a projection.", "required": false, "source_refs": [ "SRC-001", "SRC-005", "SRC-007" ] }, { "target": "Vertical reference and height system model", "relation": "REFERENCE", "purpose": "Reference the vertical datum or height system against which a Z ordinate is interpreted, without defining geoid models or height-system realizations.", "required": false, "source_refs": [ "SRC-003", "SRC-005" ] }, { "target": "OGC Simple Feature Access Part 1 / ISO 19125-1 geometry model", "relation": "ALIGN", "purpose": "Align primitive typing, aggregate structure, simplicity and validity assertions and topological predicates with the simple-feature architecture, recording where the linear planar assumptions of that model do not hold rather than claiming conformance.", "required": false, "source_refs": [ "SRC-008", "SRC-007" ] }, { "target": "OGC GeoSPARQL 1.1 geometry vocabulary", "relation": "ALIGN", "purpose": "Align the separation of feature from geometry and the distinct topological, coordinate and spatial dimension properties, emptiness, simplicity, spatial resolution and the named relation families.", "required": false, "source_refs": [ "SRC-002" ] }, { "target": "IETF RFC 7946 GeoJSON geometry profile", "relation": "ALIGN", "purpose": "Align ring closure, right-hand-rule winding, antimeridian cutting and bounding-box conventions as one named profile, while recording its fixed WGS 84 CRS, straight Cartesian edges and three-ordinate limit as profile constraints rather than universal geometry rules.", "required": false, "source_refs": [ "SRC-001" ] }, { "target": "ISO 19111 / OGC Abstract Specification Topic 2 referencing by coordinates", "relation": "ALIGN", "purpose": "Align coordinate tuple, coordinate set, axis order and coordinate epoch terminology so that CRS references carried on a geometry value are interpreted consistently with the referencing standard.", "required": false, "source_refs": [ "SRC-003" ] }, { "target": "ISO 19107 spatial schema", "relation": "ALIGN", "purpose": "Align the abstract vector geometry and topology concepts that sit above simple features, including primitives, aggregates, curve interpolation and solids, subject to the recorded paywall limitation on clause-level verification.", "required": false, "source_refs": [ "SRC-009", "SRC-010" ] }, { "target": "WM-XCT-010 Location Referencing / Address (registry parent candidate)", "relation": "CHILD", "purpose": "Registry metadata names WM-XCT-010 Location Referencing / Address as the parent candidate, but the relationship contract is absent. The intended separation is that location and address records may reference this mixin without duplicating CRS identity, axes or registry bindings; the exact composition remains under review.", "required": true, "source_refs": [ "SRC-003" ] }, { "target": "Coordinate operation and transformation model (datum transformation, map projection conversion, grid shifts, operation accuracy)", "relation": "REFERENCE", "purpose": "Carry the reference to a projected or derived CRS's defining conversion, and to any operation applied downstream, together with subject-specific parameters such as required tolerance. Operation method definitions, parameter application, execution and accuracy budgets stay with that model.", "required": false, "source_refs": [ "SRC-003", "SRC-012" ] }, { "target": "Units of measure register (authority unit-of-measure definitions)", "relation": "REFERENCE", "purpose": "Axis units, ellipsoid length units and prime meridian angle units are referenced from a unit authority using the same definition URI template; unit definitions and conversion factors are not restated here.", "required": true, "source_refs": [ "SRC-012", "SRC-014" ] }, { "target": "EPSG Geodetic Parameter Dataset (IOGP) as external CRS authority", "relation": "ALIGN", "purpose": "Align local CRS references to the custodian's codes and URI form and record the registry release; the custodian owns code issuance, revision, deprecation and dataset publication, and codes are never removed there.", "required": true, "source_refs": [ "SRC-014", "SRC-015" ] }, { "target": "OGC Naming Authority definition registers (OGC Definitions Server)", "relation": "ALIGN", "purpose": "Align identifier expression to the OGC definition URI template and its controlled authority and version tokens; the OGC register owns the authority token list and the persistence guarantee.", "required": true, "source_refs": [ "SRC-011", "SRC-014" ] }, { "target": "Geometry encoding and serialization model (GeoJSON, WKT, GML, WKB, database geometry types)", "relation": "REFERENCE", "purpose": "Record which encoding a coordinate value arrives in and any axis order that encoding imposes, as an interface fact bound to the reference. Encoding grammar, parsing, validity and conversion between encodings belong to that model.", "required": false, "source_refs": [ "SRC-012", "SRC-011", "SRC-001" ] }, { "target": "Temporal reference model", "relation": "REFERENCE", "purpose": "Record timestamps, calendars and duration semantics are referenced from the temporal model; only geodetic epochs expressed as decimal years are held here, explicitly distinguished from record time.", "required": false, "source_refs": [ "SRC-003" ] }, { "target": "Any coordinate-bearing subject model in the adopting Dimension", "relation": "MIX-IN", "purpose": "Attach an explicit CRS reference, an explicit axis order statement and, for dynamic frames, a coordinate epoch to every subject that carries coordinates, without importing that subject's own lifecycle, ownership or operational functions.", "required": true, "source_refs": [ "SRC-003", "SRC-011" ] }, { "target": "National geodetic authority publications (modernized NSRS, GDA2020 and equivalents)", "relation": "ALIGN", "purpose": "Align regional frame identity, reference epochs and supersession expectations to the responsible national authority. Frame realization, publication, rollout scheduling and the associated transformation products remain with those authorities.", "required": false, "source_refs": [ "SRC-016", "SRC-017" ] }, { "target": "WM-XCT-010 Location Referencing / Address (registry parent candidate)", "relation": "CHILD", "purpose": "Registry metadata names WM-XCT-010 Location Referencing / Address as the parent candidate, but supplies no relationship contract. The candidate edge lets location and address records consume geometry, CRS, epoch and definition context from this mixin; it does not transfer ownership of geometry representation or CRS semantics to WM-XCT-010.", "required": true, "source_refs": [ "SRC-003", "SRC-019" ] }, { "target": "Any adopting subject model whose records carry coordinates", "relation": "MIX-IN", "purpose": "As a mixin, this entry is attached to subject models that hold positional data, contributing reference identification, frame dynamics, epoch binding and definition sufficiency context. It introduces no subject identity, no subject lifecycle and no subject-specific business rules.", "required": true, "source_refs": [ "SRC-003", "SRC-011" ] }, { "target": "ISO 19111:2019 / OGC Abstract Specification Topic 2: Referencing by coordinates (18-005r5)", "relation": "ALIGN", "purpose": "Declared alignment of this entry's vocabulary to the ISO 19111 conceptual schema for dynamic reference frame, frame reference epoch, coordinate epoch, coordinate metadata, datum ensemble, point motion operation, compound, temporal, vertical and engineering CRS. Alignment is asserted at element level and is not a conformance claim; conformance would require the standard's own conformance-class evidence.", "required": true, "source_refs": [ "SRC-003", "SRC-019" ] }, { "target": "OGC Well-known text representation of coordinate reference systems (ISO 19162:2019 / OGC 18-010 series)", "relation": "ALIGN", "purpose": "Encoding alignment for pinned definition snapshots and compound composition records. The WKT version used is recorded per snapshot because element sets differ between WKT-CRS 2.0.6 and 2.1. This entry does not define or extend the grammar.", "required": false, "source_refs": [ "SRC-012", "SRC-026" ] }, { "target": "EPSG Geodetic Parameter Dataset (IOGP Geomatics Committee register)", "relation": "REFERENCE", "purpose": "Carry register authority, definition code, register version, canonical snapshot and digest as reference context. Entry creation, revision, deprecation, data-management policy and publication of the register remain wholly with IOGP; this entry never mirrors the register or acts as a second register.", "required": false, "source_refs": [ "SRC-024", "SRC-012" ] }, { "target": "IERS ITRS realization series (ITRF) and national frame realizations", "relation": "REFERENCE", "purpose": "Carry the realization identity, its defining authority and its frame reference epoch as a reference. Computation, adjustment, publication and post-seismic modelling of realizations remain with IERS and the national geodetic agencies.", "required": false, "source_refs": [ "SRC-021", "SRC-016", "SRC-022" ] }, { "target": "Deformation model publications (OGC Topic 24 functional model and national agency deformation products)", "relation": "REFERENCE", "purpose": "Reference the governing deformation or point-motion model with its version and declared extent. Element decomposition, spatial and time function evaluation, grid interpolation, distribution and version release stay with the publishing authority and with the coordinate-operation model that executes them.", "required": false, "source_refs": [ "SRC-020", "SRC-022" ] }, { "target": "Coordinate operation and transformation model", "relation": "REFERENCE", "purpose": "Record the transformation reference epoch and the citation of an applicable coordinate operation or point motion operation. Operation selection, parameterization, pipeline construction, execution, accuracy assessment and the audit trail of executed transformations belong entirely to that model.", "required": false, "source_refs": [ "SRC-003", "SRC-020" ] }, { "target": "Adopting Dimension temporal and calendar model", "relation": "COMPOSE", "purpose": "Compose time-scale realization, leap-second tables and calendar arithmetic from the Dimension's temporal model. This entry records only which time scale a temporal axis realizes and the temporal datum origin; it neither realizes nor converts between time scales.", "required": false, "source_refs": [ "SRC-028", "SRC-003" ] }, { "target": "Adopting Dimension retention, access and disposition policy", "relation": "REFERENCE", "purpose": "Reference the policy that owns retention periods, legal holds, erasure decisions and their execution for records that cite this entry's definitions. This entry records disposition state and the owning policy reference only, and does not execute or audit disposal.", "required": false, "source_refs": [ "SRC-024", "SRC-003" ] }, { "target": "WM-XCT-010 Location Referencing / Address (registry parent candidate)", "relation": "CHILD", "purpose": "Treat the registry parent link to WM-XCT-010 Location Referencing / Address as a candidate composition edge only. That model may own location or address identity while this mixin owns geometry, referencing, operation lineage and coordinate quality; the missing relationship rationale remains under review.", "required": true, "source_refs": [ "SRC-003", "SRC-005" ] }, { "target": "Host subject model requiring located geometry", "relation": "MIX-IN", "purpose": "Attach geometry, CRS reference, coordinate epoch, operation lineage and quality statements to a host subject without asserting the host's identity, lifecycle, authority or permissions.", "required": true, "source_refs": [ "SRC-005", "SRC-011" ] }, { "target": "EPSG Geodetic Parameter Dataset (IOGP) and equivalent geodetic parameter registries", "relation": "ALIGN", "purpose": "Cite CRS, operation, method, parameter, extent and stated-accuracy definitions by code or URI, and record the dataset version pinned. The registry owns those definitions and their deprecation and supersession lifecycle; this model carries references and subject-specific pins only.", "required": true, "source_refs": [ "SRC-024", "SRC-003" ] }, { "target": "ISO 19111 / OGC Abstract Specification Topic 2 referencing-by-coordinates conceptual schema", "relation": "ALIGN", "purpose": "Use the standard's vocabulary for coordinate operation, conversion, transformation, concatenated and point-motion operation, coordinate epoch, operation accuracy and domain of validity. Alignment only; conformance is not claimed without recorded evidence.", "required": true, "source_refs": [ "SRC-003" ] }, { "target": "Coordinate transformation engine", "relation": "REFERENCE", "purpose": "Carry an engine name and version as a reproduction pin, together with the binding needed to rebuild the declared chain. The engine owns execution, run-time candidate ranking, resource resolution and its own release lifecycle; none of that is modelled here.", "required": false, "source_refs": [ "SRC-029", "SRC-031", "SRC-034" ] }, { "target": "Geodetic grid and deformation-model distribution service", "relation": "REFERENCE", "purpose": "Carry resource identity, version and content checksum, plus the availability state observed. Hosting, licensing, redistribution and retraction of resources remain with the distributor.", "required": false, "source_refs": [ "SRC-033", "SRC-035", "SRC-038" ] }, { "target": "Positional data-quality model", "relation": "ALIGN", "purpose": "Bind accuracy and uncertainty values to a specific geometry and chain using external quality vocabulary. Measure definitions, evaluation procedures and conformance levels stay in the quality model.", "required": false, "source_refs": [ "SRC-003", "SRC-036", "SRC-038" ] }, { "target": "Encoding and interchange profiles for geospatial data", "relation": "ALIGN", "purpose": "Map inline data onto encoding rules for CRS reference, axis order, coordinate epoch, precision and antimeridian handling, and record which rule was applied as a treatment declaration. Encodings own their serialization constraints.", "required": false, "source_refs": [ "SRC-001", "SRC-011", "SRC-005" ] }, { "target": "WM-XCT-010 Location Referencing / Address (registry parent candidate)", "relation": "CHILD", "purpose": "Expose geometry and coordinate-reference context for optional composition by WM-XCT-010 Location Referencing / Address. Because the frozen relationship contract is empty, no inheritance or ownership transfer is asserted until the edge is formally reviewed.", "required": true, "source_refs": [ "SRC-003" ] }, { "target": "Host object model consuming the mixin", "relation": "MIX-IN", "purpose": "Attach geometry and coordinate-reference facts to a host object whose identity, lifecycle and business semantics remain owned by the host.", "required": true, "source_refs": [ "SRC-003", "SRC-046" ] }, { "target": "Authoritative CRS and geodetic parameter registry (EPSG Dataset and OGC Naming Authority definition server)", "relation": "REFERENCE", "purpose": "Cite CRS, datum and coordinate-operation definitions by governed identifier and dataset version. Registry authorship, versioning, deprecation and maintenance remain with the registry operator; this model records only the citation, the version used and subject-specific parameters.", "required": true, "source_refs": [ "SRC-039", "SRC-040" ] }, { "target": "National or regional geodetic authority reference-frame programme", "relation": "REFERENCE", "purpose": "Track authority-declared reference frames and their replacement so that effective intervals and supersession of cited frames stay current. Frame definition and realisation remain the authority's.", "required": false, "source_refs": [ "SRC-016", "SRC-047" ] }, { "target": "Access-control and authorization policy model", "relation": "REFERENCE", "purpose": "Supply sensitivity labels, role assignments and access-rights references as attributes. Policy administration, decision and enforcement remain with the external policy components; no allow or deny outcome is modelled here.", "required": true, "source_refs": [ "SRC-042", "SRC-045" ] }, { "target": "Provenance and audit-record model (W3C PROV)", "relation": "ALIGN", "purpose": "Express derivation facts using entity, activity and agent semantics for interchange. Audit-trail generation, storage and integrity remain with the provenance and audit systems.", "required": false, "source_refs": [ "SRC-041" ] }, { "target": "Records-management, retention and disposition model", "relation": "REFERENCE", "purpose": "Bind retention class, hold and tombstone markers to an external schedule. Schedule authorship, disposition execution, destruction and transfer are performed by the records system under the adopting Dimension's policy.", "required": true, "source_refs": [ "SRC-043" ] }, { "target": "Catalogue and rights metadata model (DCAT-3 with dcterms and ODRL)", "relation": "ALIGN", "purpose": "Interchange licence, access-rights, versioning and qualified-attribution statements using established properties, keeping access rights distinct from licence terms.", "required": false, "source_refs": [ "SRC-046" ] }, { "target": "Sensitive-location generalization practice for occurrence and location data", "relation": "ALIGN", "purpose": "Adopt graded sensitivity categories, grid-based coordinate rounding and generalization disclosure terms, while the determination of sensitivity stays with the data provider or host-object owner.", "required": false, "source_refs": [ "SRC-044" ] }, { "target": "ISO 19111 / OGC Abstract Specification Topic 2 conceptual model for referencing by coordinates", "relation": "ALIGN", "purpose": "Align terminology and structure for CRS, datum ensemble, dynamic reference frame, coordinate epoch, coordinate operation accuracy and operation version. Alignment is declared; conformance is claimed only where test evidence exists.", "required": true, "source_refs": [ "SRC-003" ] }, { "target": "Transformation grid distribution and geodetic tooling project", "relation": "REFERENCE", "purpose": "Reference grid files by identifier, version, provider and licence status. Grid acquisition, hosting, mirroring and redistribution rights remain with the grid provider and the tooling project.", "required": false, "source_refs": [ "SRC-033" ] }, { "target": "WM-XCT-010 Location Referencing / Address (registry parent candidate)", "relation": "CHILD", "purpose": "Record the registry's candidate parent placement under WM-XCT-010 Location Referencing / Address without treating it as a verified semantic contract. WM-XCT-010 may consume the mixin, while coordinate-reference and geometry semantics remain here unless a future relationship contract states otherwise.", "required": true, "source_refs": [ "SRC-003", "SRC-006" ] }, { "target": "Host feature or subject record model adopting the mixin", "relation": "MIX-IN", "purpose": "Attaches geometry and coordinate reference context to a host record. A spatial thing is disjoint from its geometry and may carry several geometries of differing accuracy or time, so identity, classification and lifecycle of the thing remain entirely with the host.", "required": true, "source_refs": [ "SRC-006", "SRC-053" ] }, { "target": "Authoritative geodetic registry model (EPSG Geodetic Parameter Dataset and equivalent national registries)", "relation": "REFERENCE", "purpose": "Carries the CRS, reference frame and coordinate-operation code, its issuing authority, the registry release in force and the record status. Registry curation, correction, deprecation decisions and terms-of-use administration remain with the registry authority.", "required": true, "source_refs": [ "SRC-051", "SRC-003", "SRC-040" ] }, { "target": "Coordinate transformation execution service model (geodetic engine and resource catalogue)", "relation": "REFERENCE", "purpose": "Carries the pinned operation, engine identity and version, and resource digests, and validates the evidence returned. Candidate discovery heuristics, numerics, resource acquisition and execution belong wholly to the engine. Required only where a derived coordinate value is produced.", "required": false, "source_refs": [ "SRC-049", "SRC-050" ] }, { "target": "Provenance and evidence record model", "relation": "ALIGN", "purpose": "Shapes derivation, revision and invalidation assertions using entity, activity, agent, used, wasGeneratedBy, wasDerivedFrom and wasRevisionOf so that evidence is portable. Storage, immutability, correlation and retention of the provenance and audit trail are owned by that model; alignment is asserted, conformance is not claimed.", "required": true, "source_refs": [ "SRC-041" ] }, { "target": "Records retention, legal hold and disposition model", "relation": "REFERENCE", "purpose": "Carries the retention policy reference and any asserted hold reference, and consumes them to report disposition readiness. Retention schedules, hold administration, disposition approval and physical destruction are executed entirely by that model.", "required": true, "source_refs": [ "SRC-041" ] }, { "target": "Authorization policy and decision model", "relation": "REFERENCE", "purpose": "Carries the authorization reference presented with a request and the decision reference returned. Policy authoring, evaluation and enforcement are performed by that model; this model neither evaluates nor enforces and holds no policy state.", "required": true, "source_refs": [ "SRC-002", "SRC-006" ] }, { "target": "Temporal reference model (instants, intervals and calendars)", "relation": "REFERENCE", "purpose": "Supplies the semantics of instants and intervals used for event time, observation time and effective intervals, recorded as RFC 3339 date-times. Coordinate epoch remains local to this model because it is a geodetic reference time, not a calendar instant.", "required": true, "source_refs": [ "SRC-048", "SRC-003" ] }, { "target": "Unit of measure and quantity model", "relation": "REFERENCE", "purpose": "Supplies units for coordinate system axes, accuracy values, tolerances and generalisation radii. Unit definitions, conversion factors and dimensional analysis belong to that model; this model carries unit references on axes and quantities.", "required": true, "source_refs": [ "SRC-003" ] }, { "target": "Serialization and interface binding profiles (WKT/WKB, GeoJSON, GML, GeoParquet, database and API bindings)", "relation": "ALIGN", "purpose": "Aligns the model's semantics with each binding's expressive range and records what each binding cannot carry. No binding is canonical, and a binding's fixed defaults are recorded as losses on export rather than adopted as model semantics.", "required": false, "source_refs": [ "SRC-001", "SRC-052", "SRC-013", "SRC-011", "SRC-053" ] }, { "target": "National geodetic authority reference-frame and deformation-model resources", "relation": "REFERENCE", "purpose": "Carries references to plate-fixed frames, geopotential datums and velocity or deformation models as versioned external resources, and records the re-derivation obligation their replacement creates. Frame definition, publication and rollout timing belong to the national authority.", "required": false, "source_refs": [ "SRC-037", "SRC-049" ] }, { "target": "Spatial relation and topological query model", "relation": "EXTEND", "purpose": "Specialises only the coordinate-reference precondition on spatial relations: which relation family may be applied, under which common reference basis, edge interpretation and epoch alignment. The relation vocabularies, their algebra and their evaluation remain defined and executed by that model.", "required": false, "source_refs": [ "SRC-002" ] } ], "serviceLayers": { "dimension": { "owner_package_requirements": [ "The adopting Dimension must designate a single accountable owner package for WM-XCT-033 instances and name a geometry steward per host-object class before any attachment is created.", "The owner package must declare which authoritative CRS registry and which registry dataset version it pins, and must record the review interval for that pin.", "The owner package must nominate the external components that own authorization decisions, provenance storage, records disposition and grid supply, and must record their references; unresolved nominations are recorded as gaps, not as local capabilities.", "The owner package must publish its retention schedule reference and its sensitivity-category list before sensitive locations are classified.", "The owner package must state its regional CRS mandate, if any, and record deviations with justification." ], "namespace_guidance": "Local identifiers are minted in a namespace controlled by the adopting Dimension and never in an external authority's namespace. External definitions are cited using the issuing authority's own governed identifier form - authority name plus code plus dataset version, or a persistent definition IRI whose version appears as a path segment. A Dimension-minted identifier must never be shaped to look like a registry code, and a registry code must never be re-minted locally with altered parameter values.", "registry_links": [ "Registry entry vr.wm-xct-033 in the Vercy world-model record plane, navigation path NAV.XCT.GEO, domain tag XCT.GEO", "Authoritative CRS and geodetic parameter registry used for definition citation and status resolution", "Adopting Dimension party registry supplying the party references used in role assignments", "Adopting Dimension records schedule register supplying retention class references" ] }, "canon_and_patch": { "canonicalization_rules": [ "Canonical form is defined over the abstract record, not over any serialization: a stable field ordering, a single normalized representation per value, and no dependence on JSON, YAML, Markdown, HTML, Git, MCP or MongoDB encoding.", "Coordinate reference systems are canonically expressed as a governed citation (authority name, code, dataset version) or a persistent definition IRI; display names and informal aliases are non-canonical and are never used for matching.", "Axis order, axis direction and units are taken from the cited CRS definition and are recorded explicitly with the geometry; a record whose stated axis order contradicts the cited definition is invalid rather than silently reordered.", "All timestamps are canonicalized to RFC 3339 with seconds and an explicit offset; a value already in UTC is expressed with 'Z' and is not rewritten to a local offset.", "Numeric coordinate values are canonicalized to the precision actually asserted; trailing digits beyond the declared precision are removed rather than padded, so that released precision and stored precision remain distinguishable.", "References are canonicalized to their resolvable form with the target version pinned where the target supports versioned references." ], "patch_rules": [ "A patch is expressed as a set of typed operations against canonical field paths, independent of the storage projection, and is applied against a stated base version.", "Every patch declares its change class - non-substantive correction, substantive change or supersession - and the class determines the required approval before the patch is released.", "A patch that alters coordinate values, the cited CRS, the coordinate epoch or the released precision is always substantive and requires a new version rather than in-place amendment.", "Patches never remove supersession chains, tombstones or prior version labels; superseded content is marked, not deleted.", "A patch that would change a cited external definition's meaning is refused: the correct action is to cite a different definition version and record the migration note.", "Patch application is refused while a hold is present on the target record." ], "compatibility_rules": [ "Adding an optional element or an additional reference is backward compatible; removing an element, narrowing cardinality, tightening a required flag or changing a value-kind is breaking and requires a new model version.", "Identifiers, once issued, are never reused or reassigned; a retired identifier remains resolvable to a tombstone or superseded marker.", "Changing the pinned registry dataset version is a breaking change for any attachment whose cited definition changed status or parameter values, and must produce an impact list.", "Consumers must tolerate unknown optional elements and must not infer meaning from element ordering in any projection.", "A conformance claim may only be upgraded from alignment to conformance when test evidence is referenced; the reverse downgrade is always permitted and is not breaking." ] }, "artifact_rules": { "identity_priority": [ "Authoritative master-system identifier issued by the system of record for the subject - the host object's master system, the records system for disposition records, or the geodetic authority for a cited definition - always takes precedence and is recorded verbatim with its issuing system.", "Governed global identifier or IRI issued under a controlled naming authority, including persistent definition IRIs whose version appears in the identifier path, used when no master-system identifier exists.", "UUID or ULID minted by the adopting Dimension in its own namespace, used only when neither of the preceding forms is available, and recorded together with the reason no higher-priority identifier applied.", "A date, a timestamp, a version label, a licence name, a file name or a display name is never used as an identifier, and no identifier may embed a date-like component as its distinguishing part." ], "timestamp_rule": "Every time value is an RFC 3339 date-time that includes seconds and an explicit numeric offset or the 'Z' designator; offset-less and date-only values are rejected except where a value is semantically a calendar date, which is recorded in a date-typed element and never coerced into a timestamp. Event time and observation or ingestion time are recorded separately whenever they differ: the observation or survey time of a geometry, the effective-from instant of a decision or version, and the time the fact was ingested into the record are distinct elements and are never collapsed. Coordinate epoch, which is a geodetic quantity for dynamic reference frames, is recorded as a decimal year in its own element in addition to - never instead of - the RFC 3339 record timestamps.", "serial_naming_rule": "Artifacts that occur in a governed sequence for one subject - review and approval records, disposition and tombstone records - carry a monotonic zero-padded sequence number scoped to the attachment identifier. The sequence is gapless, never reused after withdrawal, and contains no date, year or month component; ordering is by sequence number, with the RFC 3339 issue timestamp held as a separate attribute.", "integrity_rule": "Each artifact records a cryptographic digest computed over its canonical form together with the digest algorithm identifier, so that integrity is independent of the storage projection and of transport encoding. Where an artifact is signed, the signature references the same canonical digest and names the signing party; a digest mismatch marks the artifact as unverified and blocks release rather than triggering silent repair. Digest verification and signature validation are performed by the components that hold the artifact; this model records the expected value and the verification reference only." }, "policies": [ "Roles, sensitivity labels and access-rights references recorded by this model are advisory attributes only. Authorization decisions are rendered by an external decision point and applied by an external enforcement point; no record in this model grants, denies or enforces access.", "Access and redistribution are governed separately. Being able to read a CRS definition, a transformation grid or a source geometry confers no right to redistribute it, and the derived geometry inherits the most restrictive input condition until a licence review says otherwise.", "External standards, registries and profiles are treated as alignments. A conformance claim is recorded only where referenced test or certification evidence exists; otherwise the claim is downgraded to alignment and the gap is recorded.", "Definitions, grids and audit records referenced by this model are never copied into it as authoritative content. Only citations, versions, statuses and subject-specific parameters are held locally.", "Sensitive-location classification is determined by the data provider or host-object owner, carries a mandatory next-review date, and is reduced in precision by deterministic grid-based rounding rather than randomization, with the generalization disclosed on every released copy.", "Nothing in this model is removed by overwriting. Superseded versions, retired identifiers and disposed records leave a marker that keeps prior references resolvable." ], "crud": { "read": [ "Reading a record returns its canonical form, the governed citation of every external definition it uses, and the declared claim type for every profile it names.", "Full-precision coordinates for a location classified as sensitive are returned only when the external decision point authorises the requesting recipient class; otherwise the generalized value plus the generalization statement is returned.", "Read responses always carry the licence and redistribution state of the derived geometry so that a consumer cannot mistake read access for a redistribution right.", "Superseded versions and tombstones remain readable, marked with their status and successor reference." ], "create": [ "An attachment may be created only when the host-object reference resolves and a CRS is cited by governed identifier with its dataset version.", "Creation records the identifier chosen, the identifier priority level applied, and the reason where a Dimension-minted identifier was used.", "Creation records observation or survey time and ingestion time separately, and records the coordinate epoch where the cited frame is dynamic.", "Creation of an attachment carrying coordinates for a potentially sensitive location requires a sensitivity determination or an explicit recorded statement that none applies." ], "update": [ "Every update is applied as a classified patch against a stated base version, and a substantive change produces a new version rather than an in-place amendment.", "Updates to coordinate values, cited CRS, coordinate epoch or released precision require the approval level declared for substantive change and record the approving party and time.", "Updates never rewrite provenance, supersession chains or prior review outcomes; corrections to those are recorded as additional statements.", "Updates are refused while a hold is present, and are refused where they would alter the meaning of a cited external definition." ], "delete": [ "This model performs no physical deletion. Removal is expressed as a state transition to a tombstone that retains the attachment identifier, the removal time in RFC 3339, the authority reference and, where applicable, a successor reference; the identifier is never reused.", "Every record carries a retention class referencing a schedule maintained in the adopting Dimension's records policy; the record is retained until the retention trigger and period are satisfied.", "A hold suspends all disposition for the record, its versions and its supporting evidence until the imposing authority releases it; a disposition marker applied while a hold is present is refused.", "Physical destruction, media sanitisation, export and transfer are executed by the referenced records-management component under the adopting Dimension's retention policy. Deletion execution is outside this model's boundary; this model owns only the retention class, hold flag, tombstone marker and the reference to the executing component.", "When the host object is disposed, the attachment follows the host's disposition outcome, and a tombstone recording the host reference and the disposition authority is retained in place of the removed geometry." ] }, "roles": [ { "name": "Host-object owner", "responsibilities": [ "Accountable for the host object that carries the attachment and for its disposition outcome", "Confirms that a geometry attachment is required and names its purpose discriminator", "Approves sensitivity determinations for locations belonging to the host object" ] }, { "name": "Geometry steward", "responsibilities": [ "Maintains the attachment record, its versions, effective intervals and supersession chain", "Ensures every cited definition, operation and grid is recorded with its version and status", "Raises escalation when a cited definition is deprecated or retired" ] }, { "name": "CRS and geodetic authority liaison", "responsibilities": [ "Tracks the authoritative registry and the applicable national or regional reference-frame programme", "Maintains the pinned registry dataset version and the review interval for that pin", "Advises on permitted coordinate operations, grids and accuracy floors without redefining registry content" ] }, { "name": "Producer", "responsibilities": [ "Performs the survey, capture or derivation that yields the geometry", "Records derivation inputs, agent, software version, parameters and asserted uncertainty", "Records observation time and ingestion time as separate values" ] }, { "name": "Independent reviewer", "responsibilities": [ "Examines the geometry, its CRS binding, its provenance and its rights declarations", "Records blocking and advisory check outcomes without executing the checks personally where an external validation component is used", "Remains distinct from the producer and the approver, or records the exception when unavoidable" ] }, { "name": "Approver", "responsibilities": [ "Authorises release of a specific version under a stated authority basis", "Records conditions attached to a conditional approval and their resolution", "Authorises the change class for substantive changes and supersessions" ] }, { "name": "Records custodian", "responsibilities": [ "Holds the retention schedule reference applied to attachment records", "Imposes and releases holds and instructs the executing records component", "Confirms tombstone content after a disposition or transfer is executed elsewhere" ] } ], "access": { "default_rule": "Default is deny-by-omission for full-precision coordinates and for any element whose redistribution state is prohibited or undetermined; all other elements default to the access rights declared by the owner package. In every case the recorded values are attributes only - an external policy decision point evaluates them and an external policy enforcement point applies the result.", "scopes": [ "bundle", "layer", "finding", "artifact" ], "exceptions": [ "An authorised recipient class may receive full-precision coordinates for a sensitive location; the recipient class is an attribute supplied here and the authorisation decision is made externally.", "A regulator, auditor or accredited reviewer may read governance findings and artifacts that are otherwise restricted, without acquiring any redistribution right.", "During an active hold, read access is preserved while update and disposition are suspended.", "An input that is readable but not freely redistributable is exposed with its redistribution state set to prohibited, and derived outputs inherit that restriction until a licence review changes it.", "Where a regional mandate conflicts with the owner package's default access rule, the conflict is recorded and the more restrictive rule applies until a precedence decision is referenced." ], "audit_requirements": [ "Every release of full-precision coordinates for a sensitive location must be auditable through the external audit system, and this model records only the reference to that audit entry.", "Every version issue, supersession, approval, hold imposition and tombstone marking must carry an accountable party reference and an RFC 3339 timestamp with seconds and explicit offset.", "Audit-trail generation, storage, retention and integrity are owned by the external audit system; this model neither produces nor guarantees audit records and must not be treated as the audit trail.", "Changes to the pinned registry dataset version must produce a recorded impact list that an auditor can resolve to the affected attachments." ] }, "agents_bootstrap": { "filename": "AGENTS.md", "required_fields": [ "Name", "Type", "Specification URL", "Storage type URL", "Interface URL", "Processes URL", "Model ID", "Owner" ], "read_order": [ "Read AGENTS.md first and resolve Name, Type and Model ID before touching any record, whatever the storage backend - a document store, a document-oriented database or a tool interface are all projections and none of them replaces this bootstrap file.", "Follow the Specification URL to obtain the model boundary, scope exclusions and composition links, so that target-owned concepts are not modelled or acted on locally.", "Follow the Storage type URL to learn the projection in use and the canonical form the projection maps to, before reading or writing records.", "Follow the Interface URL to learn the available operations, their preconditions and their refusal conditions.", "Follow the Processes URL to learn the approval, review, hold and disposition processes that govern change, and identify the external components that own authorization decisions, provenance, audit and deletion execution.", "Only then read records, treating any element that is absent as unknown rather than as permission." ] } }, "coverage": { "claim": "Claude's single-provider pass gives schema-consistent, source-grounded coverage of geometry value semantics, static and dynamic/compound CRS identity, coordinate-operation reproducibility, governance, and service lifecycle for WM-XCT-033 across 13 bundles and 64 findings, but completeness remains bounded by 19 self-declared checklist gaps, several unretrieved primary sources, an unpopulated relationship contract, and the absence of independent second-provider review.", "confidence": "medium", "checklist": [ { "dimension": "identity", "status": "covered", "notes": "Treated as host-dependent weak identity with an explicit priority order and an explicit prohibition on presenting a geometry identifier or digest as the identity of the Spatial Thing (SRC-006)." }, { "dimension": "relationships", "status": "covered", "notes": "Host binding, CRS reference, related-geometry relations by named family and part membership are all modelled. Predicate evaluation is referenced, not owned (SRC-002)." }, { "dimension": "lifecycle", "status": "covered", "notes": "Version issue, effective interval, supersession ground, change-class routing between correction and new version, handling of superseded and retired cited definitions, and attachment behaviour on host retirement or transfer." }, { "dimension": "temporal", "status": "covered", "notes": "Frame reference epoch, coordinate epoch, observation time, transformation reference epoch, definition publication time and ingestion time are five distinct data elements with a time role map and a dedicated validation function. Temporal CRS origin, axis kind, unit, calendar and realized time scale are separately recorded." }, { "dimension": "provenance", "status": "covered", "notes": "Source entity, derivation activity, responsible agent, software version, operation and grid used, registry dataset version and residual uncertainty, aligned to entity/activity/agent semantics without importing audit-trail ownership." }, { "dimension": "ownership", "status": "covered", "notes": "Six accountable roles plus a records custodian, all advisory; ownership of every external concept is assigned in boundary notes and composition purposes rather than assumed locally." }, { "dimension": "validation", "status": "covered", "notes": "Validity and simplicity are recorded as verdicts against a named versioned profile with tolerance and evaluator reference; the profile is the only artifact this model publishes for validation." }, { "dimension": "access", "status": "covered", "notes": "Deny-by-omission default for full-precision coordinates and undetermined redistribution states, four access scopes, five exceptions, and an explicit split between attribute supply here and decision and enforcement elsewhere." }, { "dimension": "retention and deletion", "status": "covered", "notes": "Retention class referencing an external schedule, hold suspending all disposition, tombstone retaining identifier, removal time, authority and successor, and a named external executor for destruction and transfer; no physical deletion is performed by this model." }, { "dimension": "interoperability", "status": "covered", "notes": "Declared profiles with claim type, alignment-versus-conformance discipline requiring test evidence, encoding contract for axis order and units taken from the cited definition, and recorded conflicts between specifications." }, { "dimension": "classification", "status": "covered", "notes": "Primitive class, concrete type, aggregate kind and extended type are separate declarations resolved against governed vocabularies rather than inferred from structure." }, { "dimension": "spatial edge cases", "status": "covered", "notes": "Antimeridian, poles, longitude-range convention and planar versus geodesic edge interpretation are explicit declared cases in their own bundle, not implicit planar defaults (SRC-001, SRC-004)." }, { "dimension": "measurement", "status": "covered", "notes": "Ordinate precision, declared spatial resolution, tolerance and M measure units are modelled and kept distinct from positional accuracy, which is carried only as a referenced quality statement." }, { "dimension": "non-planar validity", "status": "gap", "notes": "No retrievable primary source settles validity rules for solids and non-planar surfaces. The finding records the applicable rule set as a declared reference and marks unresolved rules as gaps rather than asserting planar rules." }, { "dimension": "axis order and units", "status": "covered", "notes": "Axis order must be read from an explicit definition element with that element cited; inference from code, label, encoding or column order is refused and the refusal is recorded. Units are always references to a unit authority, never bare numbers." }, { "dimension": "datum and reference frame", "status": "covered", "notes": "Single realization, datum ensemble with declared accuracy, and dynamic frame with reference epoch are distinguished, and the comparability limit of citing an ensemble is asked explicitly." }, { "dimension": "domain of validity and scope", "status": "covered", "notes": "Authority scope text, area description, bounding box with its own CRS, vertical and temporal extent, plus the Dimension's permitted-CRS profile. Out-of-extent use is surfaced for approval, never blocked here." }, { "dimension": "registry versioning and pinning", "status": "covered", "notes": "Registry version is a required field, the wildcard version token is flagged as non-pinning, and re-pinning is the only route by which authority-sourced content changes." }, { "dimension": "registry licensing and redistribution", "status": "gap", "notes": "The EPSG Dataset terms of use and any attribution or redistribution obligation could not be retrieved from the custodian's own site during this research. Caching is therefore conditioned on confirming those terms first, and the constraint is asserted rather than evidenced." }, { "dimension": "non-Earth and planetary CRS", "status": "gap", "notes": "The OGC definition registers include planetary CRS families, which were not examined. Nothing here forbids them, but no evidence was gathered on their identifier conventions or datum semantics." }, { "dimension": "spatial applicability", "status": "covered", "notes": "Deformation-model spatial extent, temporal validity interval and frame extent are recorded as applicability context, with an explicit out-of-extent disposition and prohibited-use list." }, { "dimension": "measurement and uncertainty", "status": "gap", "notes": "Only published datum ensemble accuracy and declared model extents are recorded. Survey accuracy, error propagation, deformation-model uncertainty evaluation and fitness-for-purpose budgets are left to a measurement model and are not covered here; OGC Topic 24 defines model uncertainty attributes that this entry cites but does not consume." }, { "dimension": "geometry representation", "status": "covered", "notes": "The core bundles define representation-neutral geometry kinds, coordinate tuples, dimensionality, aggregate and multipart membership, ring structure, validity assertions and edge-case treatment. File encodings, spatial indexing, tessellation engines and repair execution remain external projections or services." }, { "dimension": "accuracy and uncertainty", "status": "covered", "notes": "Registry-stated operation accuracy, per-point local error estimates from grid-based transformations, and the mandatory unknown state for ballpark or unquantified steps are all modelled and separated." }, { "dimension": "reproducibility", "status": "covered", "notes": "Method, parameter, direction, resource checksum, engine and registry pins together with original preservation give an explicit reproducibility verdict rather than an implicit assumption." }, { "dimension": "geometry shape treatment", "status": "gap", "notes": "Antimeridian splitting and coordinate precision have a primary basis in RFC 7946, but densification tolerance and polar or singularity handling rest on practice; no consulted primary source specifies them normatively, so the finding is marked as a gap rather than presented as canonical." }, { "dimension": "chain accuracy aggregation", "status": "gap", "notes": "No consulted source defines how to combine per-step stated accuracies into one chain figure. The model requires the rule and its conservatism assumption to be declared locally and labelled a local computation, not an authority statement." }, { "dimension": "execution and enforcement", "status": "not-applicable", "notes": "Deliberately excluded. Functions calculate, validate or report only; execution, resource acquisition, gating of downstream use and audit-trail construction belong to referenced engines, distributors and the adopting Dimension." }, { "dimension": "authority", "status": "covered", "notes": "Change authority for CRS selection, geometry correction and transformation policy, with mandate reference, escalation on deprecation, and explicit separation from registry authorship." }, { "dimension": "rights and licensing", "status": "covered", "notes": "Per-input licence declaration, most-restrictive inheritance for derived geometry, verbatim attribution notices, and the explicit rule that readability implies no redistribution right." }, { "dimension": "privacy and sensitivity", "status": "covered", "notes": "Graded sensitivity categories, provider-owned determination, grid-based rounding preferred over randomization, released versus retained precision, mandatory disclosure and next-review date." }, { "dimension": "change control", "status": "covered", "notes": "Format-neutral canonicalization, typed patch operations against a stated base version, change-class gating, refusal under hold, and backward-compatibility rules including identifier non-reuse." }, { "dimension": "geodetic currency", "status": "gap", "notes": "Reference-frame replacement programmes change effective intervals of cited frames on authority timelines that this model can only track, not control; no primary source fixes a maximum acceptable lag between an authority's frame change and an adopting Dimension's re-pin." }, { "dimension": "format neutrality", "status": "covered", "notes": "No binding is canonical, binding-fixed defaults are recorded as losses rather than adopted as semantics, and the distinction between an absent CRS field and an explicitly undefined CRS value is preserved across canonicalisation." }, { "dimension": "cartographic rendering and symbolisation", "status": "not-applicable", "notes": "Rendering, symbolisation and generalisation for display are owned by a cartographic model. Generalisation appearing here is redaction for privacy, not display simplification, and is deliberately kept distinct." } ], "known_omissions": [ "ISO 19107:2019 is paywalled; only the catalogue scope statement was retrievable, so no clause-level claim is made from it and the abstract primitive/solid concepts are supported indirectly through OGC sources.", "OGC 06-103r4 is published as PDF only and its text layer was not machine-extractable in this pass; its content is used only where corroborated by GeoSPARQL 1.1 and the GeoPackage Encoding Standard, and the DE-9IM matrix detail is therefore referenced rather than reproduced.", "GML clause-level detail (curve segment interpolation types, solid shell structure, srsDimension semantics) was retrievable only at the standards landing page level; the curved and solid finding is consequently supported mainly by JSON-FG and GeoPackage.", "Topology as a distinct structure (shared edges, node-arc-face complexes, planar graph enforcement) is not modelled; only geometry as a value is in scope.", "Spatial indexing structures, tiling schemes and discrete global grid systems are not modelled, although they consume the extents defined here.", "Positional accuracy models and error ellipses are referenced as quality statements only; their derivation and statistical semantics are not defined.", "M-ordinate semantics vary widely by domain and no single authoritative vocabulary was located; the model records unit and semantics as declarations rather than constraining them.", "Geometry simplification and generalization algorithms are excluded even though generalized geometry appears as a disclosure control output.", "Coordinate operation definitions, transformation accuracy, grid-shift files and late-binding operation selection are not modelled; only the reference to a projected CRS's defining conversion is carried.", "Parametric and temporal CRS subtypes are named but their definition content is not elaborated.", "Planetary and non-Earth CRS families served by the OGC definition registers were not examined.", "The full ISO 19111:2019 text is paywalled and iso.org refused automated access; the openly published OGC Abstract Specification Topic 2 corrigendum was used as the equivalent text, so no clause-level citation of the ISO document itself is claimed.", "The EPSG Dataset terms of use, redistribution licensing and current released dataset version could not be retrieved from epsg.org, which refused automated access; only the registry's published URI guidance was verified.", "The IOGP Guidance Note 373-07 series, which carries the dataset's deprecation rules and entity structure, was not machine-readable and is therefore not cited at clause level; deprecation behaviour here rests on the registry's URI guidance and the OGC naming policy instead.", "Vertical datum modelling beyond identity and non-interchangeability - geoid models, height system realization, orthometric height computation - is left to geodetic authorities.", "Height and depth sign conventions and their interaction with axis direction are only partially covered.", "Coordinate precision, resolution and rounding as data quality concerns are not modelled here.", "Parametric CRS and parametric datum are not developed as their own finding, although ISO 19111 admits spatio-parametric compound CRS; a parametric component would currently be carried only as a generic compound component.", "Derived CRS and projected CRS conversion parameters, and map-projection method context, are captured only inside the pinned definition snapshot and are not decomposed into their own findings.", "Bound CRS and the embedded hub-transformation pattern found in legacy definitions are not modelled; such definitions would be classified as non-register or superseded and pinned as text.", "Non-Earth, planetary, inertial and orbital reference frames are outside the retrieved evidence base and are not covered by the frame dynamics classification as scoped.", "Moving-platform engineering frames (vessel, vehicle, robot base) are admitted through the engineering-definition finding, but the kinematic chain and its own time semantics are not modelled here.", "Sounding, tidal and chart datums are covered only generically under the vertical reference finding; hydrographic-specific practice was not researched to primary sources.", "IOGP Guidance Note 25 and EPSG Guidance Note 7-7 on ETRS89 were identified at page level but their full texts were not retrieved, so European regional practice is cited by reference only.", "No primary source was found that normatively specifies a densification tolerance rule or polar and projection-singularity handling; both are recorded as declarations with an explicit gap marker.", "ISO 19157-1 data-quality text was not retrievable at an openly accessible URL, so positional-quality vocabulary is aligned indirectly through the referencing standard's operation-accuracy concept and through agency uncertainty material rather than cited directly.", "The EPSG guidance notes 7-1, 7-2, 7-5 and 7-6 were not machine-extractable at fetch time; only the authoritative guidance-note index with titles, versions and dates is cited, so formula-level and null-transformation detail is acknowledged rather than quoted.", "Vertical datums, geoid models and the conversion between ellipsoidal and orthometric heights are treated only as a dimensionality and height-type boundary, not as a modelled subject.", "Raster and coverage regridding, resampling kernels and pixel-centre conventions are out of scope; only vector geometry is addressed.", "Uncertainty correlation between neighbouring vertices of one geometry is not modelled; only per-coordinate or per-operation values are carried.", "The parent model WM-XCT-010 boundary is asserted from registry metadata alone, since no relation rationale was supplied.", "No normative threshold is given for when a coordinate change becomes substantive; the criteria element exists but the numeric threshold must be set per adopting Dimension and is unsupported by the cited sources.", "Legal-hold semantics are grounded in general records-management lifecycle requirements rather than in a jurisdiction-specific litigation-hold rule; the authoritative regulation text could not be retrieved and the hold rule is therefore stated as a marker plus external ownership.", "Detailed geodetic content - operation method parameters, ellipsoid and prime-meridian handling, WKT and encoding grammars - is intentionally left to the conceptual and encoding standards and is not restated here.", "No pricing, procurement or contractual mechanics for licensed grids are modelled; only licence status and redistribution state are carried.", "Machine-readable policy expression for the sensitivity and rights rules is referenced as an external capability and not specified.", "Cross-border transfer controls on location data are not modelled; they are treated as an adopting-Dimension legal question.", "No uncertainty propagation model across concatenated coordinate operations, and no rule for combining operation accuracy with source coordinate uncertainty.", "No treatment of raster or coverage grid geometry, tiling schemes or discrete global grid cell identifiers beyond noting that some serializations can carry them.", "No model of geometry simplification, topological cleaning or conflation, which are transformations of shape rather than of reference frame.", "No treatment of moving-object or trajectory geometry where position varies continuously with time as a first-class value rather than as a versioned snapshot.", "No treatment of measured or linear referencing along a route, which requires a linear reference system distinct from a coordinate reference system.", "No model of the licence terms themselves for registry, grid and deformation resources; only the presence of a constraint is recorded.", "No enumeration of database-specific spatial type limits beyond the general statement that database bindings are lossy projections.", "No rule for reconciling a geometry whose host record and geometry disagree about which real-world thing is being located." ], "conflicts": [ "RFC 7946 fixes all coordinates to WGS 84 with longitude/latitude order and states that a line between two positions is a straight Cartesian line, while ISO 19111 / OGC Topic 2 and JSON-FG permit arbitrary CRSs with CRS-defined axis order, and geographic practice frequently interprets the same tuples geodesically. The model therefore treats edge interpretation and CRS binding as explicit declarations rather than defaults.", "RFC 7946 requires exterior rings counterclockwise and holes clockwise, while the simple-feature and well-known-binary lineage imposes no ring orientation requirement. Orientation is modelled with an explicit normativity flag instead of a single global rule.", "RFC 7946 advises against positions beyond three elements, while GeoPackage and JSON-FG's Measures conformance class support a fourth measure ordinate. Z and M presence are therefore explicit flags, and projection loss is reported rather than assumed.", "RFC 7946 requires antimeridian-crossing geometry to be cut into two parts, while OGC API - Features accepts a bounding box whose west value exceeds its east value to express the same crossing. Both conventions are recorded as declared strategies.", "GeoSPARQL uses the broader term Spatial Reference System while ISO 19111 / OGC Topic 2 define the narrower Coordinate Reference System; the model binds to the CRS URI form and records the terminological difference rather than treating the terms as identical.", "Validity in the simple-feature tradition is defined for planar two-dimensional geometry, but the same term is applied to solids and non-planar surfaces in richer encodings without an equivalent settled assertion set; this is recorded as an open gap.", "Axis order: the EPSG definition for geographic WGS 84 orders axes latitude then longitude, while OGC:CRS84 and GeoJSON fix longitude then latitude. The identifiers are not interchangeable, and the difference must be recorded rather than normalized away.", "RFC 7946 removed the crs member and fixes WGS 84 longitude-latitude, permitting other CRS only by prior arrangement, whereas OGC API - Features Part 2 lets a client request another CRS by URI and asserts it in a response header. A GeoJSON payload can therefore carry coordinates whose CRS is knowable only from the transport, which is precisely the case this model refuses to resolve by defaulting.", "OGC WKT-CRS states that a well-known text string is not suitable for storing CRS definitions because it omits source metadata and may omit applicability metadata - yet WKT is widely used as the definition of record in files, databases and projection sidecars.", "PROJ documents that it respects authority axis order only from version 6 onward, that it internally expects longitude/latitude for all projections, and that most GIS software does not follow the standard. The same identifier therefore yields different tuple orders across a toolchain, which is why axis order is treated as evidence to be read rather than a property to be assumed.", "The EPSG form of the OGC definition URI treats version 0 as the latest dataset version. That is convenient for resolution but defeats the reproducible pinning this model requires, so the wildcard is recorded as an explicit non-pinning flag.", "The normative WKT-CRS text verified here is version 2.0.6 (OGC 18-010r7); OGC lists version 2.1.11 (OGC 18-010r11) as current, so element-level details may have changed and clause-level claims are bounded accordingly.", "EPSG codes are unique only within a table, while coordinate reference systems and coordinate operations share one code range - so a code alone is ambiguous even within a single authority.", "RFC 7946 fixes all GeoJSON coordinates to a WGS 84 geographic CRS and removed the crs member entirely, so a GeoJSON projection cannot carry a coordinate reference or a coordinate epoch at all. Conveying dynamic context therefore requires an out-of-band agreement or a different carrier, and this model records the loss as a degradation decision rather than assuming a carrier exists.", "OGC Topic 2 states that dataset metadata should include coordinate epoch information for a dynamic CRS, and OGC API - Features Part 2 makes storageCrsCoordinateEpoch a recommendation rather than a requirement. The stricter internal policy stated here (no dynamic reference without an epoch or an approved unresolved record) is therefore a governance choice of the adopting Dimension, not a conformance claim against either standard.", "WKT-CRS 2.0.6 (OGC 18-010r7 / ISO 19162:2019) and WKT-CRS 2.1 (OGC 18-010r11, 2023) differ in their element sets, with the later revision adding elements such as anchor epoch and revised ensemble handling. A pinned snapshot must therefore record which WKT version it is expressed in, and re-serialization between versions is treated as a new snapshot.", "Epoch binding scope differs between the conceptual model and implementations: ISO 19111 associates the coordinate epoch with a coordinate set, whereas GDAL binds the epoch to the CRS at dataset or layer level and states that almost no format allows per-observation epoch storage. Per-observation epochs may therefore not survive a round trip, which is why binding scope is a required declared element.", "A bare register code without a register version can change meaning over time, because the EPSG Dataset advances through versioned releases and entries may be deprecated. Citing a code alone is a widespread practice that this model treats as insufficient provenance.", "CGPM Resolution 4 (2022) decided that the maximum UT1-UTC difference will be increased in or before 2035, with an implementation plan due at the 28th CGPM. Leap-second behaviour on UTC-based temporal axes may therefore change within the retention life of stored records, so leap-second exposure is recorded as a declared constraint with a review trigger.", "Frame naming is not a reliable indicator of dynamics: several widely used reference names denote ensembles or have both static and dynamic realizations, so the model refuses to infer frame dynamics from a name or code and requires an explicit classification with a citing clause.", "A fixed-CRS encoding requires longitude-latitude order and a single reference system, while CRS definitions carry their own axis order and any CRS may be referenced by URI in other profiles. A record can be valid under one and contradict the other, so the axis-order authority must be recorded explicitly.", "The concept of a ballpark transformation is an engine-level classification with no matching formal class in the referencing standard; the registry expresses comparable cases as null or copy transformations. This model treats it as a declared status rather than a standard class.", "One encoding recommends splitting geometries that cross the antimeridian, while other encodings and engines permit spanning geometries and use an inverted bounding box. No single normative rule applies across encodings, so treatment is recorded per record.", "A registry states one scalar accuracy per operation, whereas grid-based national transformations supply per-point local error estimates. Combining the two into a single figure is not standardized and is flagged as a local computation.", "Carrying a coordinate epoch for a dynamic storage CRS is a recommendation in one API standard but is structurally required by another encoding when a dynamic CRS is referenced; requirement strength differs and the model takes the stricter reading.", "Registry terms permit free use of CRS definitions while prohibiting distribution for profit and requiring ownership acknowledgement, whereas some derived-product licences assume unrestricted downstream redistribution; the model resolves this by inheriting the most restrictive input condition and flagging undetermined licences rather than defaulting to open.", "Transformation grids split into freely redistributable and obtainable-but-not-redistributable sets, so a pipeline that runs correctly is not necessarily a pipeline whose outputs may be published; access state and redistribution state are therefore modelled as separate elements.", "Persistent-identifier procedures require that assigned identifiers never change and that superseded items keep their identifiers, while national frame replacement changes the coordinate values those identifiers denote in practice; the model keeps the identifier stable and records a migration note stating whether values change.", "The spatial best-practice note explicitly places legal and privacy considerations out of its scope, while the sensitivity practice adopted here is privacy-driven; the two are combined deliberately and the privacy grounding rests on the generalization practice, not on the spatial note.", "Records guidance treats disposition execution as a shared records and IT responsibility, whereas an attribute-based access model locates all decisioning in a policy decision point; the model keeps both external and records only markers and references, so no local component claims either responsibility.", "Datum ensembles allow lower-accuracy users to treat several realizations as equivalent, which conflicts with precise-positioning users who must cite a specific realization and epoch; the model requires the specific citation and records ensemble membership rather than substituting it.", "A widely used JSON serialization fixes a single geographic CRS with longitude-first ordering and removed its prior CRS member because alternative CRS caused interoperability failures, while an interface standard in the same family provides CRS by reference with a declared storage CRS. An export to that serialization therefore collapses the CRS reference, and the two sources cannot both be satisfied without a recorded loss.", "Coordinate epoch has no slot at all in that JSON serialization, is carried at column rather than geometry granularity in the columnar binding, and is expressed through a separate coordinate-metadata construct in well-known text. Round-tripping a dynamic-frame geometry across these bindings loses or coarsens the epoch in different ways.", "Axis order conflicts persist between CRS definitions that declare latitude first, the longitude-first convention fixed by interface and JSON bindings, and legacy identifier-only practice in databases. The conflict is real and is handled by declaring the authoritative axis order and recording reordering as a loss.", "A commonly cited geographic CRS identifier denotes a datum ensemble rather than a single realization, so equal identifiers do not establish equal realization; the ensemble accuracy bounds admissible comparison precision. Much tooling treats the identifier as exact, which conflicts with the abstract model.", "The registry distinguishes superseded records, which remain valid but have a better equivalent, from deprecated records, which are erroneous. Many toolchains collapse both into a single unusable state, which conflicts with the registry's own semantics and can silently discard valid history.", "Version 1 of well-known text is deprecated in favour of the current version, and conversion between them is lossy in both directions for datum ensembles, dynamic frames and usage extents. Systems that persist the older form cannot round-trip current semantics.", "The abstract model restricts dynamic reference frames to geodetic and vertical frames, while engineering-report evidence shows this is insufficient for orbital and free-flight cases, and recommends a different encoding for coordinate operations than the one most widely deployed." ], "regional_assumptions": [ "No jurisdiction-specific legal regime is assumed. Where precise location is personal data, the applicable erasure and disclosure obligations are set by the adopting Dimension's jurisdiction and are executed by the referenced retention and privacy policy, not here.", "Vertical datums and height systems are national or regional realizations; the Z ordinate is meaningless without an explicit vertical reference, which this model references rather than defaults.", "The longitude-range convention (-180 to 180 versus 0 to 360) is a delivery convention that differs between communities and is recorded per value rather than assumed globally.", "Suppression thresholds and generalization resolutions for sensitive locations are jurisdiction- and sector-specific and must be supplied by the adopting Dimension's disclosure policy.", "Dynamic reference frames and plate-motion-driven coordinate change matter most in tectonically active regions; the coordinate epoch field is required only where the referenced CRS is dynamic.", "United States coordinates are assumed to be in NAD 83 or NAVD 88 only until the modernized NSRS frames NATRF2022, PATRF2022, CATRF2022 and MATRF2022 and the new geopotential datum replace them. NGS states NAD 83 is off-centre by about 2.2 m, NAVD 88 is biased and tilted, and every existing horizontal and vertical value will change by as much as four metres; no rollout date was confirmed in the material reviewed.", "Australian data is assumed to follow GDA2020, a realisation of ITRF2014 at epoch 2020.0. Plate motion of roughly 7 cm per year produced about 1.8 m of divergence from GDA94 and about 9 cm of ellipsoidal height difference; datasets mixing the two without transformation are wrong by those amounts.", "European realizations of ETRS89 and the European Vertical Reference System were not verified from EUREF sources during this research and are treated as an open regional gap rather than assumed.", "Vertical datums are national and gravity-related. No assumption is made that heights from different national datums are comparable, and gravity-related and ellipsoidal heights are flagged separately.", "Dynamic reference frames require a coordinate epoch to travel with the data. In plate-fixed regional frames local practice often leaves the epoch implicit; it is still recorded explicitly here.", "North America: NOAA NGS plans four plate-fixed dynamic terrestrial reference frames (NATRF2022, PATRF2022, CATRF2022, MATRF2022) each defined relative to ITRF2020, plus a gravity-based geopotential datum realized through an updated geoid model. The published implementation timeline was not independently confirmed here, so these frame names are recorded as references rather than as effective defaults.", "New Zealand: NZGD2000 is a semi-dynamic datum aligned to ITRF96 at epoch 2000.0, with a versioned deformation model comprising a secular velocity component and earthquake patches. Its versions are named by approximate publication date (for example 20180701), a convention this model stores verbatim as a version label and explicitly refuses to treat as an identifier or a coordinate epoch.", "Australia: a two-frame approach pairs a static plate-fixed datum with a time-dependent frame, with a plate motion model used to propagate between epochs. This was observed only through secondary summaries because the primary national committee pages redirected or timed out during research, so it is held as an unverified regional note rather than a grounded structural claim.", "Europe: ETRS89 practice is addressed by an EPSG guidance note identified but not retrieved. Plate-fixed European practice is assumed to follow the same plate-fixed pattern as the North American and Australian cases and is flagged as unverified.", "Global versus regional realization: ITRF2020 has reference epoch 2015.0 while national frames adopt their own reference epochs, so a coordinate epoch is meaningful only together with the frame it qualifies; cross-region merging without both is treated as unsafe.", "Extraterrestrial and planetary bodies, and marine or airborne moving-platform frames, are outside the researched evidence base; regional assumptions here concern terrestrial Earth-referenced practice only.", "The geodetic-agency evidence used here is United States specific, covering a national spatial reference system, its grid-based horizontal and vertical transformations and its plate-fixed frame family. Other jurisdictions maintain their own frames, grids, tools and accuracy conventions, and none of the region-scoped statements generalize.", "Grid and deformation-model resources carry different licences by jurisdiction; availability from a public distribution network does not imply a right to use, and a Dimension must record its own licensing position.", "Decimal-year epoch conventions, and the treatment of leap seconds when converting between a timestamp and an epoch, differ between agencies and are not harmonized here.", "Transformations are region-scoped: a national transformation set spans a fixed set of regions and is undefined outside them, so area-of-use testing is mandatory rather than advisory.", "Regional public authorities issue binding technical guidance constraining which coordinate reference systems may be used and how they are identified; the model carries a regional-mandate element and a deviation justification, but does not encode any specific regional CRS list.", "National geodetic authorities replace reference frames on their own timetables, so effective intervals and supersession of cited frames are region-specific and must be tracked by the adopting Dimension's liaison role.", "Retention periods, disposition rules and legal-hold triggers are jurisdiction-specific; the retention class here references an externally maintained schedule and asserts no period of its own.", "Sensitivity thresholds for location data differ by jurisdiction and by subject matter; the graded categories are adopted as a structure, while the category boundaries are set by the adopting Dimension.", "Grid licence conditions vary by country, and some national grids are obtainable only through provider-specific channels; redistribution state must therefore be evaluated per grid and per region.", "North American reference-frame modernisation replaces a horizontal datum misaligned from the geocentre by roughly two metres and a vertical datum biased and tilted at the metre level, with four plate-fixed frames and a geopotential datum. Adopting Dimensions in that region must expect a re-derivation obligation across existing bindings; the timeline is set by the national authority, not by this model.", "Europe, Australasia and Japan use differing conventions for plate-fixed versus globally aligned frames and for whether coordinates are held at a fixed epoch or propagated. Epoch policy is therefore declared per adopting Dimension and per host collection rather than assumed globally.", "National grid and deformation model resources differ in availability, versioning cadence and redistribution permission. A pin set that is reproducible in one jurisdiction may be unreproducible in another because the pinned resource cannot be obtained.", "Location-privacy obligations and the threshold at which coordinates become personal or sensitive vary substantially by jurisdiction. Generalisation radii and sensitivity classifications must be set by the adopting Dimension against local law.", "Access to the principal geodetic registry requires acceptance of terms of use, which some organisations and jurisdictions treat as a procurement or compliance precondition. The model records this as a licensing hold rather than assuming open access." ], "adversarial_checks": [ "Checked that no bundle, layer, finding or function claims ownership of evaluation, execution, enforcement or audit-trail semantics. Validity verdicts and declared relations store only profile, verdict, tolerance, evaluator reference and time; the recording functions state explicitly that no evaluation, repair or enforcement is performed and that no evaluator audit record is reproduced.", "Checked that the CRS register is not modelled locally. The CRS finding carries only the reference URI, axis order, longitude-range convention, coordinate epoch and a transformation quality statement; CRS definitions, datum parameters, versioning and deprecation are in out_of_scope and in a REFERENCE composition link.", "Checked that no serialization was made canonical. The only coordinate-bearing artifact is explicitly labelled a projection with a profile reference and loss report, canonicalization rules exclude encoding syntax, and a policy forbids a lossy projection from overwriting the canonical value.", "Checked that the host thing is not duplicated. The identity finding models weak identity and binding role only, asserts host/geometry disjointness, and every function that touches a host is constrained to create or modify nothing but the binding.", "Searched for counterexamples to a planar linear default and found several: straight Cartesian edges in GeoJSON versus geodesic interpretation, antimeridian cutting versus inverted bounding boxes, and curved and solid types in JSON-FG, GeoPackage and GML. These were promoted into a dedicated boundary-case bundle rather than resolved by fiat.", "Rejected attractive but unsupported structure: no local geometry-operation catalogue, no spatial index model, no topology-complex model, no accuracy-derivation model and no map-portrayal layer were added, since each would either duplicate a sibling model or lack primary support.", "Checked the exclusive artifact rule across all thirteen findings: exactly two findings declare artifacts with a null rationale, and the remaining eleven declare an empty artifact array with a substantive rationale explaining why the context is inline or reference data.", "Checked that every identifier is unique, lower-kebab-case, prefixed consistently and free of any date-like component, and that no date is used as an identifier anywhere in the identity priority or serial naming rules.", "Tested whether a CRS can be identified by a bare code such as 4326: rejected. The registry's own guidance states codes are unique only within a table and that CRS and coordinate operations share one code range, and no axis order can be derived from a code.", "Tested whether holding a well-known text string constitutes holding the definition: rejected. OGC WKT-CRS itself states that WKT omits source metadata and may omit applicability metadata, so a snapshot must carry provenance, digest and registry version separately.", "Tested whether a locally cached definition may be treated as a local registration: rejected. The snapshot is a citation with a digest and a supersession chain, no local code is minted in an authority namespace, and the custodian retains sole authority over issuance and deprecation.", "Tested whether this model should own transformation between CRS: rejected. ISO 19111 separates coordinate operations from coordinate reference systems, so only a projected CRS's defining-conversion reference is carried and no conversion is executed, selected or scored for accuracy here.", "Tested whether validation and status observation imply enforcement: rejected. Functions emit findings and observations; decision, migration, blocking and audit-trail retention are executed by the adopting Dimension's services, and the access layer says so explicitly.", "Tested whether a serialization default - GeoJSON's fixed longitude-latitude order - can stand in for a CRS declaration: rejected. RFC 7946 permits other CRS only by prior arrangement, so the order is recorded as an interface fact and never written back over the authority axis order.", "Tested whether naming WGS 84 is a sufficient frame statement: rejected. ISO 19111 admits datum ensembles whose members are distinct realizations agreeing only within a declared accuracy, so an ensemble reference must be distinguished from a named realization and its stated ensemble accuracy recorded.", "Tested whether a resolvable definition URI is enough for reproducibility: rejected. The EPSG form treats version 0 as latest, so a URI without an explicit registry version is flagged as non-pinning and cannot support reinterpreting a historic coordinate.", "Tested whether the applicability profile artifact smuggles interface ownership into this model: rejected on inspection. It declares permitted CRS, storage CRS and coordinate epoch in a format-neutral way; how those are advertised over any particular API remains with the interface projection.", "Checked every finding and function against the relation rationales for target ownership: no node evaluates a deformation model, interpolates a grid, executes a transformation, realizes a time scale or maintains a register. The deformation finding is deliberately inline-only precisely so that no local artefact implies custody of a grid or of a displacement computation.", "Checked that audit-trail semantics are scoped to this model's own change log, with an explicit disclaimer that audit trails for transformation execution, deformation evaluation, register maintenance and downstream coordinate use belong to the referenced operational models.", "Attacked the confusion this model exists to prevent: verified that no data element defines a coordinate epoch as a record timestamp, that five time roles are separately typed, that a time role map is mandatory, and that a dedicated validation question and function guard the substitution in both directions.", "Tested the 'a code is enough' counterexample: an EPSG code without register version, a local grid name and an undefined srs row are each explicitly declared insufficient and routed to an unresolved state with a prohibited-use list, rather than resolved by a default.", "Tested whether frame dynamics could be inferred from a CRS name or code and concluded it cannot, so frame dynamics is a mandatory declared code carrying the citing clause or register attribute; the same reasoning removed any inference of axis order from a code.", "Tested the interoperability floor against RFC 7946 GeoJSON, which can carry neither a CRS reference nor an epoch, confirming that carrier incapacity must be recorded as a conflict and a degradation decision instead of being silently absorbed.", "Checked that the delete rules cannot orphan historic coordinates: tombstones retain register authority, code, version, digest and supersession state, retention is tied to the life of citing coordinates, and execution is assigned to an external policy owner rather than claimed here.", "Checked artefact discipline: four findings declare artefacts with a null rationale and six declare an empty artefact array with a substantive rationale; no finding populates both, and each inline rationale names the external owner of the document that would otherwise be duplicated.", "Checked every bundle, layer, finding and function against the composition ledger: none owns CRS or operation definitions, none owns registry deprecation or supersession, none executes a transformation, acquires or licenses a resource, enforces acceptance, or constructs an audit trail. Where such a concept appeared, it was moved to out_of_scope, a boundary note or a REFERENCE link.", "Stress-tested the round-trip temptation: grid interpolation, iterative methods, dimensionality reduction and stored-precision rounding each break bijectivity, so the model forbids an exact reversibility claim and permits only a tolerance-bounded one with the reasons stated.", "Searched for a counterexample to the assumption that accuracy is always available: ballpark, null and copy operations have unknown accuracy by construction, so the unknown-accuracy flag is mandatory rather than optional and must propagate to the chain.", "Verified that a coordinate epoch is never used as an identifier, never used as a record timestamp, and never conflated with event or ingestion time, since a decimal year and an RFC 3339 instant are different value kinds with different authorities.", "Rejected an attractive but unsupported structure: a local mirror of registry operation definitions and their accuracy statements. It would fork registry-owned content, so those findings are reference-only with an explicit dataset version pin instead.", "Tested the mixin boundary against widening: checked that no access, retention or lifecycle statement here can grant more visibility or longer life to a derived geometry than the host subject allows, and that derived extents and bounding boxes inherit the host's restriction.", "Checked that a chain that succeeds numerically but leaves the declared area of use, loses a height ordinate on export, or depends on a missing grid still produces a qualified rather than a clean outcome status.", "Checked every finding and function against the composition rationales for target-owned concepts. The sensitivity finding was constrained to attribute supply after review, the retention finding to markers and executor references, the review finding to reported check outcomes rather than check execution, and the interoperability finding to references and claim types rather than conformance testing or audit-trail content.", "Tested the temptation to model an audit trail locally. Audit references are held as external record references only, and the access audit requirements explicitly state that generation, storage, retention and integrity of audit records are owned elsewhere; no local audit entity, event log or integrity guarantee is defined.", "Tested the temptation to reproduce registry content. No CRS, datum, operation or grid definition is defined locally; only citations with authority, code, dataset version and status, plus subject-specific parameters, and the patch rules explicitly refuse changes that would alter a cited definition's meaning.", "Searched for a counterexample to the access-equals-redistribution assumption and found two independent ones: registry terms that permit use but restrict for-profit distribution and require acknowledgement, and grid documentation that separates freely redistributable grids from obtainable-but-non-redistributable ones. Access rights and licence terms are therefore modelled as separate elements.", "Stress-tested identity against the rule that a date is not an identifier. Version labels, effective intervals, review dates, removal timestamps and licence versions are all attributes; the serial naming rule forbids date components, and identifier priority names the master-system identifier first with a recorded reason whenever a locally minted identifier is used.", "Rejected an attractive but unsupported structure: a local conformance-testing layer that would have asserted standards compliance. Without referenced test evidence no cited source supports a conformance claim, so the model records alignment by default and permits upgrade to conformance only against referenced evidence.", "Rejected a local geometry-validation and repair capability. Validation engines, topology repair and coordinate computation are implementation concerns owned by external components; only reported check outcomes and asserted uncertainty are carried here.", "Checked that the model block describes the whole subject boundary rather than only its governance aspects, so that a consumer reading the scope statement, in-scope list and boundary notes obtains the complete WM-XCT-033 surface including geometry payload description, CRS binding, epoch and coordinate-operation declaration.", "Tested whether a rule such as assume the geographic CRS when none is stated could be justified model-wide. Rejected: that fixing is normative only inside a specific JSON serialization and inside one interface standard's core, both of which are bindings. Generalising a binding-scoped default into model semantics would be unsupported, so an explicit resolution failure is required instead.", "Tested whether this model should own transformation execution. Rejected: the engine's own documentation shows candidate operations are ranked by roughly a dozen criteria including local grid availability and engine version, and that the first-ranked operation is not necessarily the one applied to a given coordinate. Owning execution would embed one implementation's heuristics as semantics, so the model pins, verifies and reports instead.", "Tested whether an audit trail belongs in this model, since operations produce decision and authorization references. Rejected: the model emits those references for capture and retains none; the request-precondition finding was deliberately made inline-only and artifact-free so that no competing durable operation record is created here.", "Tested whether coordinate epoch could serve as the record timestamp and remove the need for a separate time axis. Rejected: epoch is a geodetic reference time in decimal years attached to the coordinates, not to the record, and the timestamp rule keeps event time, observation time and epoch mutually distinct.", "Searched for a normative, testable requirement that spatial relations must be computed in a common CRS. Found the influence of reference systems on geometric computation treated as a first-class concern and relation families defined, but not a universal machine-checkable rule. The comparability gate is therefore stated as a declared local precondition with an explicit failure, not as a conformance claim.", "Tested whether identical CRS codes are sufficient evidence that two geometries are comparable. Rejected: where the referenced datum is an ensemble, the ensemble accuracy bounds internal ambiguity, so code equality was demoted to a necessary but not sufficient condition and the ensemble indicator was made a first-class element.", "Tested whether a loss report could be reduced to a single lossy flag. Rejected: the sources document distinct and independently consequential loss classes, including CRS collapse, epoch loss, curve linearisation, topology loss and antimeridian splitting, each with a different magnitude and reversibility, so itemisation with magnitude is required.", "Tested whether the model could own deletion given that it defines a tombstone. Rejected: the tombstone is an invalidation assertion only; retention periods, hold administration, disposition approval and destruction were moved to a referenced retention model, and readiness is reported as false while any hold is unresolved." ] }, "researchAdjudication": { "providerMode": "single-provider-waiver", "activeProviders": [ "claude" ], "waivedProviders": [ "grok" ], "providerPolicy": { "contract_version": "1.0.0", "mode": "single-provider-waiver", "effective_at": "2026-08-29T09:06:27Z", "scope": "Queued subject-model research from WM-XCT-013 onward", "active_providers": [ "claude" ], "waived_providers": [ { "provider": "grok", "authorized_by": "repository owner", "authorized_at": "2026-08-29T09:06:27Z", "reason": "The repository owner explicitly instructed the research queue to continue without Grok after repeated structured-output failures." } ], "review_rule": "Claude-only results require a separate no-tools adversarial audit and remain reviewable drafts with a visible single-provider hold." }, "boundaryDecision": { "entry_kind": "mixin", "status": "accepted", "rationale": "Two distinct axes must be read separately. The record-plane axis (frozen registry) places this row in the 'world-model' plane under registry_id vr.wm-xct-033; that plane token is a cataloguing artifact, not a subject-model kind. The registry's own entry_kind field already reads 'mixin', and unlike a generic record-plane token such as 'standalone-mm' this value is already schema-aligned rather than needing translation. Independently, the content confirms mixin on the schema axis: the identity finding establishes host-dependent weak identity ('a geometry has no independent real-world identity... is identified through that binding'), the purpose statement self-describes the subject as a 'geometry and coordinate-reference mixin', and out_of_scope explicitly excludes the host's own identity, classification and lifecycle so the model can attach to any host thing. The geo-svc bundle's idempotency keys, optimistic-concurrency preconditions, and supersession/tombstone chain look aggregate-root-like, but that machinery is scoped to the versioned host-bound 'attachment', not to an independent top-level entity, and remains subordinate to the host's own disposition outcome, so it does not displace mixin as the correct schema kind." }, "decisions": [ { "concept": "Entry kind classification (mixin vs. aggregate root)", "disposition": "Accepted as mixin; record-plane and schema axes both already align in this record.", "rationale": "The registry's own entry_kind field already reads 'mixin' and is schema-compatible, unlike a generic record-plane token; the weak-identity finding, the explicit self-description as a geometry/CRS mixin, and the out-of-scope exclusion of host identity and lifecycle all independently confirm mixin over entity, relationship, or aggregate." }, { "concept": "Aggregate-root / consistency-boundary scope", "disposition": "Accepted with annotation: the host-bound 'attachment' record, not the geometry value or the host thing itself, is the local consistency unit.", "rationale": "The geo-svc bundle's idempotency keys, optimistic-concurrency preconditions, and supersession chain look aggregate-like, but they are explicitly scoped to the versioned attachment and remain subordinate to the host's own disposition, so mixin classification survives the tension rather than being displaced by it." }, { "concept": "Ownership boundary rigor", "disposition": "Accepted without modification.", "rationale": "Eight sourced boundary_notes and a ten-item out_of_scope list, reinforced by dozens of adversarial_checks entries that explicitly reject owning CRS registries, transformation execution, predicate evaluation, and audit trails, together demonstrate a non-superficial, well-defended boundary that needs no widening or narrowing." }, { "concept": "Composition relations to parent and sibling models", "disposition": "Held: treat as provisional prose-level boundary only, not yet an audited structural relationship.", "rationale": "The frozen relationship-contract evidence supplied for this audit is an empty array while the registry asserts parent_ids=WM-XCT-010, and the model's own known_omissions admits the parent boundary is asserted from registry metadata alone with no relation rationale supplied, so the composition graph implied by boundary_notes cannot yet be treated as verified structure." }, { "concept": "Source support and live verification", "disposition": "Content accepted as well-sourced; publication held pending live re-fetch of citations.", "rationale": "53 sources are cited with mostly tier-1 authority and explicit version pins, but this audit has no tool access to confirm URLs are still live, and the model itself flags unresolved currency issues such as citing WKT-CRS 2.0.6 while version 2.1.11 is listed current, plus an EPSG terms-of-use and dataset version that could not be retrieved." }, { "concept": "Retention and disposition scoping", "disposition": "Accepted without modification.", "rationale": "Retention, hold, and tombstone machinery is explicitly subordinated to the host object's own disposition outcome, no retention period is asserted locally, and physical destruction is assigned to an external executor, which is the correct shape for a mixin that must never outlive or extend beyond its host." }, { "concept": "Access default rule and exceptions", "disposition": "Accepted without modification.", "rationale": "The deny-by-omission default for full-precision coordinates and undetermined redistribution states, four defined scopes, five bounded exceptions, and the explicit separation of attribute supply from external decision and enforcement together form a coherent and sufficiently specific access model." }, { "concept": "Artifact identity rules", "disposition": "Accepted; independently recomputed and verified consistent across all 24 declared artifacts.", "rationale": "Recounting non-empty artifact declarations across the structure yields exactly 24, matching provider_counts, and every sampled identity_strategy consistently applies the master-system-identifier, then governed-IRI, then Dimension-minted-ULID priority while explicitly forbidding date-based identifiers." }, { "concept": "Registry composition fields left blank", "disposition": "Held pending relationship-contract population or explicit not-yet-assigned marking.", "rationale": "composition_role and aligned_model_ids are blank in the frozen registry record even though boundary_notes name at least seven neighbor models by role, so these fields should be populated or explicitly marked unset before the record advances past boundary-review-required status." }, { "concept": "Non-planar and solid geometry validity gap", "disposition": "Accepted as an honestly disclosed gap, not a defect.", "rationale": "Because ISO 19107 is paywalled and OGC 06-103r4's text layer was not machine-extractable, the model correctly declines to extend planar simple-feature validity rules onto solids and curved surfaces and instead marks the applicable rule set as an externally referenced gap rather than asserting unsupported coverage." }, { "concept": "Function naming clarity for geo-svc-fn-evaluate-comparability", "disposition": "Accepted as scoped, with a naming clarity note for future revision.", "rationale": "The function only tests metadata preconditions such as shared CRS, epoch alignment, and edge interpretation rather than performing the geometric predicate evaluation the model elsewhere disclaims owning, so the current name risks being misread as claiming evaluation ownership its own finding text explicitly disavows." } ], "publicationHolds": [ "Independent second-provider (Grok) review remains waived under the repository owner's 2026-08-29 authorization; this record must stay flagged as a single-provider reviewable draft until Grok is reinstated for this queue or an equivalent independent audit is performed.", "All 53 SRC-* citations require live re-verification of URL availability and version currency before publication, with particular attention to the WKT-CRS 2.0.6-vs-2.1.11 currency gap and the unretrieved EPSG Dataset terms-of-use and current dataset version.", "The relationship contract for WM-XCT-033 is currently empty while the registry asserts parent_ids=WM-XCT-010; publication should hold the parent/composition claim as provisional until a populated relationship contract or an explicit rationale is supplied.", "Registry fields composition_role and aligned_model_ids are blank despite seven-plus named neighbor models in boundary_notes; confirm whether this is intentional for candidate status or an omission before promoting review_state past boundary-review-required.", "Independent second-provider review was explicitly waived by the repository owner; this Claude-only result remains a reviewable draft." ], "deferredResearch": [ "Verify European ETRS89/EUREF static-vs-dynamic frame practice and retrieve IOGP Guidance Note 25 and EPSG Guidance Note 7-7 in full, since both were identified only at page level and the model currently treats European practice as an unverified analogy to the North American and Australian pattern.", "Investigate whether planetary/non-Earth CRS families and moving-platform or orbital reference frames should be explicitly brought into WM-XCT-033's scope or formally assigned to a sibling model, since the current evidence base did not examine them at all.", "Retrieve EPSG Dataset terms-of-use, licensing conditions, and the current released dataset version directly from the custodian once automated access is no longer refused, to confirm the redistribution constraints asserted here.", "Establish whether Vercy should standardize the chain-accuracy aggregation rule and densification/polar-handling conventions across all XCT geometry-adjacent models rather than leaving each as a per-Dimension local computation, since no primary source normatively defines either." ] }, "statistics": { "sources": 53, "bundles": 13, "layers": 30, "findings": 64, "questions": 284, "artifacts": 24, "functions": 46 } }