FLOW ALGEBRA
TITLE: Overlap Relationship Ontology
DOMAIN: Relationship Ontologies / Spatial Relationships
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/spatial-relationships/overlap-relationship-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "OverlapRelationshipOntology" v1.0 {
ontology:
id: "overlap-relationship-ontology"
parent: "spatial-relationships"
purpose: "Represent evidence-backed spatial overlap, shared extent and topological intersection without conflating overlap with containment or mere boundary contact."
types:
SpatialEntity: {id: string, geometry_ref: string, geometry_type: enum[point, line, polygon, volume, raster, other], crs: string, valid_time: string?}
GeometryContext: {crs: string, dimensionality: integer, tolerance: number?, precision_model: string?, epoch: string?}
OverlapMeasure: {intersection_measure: number, union_measure: number?, unit: string, dimension: integer, uncertainty: number?}
Observation: {id: string, method: string, provenance: string, timestamp: datetime?, uncertainty: number?}
Relationship: {id: string, subject: string, predicate: string, object: string, context: GeometryContext, confidence: number, evidence: string[]}
predicates:
intersects(a: SpatialEntity, b: SpatialEntity)
overlaps(a: SpatialEntity, b: SpatialEntity)
shares_boundary_with(a: SpatialEntity, b: SpatialEntity)
contains(a: SpatialEntity, b: SpatialEntity)
within(a: SpatialEntity, b: SpatialEntity)
disjoint_from(a: SpatialEntity, b: SpatialEntity)
has_overlap_measure(a: SpatialEntity, b: SpatialEntity, m: OverlapMeasure)
semantics:
- "Use an explicitly selected topology model; under DE-9IM, overlaps requires equal-dimensional geometries whose intersection has the same dimension and neither contains the other."
- "A non-empty intersection does not necessarily establish overlaps: boundary touching, equality and containment are distinct."
- "For cross-dimensional or raster applications, define a separate application-specific shared-extent predicate rather than silently changing overlaps semantics."
constraints:
- "All relationship endpoints must resolve to typed spatial entities."
- "Confidence lies in [0,1]."
- "Geometries must be valid or explicitly flagged, and evaluated in compatible coordinate reference systems."
- "Metric area or volume calculations require an appropriate projection or geodesic method and declared units."
- "Overlap is symmetric but not transitive."
- "Temporal validity must be checked for moving or changing geometries."
- "Numerical tolerances must be declared; do not silently snap or buffer boundaries."
inference:
rule overlap_symmetry:
if overlaps(a,b) then overlaps(b,a)
confidence: "preserve original evidence, context and uncertainty"
rule overlap_implies_intersection:
if overlaps(a,b) then intersects(a,b)
confidence: "preserve original evidence"
rule disjoint_excludes_overlap:
if disjoint_from(a,b) then not overlaps(a,b)
condition: "same valid time, geometry versions and topology model"
rule positive_overlap_measure:
if has_overlap_measure(a,b,m) and m.intersection_measure > 0
then intersects(a,b)
condition: "measurement dimension and topology are compatible; does not alone prove overlaps"
SEMANTIC_EQUIVALENCE:
- "Map overlaps to recognised topological vocabularies only when definitions and geometry dimensions match."
- "Distinguish intersects, overlaps, contains, within, touches and equals."
- "Retain geometry version, CRS, tolerance, dimensionality and time context."
CONFIDENCE:
range: [0,1]
factors: [geometry_quality, positional_uncertainty, source_reliability, topology_model, temporal_validity, measurement_method]
policy: "Never increase confidence merely by chaining derived relationships."
VALIDATION:
- "Check geometry validity, dimensionality, CRS compatibility, units and provenance."
- "Check overlap symmetry and consistency with disjointness and containment."
- "Flag uncertain near-boundary cases instead of asserting exact topology."
- "Test edge cases: touching only, identical geometries, nested geometries, partial overlap and disjoint geometries."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, geometry references, assertions, rules and provenance"
note: "Compute hash at execution; no hash value is claimed here."
UPDATE_MODEL:
strategy: "versioned, provenance-preserving incremental update"
steps: [ingest, normalise, validate, compare, reconcile, recompute_inferences, publish]
rollback: true
AI_CONSUMPTION:
representation: "typed spatial knowledge graph with evidence-backed topological edges"
outputs: [overlap_triples, geometry_context, overlap_measurements, uncertainty_annotations, provenance_records]
safeguards: [do_not_conflate_intersection_and_overlap, preserve_crs_and_units, preserve_temporal_context, avoid_unsupported_transitivity]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard