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