FLOW ALGEBRA
Ontology: Projection Ontology
Domain: Metadata Ontologies > Spatial Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/spatial-metadata/projection-ontology.html
Authors: Mark Anthony Higgins — Sky (Recursive AI)
flow "ProjectionOntology" v1.0
# ---------- DOMAIN ----------
domain:
class: MetadataOntology
category: SpatialMetadata
subject: Projection
purpose:
- represent transformations between geographic and planar coordinates
- describe map projection methods and parameters
- preserve spatial reference semantics
- support coordinate transformation and interoperability
- enable machine reasoning about projection properties and distortion
# ---------- CORE ENTITY ----------
entity Projection:
type: SpatialTransformationModel
maps:
- GeographicCoordinateSpace
- ProjectedCoordinateSpace
may_include:
- projection_method
- projection_parameters
- source_coordinate_system
- target_coordinate_system
- datum
- ellipsoid
- central_meridian
- latitude_of_origin
- standard_parallel
- scale_factor
- false_easting
- false_northing
- unit
- identifier
- area_of_use
- distortion_properties
- provenance
entity ProjectionMethod:
type: TransformationMethod
examples:
- Mercator
- TransverseMercator
- LambertConformalConic
- AlbersEqualArea
- AzimuthalEquidistant
- Stereographic
- Orthographic
entity ProjectionParameter:
type: TransformationParameter
has:
- name
- value
- unit
entity GeographicCoordinateSpace:
type: CoordinateSpace
typically_uses:
- latitude
- longitude
entity ProjectedCoordinateSpace:
type: CoordinateSpace
typically_uses:
- easting
- northing
entity AreaOfUse:
type: GeographicExtent
describes: RegionWhereProjectionIsIntendedForUse
entity DistortionProperty:
type: ProjectionCharacteristic
may_describe:
- area_distortion
- angular_distortion
- distance_distortion
- direction_distortion
- shape_distortion
# ---------- PROJECTION FAMILIES ----------
projection_families:
- CylindricalProjection
- ConicProjection
- AzimuthalProjection
- PseudocylindricalProjection
- CompromiseProjection
projection_properties:
- Conformal
- EqualArea
- Equidistant
- TrueDirection
- Compromise
# ---------- RELATIONSHIPS ----------
relationships:
Projection -> USES_METHOD -> ProjectionMethod
Projection -> HAS_PARAMETER -> ProjectionParameter
Projection -> MAPS_FROM -> GeographicCoordinateSpace
Projection -> MAPS_TO -> ProjectedCoordinateSpace
Projection -> MAY_USE -> Datum
Projection -> MAY_USE -> Ellipsoid
Projection -> HAS_AREA_OF_USE -> AreaOfUse
Projection -> MAY_HAVE_PROPERTY -> ProjectionProperty
Projection -> INTRODUCES -> DistortionProperty
ProjectedCoordinateSystem -> USES -> Projection
Projection -> MAY_HAVE_IDENTIFIER -> Identifier
Projection -> MAY_REFERENCE -> Provenance
# ---------- METHOD RULES ----------
rule projection_method:
Projection MUST identify a transformation method
for deterministic coordinate conversion
rule required_parameters:
each ProjectionMethod MUST define its required ProjectionParameters
rule parameter_units:
ProjectionParameter values MUST use compatible units
according_to method semantics
rule parameter_completeness:
IF required projection parameter is missing
THEN projection transformation MUST NOT be treated as fully defined
# ---------- SOURCE / TARGET ----------
rule source_reference:
Projection SHOULD identify source geographic reference context
rule target_reference:
Projection SHOULD identify target projected coordinate context
rule datum_dependency:
IF projection coordinates depend on Datum or Ellipsoid
THEN these MUST be explicit or unambiguously defined by referenced CRS
# ---------- TRANSFORMATION ----------
operation project(geographic_coordinate):
require:
- valid geographic_coordinate
- source_coordinate_system
- projection_method
- required_projection_parameters
- target_coordinate_system
process:
1. validate source coordinate
2. resolve datum and ellipsoid
3. resolve projection parameters
4. apply forward projection
5. produce projected coordinate
6. validate target coordinate
preserve:
- source_coordinate
- source_reference
- projection_definition
- provenance
output:
- projected_coordinate
- target_coordinate_system
- confidence
operation inverse_project(projected_coordinate):
require:
- valid projected_coordinate
- projection_definition
- source_and_target_reference_context
process:
- apply inverse projection
output:
- geographic_coordinate
- source_coordinate_system
- confidence
# ---------- DISTORTION ----------
rule unavoidable_distortion:
planar map projections of curved Earth surfaces generally introduce distortion
rule conformal:
IF ProjectionProperty = Conformal
THEN local angles and shapes are preferentially preserved
BUT area MAY be distorted
rule equal_area:
IF ProjectionProperty = EqualArea
THEN represented area relationships are preserved
BUT shape MAY be distorted
rule equidistant:
IF ProjectionProperty = Equidistant
THEN specified distance relationships are preserved
only according_to projection definition
rule distortion_context:
distortion varies spatially
AND SHOULD be interpreted relative_to AreaOfUse
# ---------- AREA OF USE ----------
rule area_of_use:
Projection SHOULD declare intended AreaOfUse where applicable
rule outside_area:
IF coordinate lies outside intended AreaOfUse
THEN transformation MAY remain mathematically possible
BUT semantic suitability confidence SHOULD decrease
# ---------- FALSE ORIGINS ----------
rule false_easting:
false_easting shifts projected x/easting coordinate
AND MUST be applied according_to projection definition
rule false_northing:
false_northing shifts projected y/northing coordinate
AND MUST be applied according_to projection definition
# ---------- SCALE ----------
rule scale_factor:
IF scale_factor exists
THEN preserve value and application point/line semantics
rule map_scale:
projection scale factor != general map display scale
# ---------- VALIDATION ----------
validation:
require:
- projection_method
- interpretable_source_reference
- interpretable_target_reference
- required_parameters
validate_if_present:
- central_meridian
- latitude_of_origin
- standard_parallel
- scale_factor
- false_easting
- false_northing
- datum
- ellipsoid
- area_of_use
- identifier
reject:
- unknown_projection_method
- missing_required_parameter
- incompatible_parameter_unit
- unresolved_datum_dependency
- invalid_source_target_reference
- projection_definition_with_contradictory_parameters
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
"map projection" ~= "projection" WHEN context = geographic_to_planar transformation
"projection method" ~= "map projection method"
"projected coordinates" ~= "planar coordinates" WHEN generated by projection
"central meridian" ~= "longitude of natural origin" WHEN projection specification defines equivalence
"false origin" ~= "coordinate offset origin" WHEN semantics match
PRESERVE distinctions:
projection != coordinate_system
projection != coordinate_reference_system
projection != datum
projection != transformation_chain
projection_scale_factor != map_display_scale
equal_area != conformal
forward_projection != inverse_projection
# ---------- CONFIDENCE ----------
CONFIDENCE:
explicit_projection_identifier:
score: 1.00
complete_projection_definition:
score: 1.00
validated_forward_transformation:
score: 0.95
validated_inverse_transformation:
score: 0.95
inferred_projection_from_parameters:
score: 0.85
use_outside_area_of_use:
score: <= 0.75
ambiguous_projection_definition:
score: <= 0.60
action: preserve uncertainty
# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
on_projection_parameter_change:
- preserve previous definition
- validate new parameter
- invalidate stale transformed coordinates where necessary
- recompute dependent coordinates
- update provenance
on_datum_change:
- preserve original datum
- reassess transformation chain
- recompute affected projected coordinates
- update provenance
on_method_change:
- preserve previous projection method
- validate required parameters
- recompute projected representation
- reassess distortion properties
- update provenance
on_area_of_use_change:
- update geographic applicability
- reassess suitability confidence
- preserve provenance
# ---------- FLOW HASH ----------
FLOW_HASH:
inputs:
- ontology
- projection_entities
- projection_methods
- projection_parameters
- relationships
- transformation_rules
- distortion_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
- map projection model
- coordinate transformation model
- distortion reasoning structure
operations:
- identify projection method
- resolve projection parameters
- validate projection definition
- perform forward projection reasoning
- perform inverse projection reasoning
- evaluate area of use
- reason about distortion
- distinguish projection from datum and CRS
- preserve provenance
- expose uncertainty
constraints:
- do_not_invent_projection_parameters
- do_not_assume_datum_without evidence
- do_not_treat_projection_as distortion_free
- do_not_equate_projection_with CRS
- do_not_ignore_area_of_use
- preserve source coordinates and projection definition
# ---------- QUERY MODEL ----------
query:
input:
- projection_identifier
- projection_method
- coordinate
- source_coordinate_system
- target_coordinate_system
- area_of_use
- projection_property
resolve:
1. identify Projection
2. resolve ProjectionMethod
3. resolve required ProjectionParameters
4. resolve source reference context
5. resolve target reference context
6. validate Datum and Ellipsoid
7. evaluate AreaOfUse
8. determine forward or inverse transformation
9. return confidence and provenance
output:
- projection
- method
- parameters
- source_reference
- target_reference
- area_of_use
- distortion_properties
- confidence
- provenance
# ---------- INFERENCE ----------
inference:
IF authoritative projection identifier exists
THEN resolve Projection
WITH confidence = 1.00
IF projection method and complete unique parameter set exist
THEN infer Projection definition
WITH confidence >= 0.90
IF ProjectedCoordinateSystem references Projection
THEN associate projection semantics with coordinates
IF projection is conformal
THEN infer local angular preservation
BUT do_not infer area preservation
IF projection is equal_area
THEN infer area preservation
BUT do_not infer conformality
IF projection definition is incomplete
THEN do_not execute deterministic transformation
# ---------- OUTPUT CONTRACT ----------
output:
ontology_entity: Projection
projection_definition: machine_interpretable
method: explicit
parameters: explicit
source_target_context: preserved
distortion_semantics: explicit
transformations: traceable
provenance: preserved
uncertainty: explicit
semantic_retrieval: enabled
end flow
Download Code
Copy to Clipboard