Skip to main content

Geospatial Reference Ontology

Spatial Metadata
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA

Ontology: Geospatial Reference Ontology
Domain: Metadata Ontologies > Spatial Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/spatial-metadata/geospatial-reference-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "GeospatialReferenceOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: SpatialMetadata
  subject: GeospatialReference
  purpose:
    - represent reference frameworks for Earth-related spatial information
    - connect coordinates to datums, coordinate systems, and projections
    - preserve geodetic and geographic reference context
    - support interoperable spatial transformation and comparison
    - enable machine reasoning over georeferenced resources

# ---------- CORE ENTITY ----------
entity GeospatialReference:
  type: SpatialReferenceEntity
  applies_to: GeospatialResource
  may_include:
    - coordinate_reference_system
    - coordinate_system
    - datum
    - ellipsoid
    - projection
    - vertical_reference
    - reference_identifier
    - authority
    - area_of_use
    - epoch
    - units
    - axis_order
    - transformation
    - provenance

entity GeospatialResource:
  type: SpatialResource
  referenced_by: GeospatialReference

entity CoordinateReferenceSystem:
  type: SpatialReferenceSystem
  composed_from:
    - CoordinateSystem
    - Datum
  may_include:
    - Projection

entity CoordinateSystem:
  type: CoordinateFramework
  defines:
    - axes
    - axis_order
    - units
    - dimensions

entity Datum:
  type: GeodeticReference
  anchors: CoordinateReferenceSystem

entity Ellipsoid:
  type: EarthModel
  may_define:
    - semi_major_axis
    - semi_minor_axis
    - inverse_flattening

entity Projection:
  type: SpatialTransformationModel
  maps:
    - geographic_coordinates
    - projected_coordinates

entity VerticalReference:
  type: SpatialReferenceSystem
  applies_to: HeightOrDepth

entity ReferenceIdentifier:
  type: Identifier
  identifies: GeospatialReference

entity ReferenceAuthority:
  type: Authority
  assigns: ReferenceIdentifier

entity AreaOfUse:
  type: GeographicExtent
  describes: ValidOrRecommendedReferenceRegion

entity CoordinateEpoch:
  type: TemporalReference
  contextualises: DynamicGeospatialReference

# ---------- REFERENCE TYPES ----------
geospatial_reference_types:
  - GeographicReference
  - GeodeticReference
  - ProjectedReference
  - VerticalReference
  - CompoundReference
  - EngineeringReference
  - DynamicReference

# ---------- RELATIONSHIPS ----------
relationships:
  GeospatialResource -> HAS_REFERENCE -> GeospatialReference
  GeospatialReference -> MAY_USE -> CoordinateReferenceSystem
  CoordinateReferenceSystem -> USES -> CoordinateSystem
  CoordinateReferenceSystem -> USES -> Datum
  Datum -> MAY_USE -> Ellipsoid
  ProjectedReference -> USES -> Projection
  Projection -> MAY_REFERENCE -> Datum
  GeospatialReference -> MAY_HAVE_VERTICAL_REFERENCE -> VerticalReference
  GeospatialReference -> IDENTIFIED_BY -> ReferenceIdentifier
  ReferenceIdentifier -> ASSIGNED_BY -> ReferenceAuthority
  GeospatialReference -> HAS_AREA_OF_USE -> AreaOfUse
  DynamicReference -> MAY_HAVE_EPOCH -> CoordinateEpoch
  GeospatialReference -> MAY_HAVE_TRANSFORMATION -> CoordinateTransformation
  GeospatialReference -> MAY_REFERENCE -> Provenance

# ---------- REFERENCE IDENTITY ----------
rule reference_identity:
  IF authoritative ReferenceIdentifier exists
  THEN resolve reference definition through associated authority

rule identifier_context:
  ReferenceIdentifier MUST be interpreted with ReferenceAuthority
  when identifier namespace is not globally unique

rule explicit_reference:
  coordinates SHOULD carry or inherit an interpretable GeospatialReference
  for deterministic spatial reasoning

# ---------- CRS STRUCTURE ----------
rule crs_components:
  CoordinateReferenceSystem MUST define sufficient:
    - coordinate_system
    - datum_or_reference_basis
  for coordinate interpretation

rule projected_reference:
  IF reference type = ProjectedReference
  THEN Projection MUST be available

rule geographic_reference:
  IF reference type = GeographicReference
  THEN angular coordinate axes and geodetic reference MUST be interpretable

rule compound_reference:
  IF reference type = CompoundReference
  THEN preserve each component reference independently

# ---------- DATUM / ELLIPSOID ----------
rule datum_context:
  coordinates using different datums MUST NOT be assumed equivalent

rule ellipsoid_context:
  IF Datum depends on Ellipsoid
  THEN Ellipsoid definition SHOULD be preserved

rule dynamic_datum:
  IF Datum is dynamic
  THEN CoordinateEpoch MAY be required for high-accuracy transformation

# ---------- AXES AND UNITS ----------
rule axis_order:
  coordinates MUST follow axis order declared by CoordinateSystem

rule axis_units:
  coordinate values MUST be interpreted using declared axis units

rule unit_conversion:
  IF references differ only in compatible units
  THEN valid unit conversion MAY establish comparable representation

# ---------- AREA OF USE ----------
rule area_of_use:
  GeospatialReference SHOULD declare AreaOfUse where applicable

rule suitability:
  IF coordinate lies outside AreaOfUse
  THEN reference MAY remain mathematically defined
  BUT suitability confidence SHOULD be reduced

# ---------- VERTICAL REFERENCE ----------
rule vertical_context:
  IF elevation or depth is represented
  THEN VerticalReference SHOULD be declared where vertical interpretation depends on datum

rule height_types:
  distinguish:
    - ellipsoidal_height
    - orthometric_height
    - depth
    - local_vertical_height

# ---------- TRANSFORMATION ----------
entity CoordinateTransformation:
  type: SpatialTransformation
  maps:
    - SourceGeospatialReference
    - TargetGeospatialReference
  may_include:
    - transformation_method
    - parameters
    - accuracy
    - area_of_use
    - epoch
    - provenance

operation transform_coordinate(source_coordinate, target_reference):
  require:
    - source_coordinate
    - source_geospatial_reference
    - target_reference
    - valid_transformation_path

  process:
    1. validate source reference
    2. resolve axes and units
    3. resolve datum and ellipsoid
    4. resolve projection if applicable
    5. resolve epoch if required
    6. apply transformation
    7. validate target representation

  preserve:
    - source_coordinate
    - source_reference
    - target_reference
    - transformation_method
    - transformation_parameters
    - provenance

  output:
    - transformed_coordinate
    - target_reference
    - transformation_accuracy
    - confidence

# ---------- COMPATIBILITY ----------
rule direct_comparison:
  coordinates MAY be directly compared
  ONLY IF their geospatial references are compatible

rule transformation_required:
  IF datum, projection, coordinate system, or reference epoch differs materially
  THEN transformation SHOULD occur before direct spatial comparison

rule unknown_reference:
  IF geospatial reference is unknown
  THEN coordinate semantics MUST be treated as uncertain

# ---------- VALIDATION ----------
validation:
  require:
    - interpretable_reference_context

  validate_if_present:
    - coordinate_reference_system
    - coordinate_system
    - datum
    - ellipsoid
    - projection
    - vertical_reference
    - reference_identifier
    - authority
    - area_of_use
    - epoch

  reject:
    - unresolved_reference_identifier
    - contradictory_crs_components
    - incompatible_axis_definition
    - missing_projection_for_projected_reference
    - missing_required_epoch_for_dynamic_transformation
    - direct_comparison_of_incompatible_references

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "geospatial reference" ~= "spatial reference" WHEN Earth-referenced spatial semantics apply
  "CRS" ~= "coordinate reference system"
  "reference system" ~= "spatial reference system" WHEN context is geospatial
  "geodetic reference" ~= "geodetic datum context" WHEN semantics match
  "reference identifier" ~= "CRS identifier" WHEN identifier specifically resolves CRS

  PRESERVE distinctions:
    geospatial_reference != coordinate_system
    coordinate_reference_system != coordinate_system
    datum != ellipsoid
    projection != datum
    projection != coordinate_reference_system
    vertical_reference != horizontal_reference
    coordinate_epoch != observation_time
    reference_identifier != reference_definition

# ---------- CONFIDENCE ----------
CONFIDENCE:
  authoritative_reference_identifier:
    score: 1.00

  explicit_complete_crs:
    score: 1.00

  validated_transformation:
    score: 0.95

  inferred_reference_from_unique_metadata:
    score: 0.90

  inferred_reference_from_coordinate_pattern:
    score: 0.65

  unknown_or_ambiguous_reference:
    score: <= 0.50
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_reference_change:
    - preserve original reference
    - validate new reference
    - determine whether coordinate transformation is required
    - transform only through valid transformation path
    - update provenance

  on_datum_change:
    - preserve source datum
    - resolve transformation parameters
    - account for epoch where required
    - recompute affected coordinates
    - update provenance

  on_projection_change:
    - preserve original projection
    - preserve source coordinates
    - recompute projected representation
    - update provenance

  on_epoch_change:
    - preserve previous epoch
    - reassess dynamic reference transformation
    - recompute coordinates where required
    - update provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - reference_entities
    - relationships
    - crs_rules
    - datum_rules
    - transformation_rules
    - validation
    - semantic_equivalence
    - confidence
    - update_model

  canonicalisation:
    - normalise_whitespace
    - preserve_case_sensitive_identifiers
    - sort_unordered_property_sets
    - preserve_rule_order

  output:
    deterministic_semantic_hash

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  interpret_as:
    - spatial metadata ontology
    - geospatial reference model
    - coordinate interpretation model
    - transformation reasoning structure

  operations:
    - identify geospatial references
    - resolve CRS identifiers
    - interpret coordinate systems
    - resolve datums and ellipsoids
    - resolve projections
    - evaluate area of use
    - resolve vertical references
    - transform compatible coordinates
    - account for coordinate epoch
    - preserve provenance
    - expose uncertainty

  constraints:
    - do_not_assume_reference_system_without evidence
    - do_not_assume_axis_order
    - do_not_equate_datum_with ellipsoid
    - do_not_equate_projection_with CRS
    - do_not_compare incompatible references directly
    - preserve original coordinates and reference definitions
    - preserve epoch context for dynamic references

# ---------- QUERY MODEL ----------
query:
  input:
    - coordinate
    - reference_identifier
    - authority
    - coordinate_reference_system
    - datum
    - projection
    - target_reference
    - area_of_use
    - epoch

  resolve:
    1. identify GeospatialReference
    2. resolve authoritative identifier
    3. resolve CoordinateReferenceSystem
    4. resolve CoordinateSystem axes and units
    5. resolve Datum and Ellipsoid
    6. resolve Projection if applicable
    7. resolve VerticalReference if applicable
    8. resolve CoordinateEpoch if required
    9. determine transformation path
    10. validate result

  output:
    - geospatial_reference
    - reference_identifier
    - coordinate_reference_system
    - datum
    - projection
    - vertical_reference
    - transformation_path
    - confidence
    - provenance

# ---------- INFERENCE ----------
inference:
  IF authoritative reference identifier uniquely resolves definition
  THEN identify GeospatialReference
  WITH confidence = 1.00

  IF complete CRS components uniquely identify known reference
  THEN infer GeospatialReference
  WITH confidence >= 0.90

  IF source and target references differ only by compatible units
  THEN infer unit_conversion_required

  IF source and target references differ by datum or projection
  THEN infer CoordinateTransformation required

  IF dynamic reference is used without required epoch
  THEN reduce confidence
  AND preserve temporal reference uncertainty

  IF reference remains ambiguous
  THEN do_not_force_resolution
  AND return candidate interpretations

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: GeospatialReference
  reference_context: machine_interpretable
  crs_structure: explicit
  datum_context: preserved
  projection_context: preserved
  vertical_context: preserved_where_applicable
  transformation_history: traceable
  provenance: preserved
  uncertainty: explicit
  semantic_retrieval: enabled

end flow
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ