Skip to main content

Geographic Location 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: Geographic Location Ontology
Domain: Metadata Ontologies > Spatial Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/spatial-metadata/geographic-location-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "GeographicLocationOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: SpatialMetadata
  subject: GeographicLocation
  purpose:
    - represent identifiable locations on Earth
    - connect places with coordinates and geographic regions
    - describe administrative and physical location context
    - support geographic discovery and spatial reasoning
    - enable machine interpretation of place-based information

# ---------- CORE ENTITY ----------
entity GeographicLocation:
  type: SpatialLocation
  represents: EarthReferencedPlace
  may_include:
    - place_name
    - geographic_coordinates
    - coordinate_reference_system
    - administrative_area
    - country
    - region
    - locality
    - postal_area
    - elevation
    - geographic_extent
    - place_identifier
    - location_type
    - provenance

entity Place:
  type: GeographicEntity
  identified_by:
    - PlaceName
    - PlaceIdentifier

entity PlaceName:
  type: GeographicLabel
  may_have:
    - preferred_name
    - alternative_name
    - historical_name
    - language
    - transliteration

entity PlaceIdentifier:
  type: Identifier
  uniquely_or_contextually_identifies: Place

entity GeographicCoordinate:
  type: SpatialCoordinate
  components:
    - latitude
    - longitude
    - optional_elevation
  interpreted_by: CoordinateReferenceSystem

entity CoordinateReferenceSystem:
  type: SpatialReferenceSystem
  defines:
    - datum
    - coordinate_axes
    - units

entity AdministrativeArea:
  type: GeographicRegion
  may_be:
    - country
    - nation
    - state
    - province
    - county
    - district
    - municipality
    - city
    - town
    - village
    - ward
    - postal_area

entity GeographicExtent:
  type: SpatialExtent
  represents: AreaOccupiedOrCoveredByPlace

entity LocationType:
  type: Classification
  examples:
    - populated_place
    - administrative_area
    - natural_feature
    - address
    - site
    - landmark
    - region

# ---------- RELATIONSHIPS ----------
relationships:
  GeographicLocation -> REPRESENTS -> Place
  Place -> HAS_NAME -> PlaceName
  Place -> IDENTIFIED_BY -> PlaceIdentifier
  Place -> MAY_HAVE_COORDINATE -> GeographicCoordinate
  GeographicCoordinate -> USES -> CoordinateReferenceSystem
  Place -> MAY_BE_WITHIN -> AdministrativeArea
  AdministrativeArea -> MAY_BE_WITHIN -> AdministrativeArea
  Place -> MAY_HAVE_EXTENT -> GeographicExtent
  Place -> MAY_HAVE_TYPE -> LocationType
  GeographicLocation -> MAY_HAVE_ELEVATION -> Elevation
  GeographicLocation -> MAY_REFERENCE -> Provenance

# ---------- PLACE IDENTITY ----------
rule place_identity:
  PlaceName alone MUST NOT always imply unique geographic identity

rule disambiguation:
  IF multiple places share PlaceName
  THEN use available:
    - administrative_context
    - country
    - coordinates
    - place_identifier
    - location_type
  to resolve candidate location

rule identifier_priority:
  IF authoritative PlaceIdentifier exists
  THEN prefer identifier-based resolution over name-only matching

# ---------- COORDINATES ----------
rule coordinate_context:
  IF GeographicCoordinate exists
  THEN CoordinateReferenceSystem SHOULD be explicit
  unless coordinate encoding has an unambiguous standard reference

rule latitude_longitude:
  IF coordinate semantics = geographic_latitude_longitude
  THEN validate latitude and longitude under declared CRS

rule coordinate_order:
  DO NOT infer latitude/longitude order solely from numeric values
  when source representation is ambiguous

# ---------- ADMINISTRATIVE HIERARCHY ----------
rule administrative_containment:
  IF locality within district
  AND district within country
  THEN locality within country

rule hierarchy_consistency:
  administrative hierarchy SHOULD NOT contain circular containment

rule contextual_name:
  PlaceName + AdministrativeArea MAY form a more specific geographic identity

# ---------- GEOGRAPHIC EXTENT ----------
rule extent:
  IF GeographicExtent exists
  THEN coordinate point representing place SHOULD lie within or appropriately relate to extent
  unless point represents centroid, label point, entrance, or other declared reference position

rule point_vs_area:
  GeographicCoordinate != GeographicExtent

rule centroid:
  IF coordinate represents centroid
  THEN record coordinate_role = "centroid"

# ---------- DISTANCE AND DIRECTION ----------
operation geographic_distance(A, B):
  require:
    - interpretable coordinates for A
    - interpretable coordinates for B
    - compatible spatial reference
  return:
    - distance
    - unit
    - calculation_method
    - confidence

geographic_relationships:
  - within
  - contains
  - adjacent_to
  - near
  - north_of
  - south_of
  - east_of
  - west_of
  - overlaps
  - intersects

rule proximity:
  IF relation = near
  THEN threshold OR contextual proximity semantics SHOULD be available

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable geographic context
  validate_if_present:
    - place_name
    - place_identifier
    - geographic_coordinates
    - coordinate_reference_system
    - administrative_area
    - country
    - geographic_extent
    - elevation
  reject:
    - impossible coordinates under declared CRS
    - circular administrative containment
    - contradictory country or administrative assertions
    - ambiguous place resolution presented as certain
    - incompatible coordinate comparison without transformation

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "geographic location" ~= "geographical location"
  "place" ~= "geographic location" WHEN referring to an Earth-referenced identifiable location
  "locality" ~= "place" ONLY WHEN context supports locality semantics
  "lat/lon" ~= "latitude/longitude"
  "geographic coordinates" ~= "geospatial coordinates"
  "administrative region" ~= "administrative area" WHEN hierarchy semantics match

  PRESERVE distinctions:
    place_name != place_identifier
    geographic_coordinate != geographic_extent
    locality != administrative_area
    country != region
    physical_feature != administrative_area
    centroid != exact_site_location

# ---------- CONFIDENCE ----------
CONFIDENCE:
  authoritative_place_identifier:
    score: 1.00

  explicit_coordinates_with_crs:
    score: 1.00

  unique_name_with_administrative_context:
    score: 0.95

  unique_name_only:
    score: 0.85

  inferred_administrative_containment:
    score: 0.85

  ambiguous_place_name:
    score: <= 0.60
    action: preserve candidate locations

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_place_name_change:
    - preserve historical name where relevant
    - update preferred name
    - retain identifiers
    - preserve provenance

  on_coordinate_update:
    - preserve prior coordinates where required
    - validate CRS
    - validate new coordinate
    - reassess geographic relationships
    - update provenance

  on_administrative_change:
    - preserve historical administrative context
    - update current containment
    - revalidate hierarchy
    - update provenance

  on_extent_change:
    - preserve previous extent where historically relevant
    - validate new extent
    - reassess containment and overlap relationships
    - update provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - entity_definitions
    - relationships
    - place_identity_rules
    - coordinate_rules
    - administrative_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:
    - geographic ontology
    - spatial metadata model
    - place-resolution model
    - geographic reasoning structure

  operations:
    - identify places
    - resolve place names
    - disambiguate locations
    - interpret geographic coordinates
    - traverse administrative hierarchies
    - evaluate geographic containment
    - calculate distance
    - evaluate direction
    - preserve provenance
    - expose uncertainty

  constraints:
    - do_not_assume_place_name_is_unique
    - do_not_invent_coordinates
    - do_not_assume_crs_without evidence
    - do_not_collapse_point_and_extent
    - do_not_present_ambiguous_place_as certain
    - preserve historical and alternative names

# ---------- QUERY MODEL ----------
query:
  input:
    - place_name
    - place_identifier
    - coordinate
    - administrative_context
    - country
    - location_type
    - spatial_relationship

  resolve:
    1. identify candidate Place entities
    2. apply authoritative identifiers
    3. apply administrative context
    4. validate coordinates
    5. resolve CoordinateReferenceSystem
    6. evaluate geographic extent
    7. apply spatial relationships
    8. rank candidates by confidence

  output:
    - geographic_location
    - resolved_place
    - coordinates
    - administrative_context
    - geographic_extent
    - confidence
    - provenance

# ---------- INFERENCE ----------
inference:
  IF PlaceIdentifier uniquely resolves Place
  THEN identify GeographicLocation
  WITH confidence = 1.00

  IF PlaceName AND administrative context uniquely identify Place
  THEN resolve GeographicLocation
  WITH confidence >= 0.95

  IF valid coordinate lies within authoritative AdministrativeArea
  THEN infer location within AdministrativeArea
  WITH confidence = 0.95

  IF locality within region
  AND region within country
  THEN infer locality within country
  WITH confidence = 0.95

  IF PlaceName remains ambiguous
  THEN return multiple candidates
  AND preserve uncertainty

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: GeographicLocation
  geographic_identity: machine_interpretable
  place_context: preserved
  coordinates: reference_aware
  administrative_hierarchy: traversable
  spatial_relationships: machine_reasonable
  provenance: preserved
  uncertainty: explicit
  semantic_retrieval: enabled

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