Skip to main content

Geographic Information System Ontology

Information Systems
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA
Geographic Information System Ontology
Kireth Semantic Research Archive

PAGE:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/information-systems/geographic-information-system-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "GeographicInformationSystemOntology" v4.0

# ---------- DOMAIN ----------
DOMAIN := ComputingOntology
SUBDOMAIN := InformationSystems
ONTOLOGY := GeographicInformationSystemOntology

# ---------- PRIMARY ENTITY ----------
ENTITY GeographicInformationSystem {
    definition:
        "An information system designed to capture, manage, store, integrate,
         analyse and visualise data associated with geographic locations,
         spatial relationships and features of the physical or conceptual
         world.";

    objectives: [
        SpatialDataManagement,
        GeographicAnalysis,
        Mapping,
        SpatialQuery,
        LocationReasoning,
        DecisionSupport
    ];
}

# ---------- CORE ENTITIES ----------
SpatialEntity := {
    GeographicFeature,
    Location,
    Coordinate,
    Geometry,
    RasterCell,
    SpatialLayer,
    Map
};

GeometryType := {
    Point,
    Line,
    Polygon,
    MultiPoint,
    MultiLine,
    MultiPolygon
};

SpatialDataModel := {
    VectorData,
    RasterData,
    NetworkData,
    SurfaceData
};

GISComponent := {
    SpatialDatabase,
    GISSoftware,
    DataSource,
    AnalysisEngine,
    MapRenderer,
    UserInterface
};

# ---------- FUNDAMENTAL RELATIONSHIPS ----------
GeographicFeature HAS Geometry;
Geometry LOCATED_IN CoordinateReferenceSystem;
SpatialLayer CONTAINS GeographicFeature;
RasterData CONSISTS_OF RasterCell;
GIS STORES SpatialData;
GIS ANALYSES SpatialRelationship;
Map VISUALISES SpatialLayer;
User INTERACTS_WITH GIS;

# ---------- GEOGRAPHIC FEATURE ----------
GeographicFeature :=
    EntityWithSpatialLocationAndAttributes;

GeographicFeature HAS {
    Identifier,
    Geometry,
    AttributeSet
};

FeatureAttribute DESCRIBES GeographicFeature;

# ---------- COORDINATE ----------
Coordinate :=
    OrderedSpatialPosition;

Coordinate MAY_HAVE {
    X,
    Y,
    Z,
    Time
};

CoordinateMeaning DEPENDS_ON CoordinateReferenceSystem;

# ---------- COORDINATE REFERENCE SYSTEM ----------
CoordinateReferenceSystem :=
    FrameworkForRepresentingSpatialCoordinates;

CRS MAY_DEFINE {
    Datum,
    Projection,
    CoordinateAxes,
    Units
};

SpatialData SHOULD_HAVE KnownCRS;

IF LayersUseDifferentCRS
THEN Transformation MAY_BE_REQUIRED;

# ---------- MAP PROJECTION ----------
MapProjection :=
    TransformEarthSurfaceCoordinates
    -> PlanarCoordinates;

Projection MAY_DISTORT {
    Area,
    Shape,
    Distance,
    Direction
};

ProjectionChoice DEPENDS_ON MappingPurpose;

# ---------- VECTOR DATA ----------
VectorData :=
    SET_OF(GeographicFeature);

Point REPRESENTS DiscreteLocation;
Line REPRESENTS LinearFeature;
Polygon REPRESENTS AreaFeature;

VectorFeature HAS GeometryAndAttributes;

# ---------- RASTER DATA ----------
RasterData :=
    GridOfCells;

RasterCell HAS {
    Row,
    Column,
    Value,
    SpatialExtent
};

RasterResolution :=
    GroundAreaRepresentedByCell;

HigherSpatialResolution ->
    SmallerCellSize;

# ---------- SPATIAL LAYER ----------
SpatialLayer :=
    ThematicCollectionOfSpatialFeaturesOrRasterData;

Layer MAY_REPRESENT {
    Roads,
    Buildings,
    Rivers,
    LandUse,
    Elevation,
    Population
};

Map COMPOSED_OF OneOrMoreSpatialLayers;

# ---------- SPATIAL DATABASE ----------
SpatialDatabase :=
    DatabaseSupportingSpatialDataTypesAndOperations;

SpatialDatabase STORES {
    Geometry,
    Attributes,
    SpatialReference,
    SpatialIndex
};

SpatialQuery EXECUTED_AGAINST SpatialDatabase;

# ---------- SPATIAL INDEX ----------
SpatialIndex :=
    IndexOptimisedForSpatialSearch;

SpatialIndex MAY_ACCELERATE {
    BoundingBoxQuery,
    NearestNeighbourQuery,
    IntersectionQuery
};

# ---------- SPATIAL RELATIONSHIPS ----------
SpatialRelationship := {
    Intersects,
    Contains,
    Within,
    Touches,
    Overlaps,
    Disjoint,
    Crosses,
    Near
};

GeometryA MAY_HAVE SpatialRelationship WITH GeometryB;

# ---------- TOPOLOGY ----------
Topology :=
    SpatialRelationshipsPreservedIndependentOfExactCoordinates;

TopologicalRelationship MAY_INCLUDE {
    Connectivity,
    Adjacency,
    Containment
};

Topology MAY_SUPPORT DataValidationAndAnalysis;

# ---------- SPATIAL QUERY ----------
SpatialQuery :=
    QueryUsingLocationGeometryOrSpatialRelationship;

Example:
    SELECT Feature
    WHERE Feature WITHIN Region;

SpatialQuery MAY_COMBINE {
    AttributeCondition,
    SpatialCondition
};

# ---------- BUFFER ----------
Buffer(Feature, Distance) ->
    PolygonRepresentingAreaWithinDistance;

BufferAnalysis MAY_IDENTIFY {
    ProximityZone,
    ServiceArea,
    ImpactArea
};

# ---------- OVERLAY ----------
Overlay :=
    CombineSpatialLayers
    -> DeriveSpatialRelationships
    -> ProduceNewLayerOrAttributes;

OverlayOperation MAY_INCLUDE {
    Intersect,
    Union,
    Difference,
    Clip
};

# ---------- PROXIMITY ----------
Distance(A,B) :=
    SpatialDistanceBetween A AND B;

NearestNeighbour(QueryFeature) ->
    ClosestMatchingFeature;

ProximityAnalysis SUPPORTS LocationBasedDecisionMaking;

# ---------- NETWORK ANALYSIS ----------
SpatialNetwork :=
    Nodes
    + Edges
    + Connectivity
    + Cost;

Route :=
    PathThroughSpatialNetwork;

ShortestPath :=
    Path MINIMISING Cost;

NetworkAnalysis MAY_SUPPORT {
    Routing,
    ServiceArea,
    Accessibility,
    FlowAnalysis
};

# ---------- GEOCODING ----------
Geocoding :=
    AddressOrPlaceDescription
    -> GeographicCoordinate;

ReverseGeocoding :=
    GeographicCoordinate
    -> AddressOrPlaceDescription;

GeocodingResult HAS ConfidenceAndLocation;

# ---------- GPS / POSITION DATA ----------
PositionObservation :=
    MeasuredLocationAtTime;

Trajectory :=
    ordered_set(PositionObservation);

GIS MAY_STORE_AND_ANALYSE Trajectory;

# ---------- REMOTE SENSING ----------
RemoteSensingData MAY_PROVIDE RasterData;

SatelliteImage IS_A RasterDataset;

GIS MAY_COMBINE RemoteSensingData WITH VectorData;

# ---------- ELEVATION ----------
ElevationModel :=
    RasterOrSurfaceRepresentingHeight;

DigitalElevationModel MAY_SUPPORT {
    SlopeAnalysis,
    AspectAnalysis,
    WatershedAnalysis,
    TerrainVisualisation
};

# ---------- SPATIAL ANALYSIS ----------
SpatialAnalysis :=
    SpatialData
    -> SelectMethod
    -> ComputeRelationshipsOrMetrics
    -> ProduceSpatialResult;

SpatialAnalysis MAY_INCLUDE {
    BufferAnalysis,
    OverlayAnalysis,
    NetworkAnalysis,
    DensityAnalysis,
    TerrainAnalysis,
    SpatialStatistics
};

# ---------- MAP ----------
Map :=
    VisualRepresentationOfSpatialInformation;

MapElement MAY_INCLUDE {
    Layer,
    Symbol,
    Label,
    Legend,
    Scale,
    CoordinateGrid
};

CartographicStyle CONTROLS VisualRepresentation;

# ---------- THEMATIC MAPPING ----------
ThematicMap :=
    MapRepresentingAttributeOrStatisticalPattern;

ThematicMapping MAY_USE {
    GraduatedSymbol,
    Choropleth,
    DotDensity,
    HeatMap
};

# ---------- DATA QUALITY ----------
SpatialDataQuality := {
    PositionalAccuracy,
    AttributeAccuracy,
    Completeness,
    TemporalCurrency,
    LogicalConsistency
};

SpatialAnalysisQuality DEPENDS_ON InputDataQuality;

# ---------- TEMPORAL GIS ----------
SpatiotemporalData :=
    SpatialData
    + TimeDimension;

FeatureState MAY_CHANGE_OVER Time;

TemporalGIS MAY_ANALYSE SpatialChange;

# ---------- INTEROPERABILITY ----------
GISInteroperability MAY_REQUIRE {
    SharedCoordinateReference,
    DataFormatCompatibility,
    SemanticCompatibility,
    ServiceInterface
};

SpatialDataExchange MAY_USE StandardisedFormatsOrServices;

# ---------- SECURITY ----------
GISSecurity MAY_INCLUDE {
    Authentication,
    Authorisation,
    DataProtection,
    LocationPrivacy,
    Audit
};

SensitiveLocationData MAY_REQUIRE RestrictedAccess;

# ---------- SEMANTIC REASONING ----------
IF DataHasGeographicLocation
AND SystemStoresAnalysesOrVisualisesSpatialRelationships
THEN GISClassification := supported;

IF SpatialLayersUseDifferentCoordinateReferenceSystems
THEN CoordinateTransformation := required;

IF GeometryA WITHIN GeometryB
THEN GeometryB CONTAINS GeometryA;

IF SpatialIndexAvailable
THEN SpatialQueryPerformance MAY_IMPROVE;

IF RasterCellSizeDecreases
THEN SpatialResolution := increase;

IF InputSpatialAccuracyLow
THEN SpatialAnalysisConfidence := decrease;

IF RouteCostFunctionChanges
THEN ShortestPath MAY_CHANGE;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "geographic information system" ~= "GIS";
    "geographical information system" ~= "geographic information system";
    "spatial data" ~= "geospatial data" WHEN context == GIS;
    "coordinate reference system" ~= "CRS";
    "spatial reference system" ~= "coordinate reference system";
    "digital elevation model" ~= "DEM";
    "nearest neighbour" ~= "nearest neighbor";
    "spatial database" ~= "geospatial database";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_SPATIAL_ENTITIES(q) ->
    IDENTIFY_GEOMETRY(q) ->
    IDENTIFY_COORDINATE_REFERENCE(q) ->
    IDENTIFY_SPATIAL_LAYER(q) ->
    IDENTIFY_SPATIAL_RELATIONSHIPS(q) ->
    IDENTIFY_ANALYSIS_METHOD(q) ->
    IDENTIFY_MAP_OR_OUTPUT(q) ->
    MAP_TO_ONTOLOGY(q) ->
    APPLY_REASONING(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        spatial_data_quality,
        geometric_consistency,
        semantic_consistency,
        evidence_strength,
        contextual_relevance
    );

CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
    primary_entity: GeographicInformationSystem;
    ontology: GeographicInformationSystemOntology;
    parse_entities: true;
    parse_relationships: true;
    preserve_relationship_direction: true;
    resolve_semantic_equivalence: true;
    execute_reasoning_rules: true;
    apply_confidence_weighting: true;
    preserve_provenance: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
    new_spatial_feature:
        validate
        -> identify_geometry
        -> identify_crs
        -> identify_attributes
        -> assign_layer
        -> integrate;

    new_raster:
        validate
        -> identify_resolution
        -> identify_crs
        -> identify_extent
        -> integrate;

    new_spatial_relationship:
        validate_geometry
        -> calculate_relationship
        -> update_topology
        -> integrate;

    data_revision:
        update_geometry_or_attributes
        -> update_spatial_index
        -> recompute_relationships
        -> recompute_confidence
        -> regenerate_flow_hash;

    conflict:
        preserve_provenance
        -> compare_spatial_evidence
        -> adjust_confidence
        -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + SpatialEntity
    + GeometryType
    + SpatialDataModel
    + GISComponent
    + SpatialRelationship
    + SpatialAnalysis
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
GeographicInformationSystemOntology
    -> CaptureSpatialData
    -> AssignCoordinateReference
    -> StoreGeometryAndAttributes
    -> OrganiseSpatialLayers
    -> IndexSpatialData
    -> QuerySpatialRelationships
    -> PerformSpatialAnalysis
    -> IntegrateGeographicDatasets
    -> VisualiseMapLayers
    -> EvaluateSpatialDataQuality
    -> ProtectSensitiveLocationData
    -> ProduceGeographicInformation;

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ