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
Download Code
Copy to Clipboard