Skip to main content

Hydrology Domain Ontology

Earth & Environmental Domains
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 10 October 2026
Audio Overview
FLOW ALGEBRA
TITLE: Hydrology Domain Ontology
DOMAIN: Domain Ontologies / Earth & Environmental Domains / Hydrology
SOURCE: https://kirethresearch.org/booksai-core/ontologies/domain-ontologies/earth-environmental-domains/hydrology-domain-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.

flow "HydrologyDomainOntology" v1.0 {
  ontology:
    id: "hydrology-domain-ontology"
    parent: "earth-environmental-domains"
    purpose: "Represent water stores, fluxes, catchments, observations and hydrological processes with evidence-backed relationships."

  types:
    WaterBody: {id: string, kind: enum[river, lake, reservoir, wetland, ocean, other], name: string?}
    Catchment: {id: string, boundary_ref: string?, area: Quantity?}
    Aquifer: {id: string, geological_unit: string?, confinement: string?}
    HydrologicalProcess: {id: string, kind: enum[precipitation, infiltration, runoff, evaporation, transpiration, recharge, discharge, percolation, other]}
    Observation: {id: string, observed_at: datetime, variable: string, measurement: Quantity, location_ref: string?, method: string?, provenance: string}
    Quantity: {value: number, unit: string, uncertainty: number?, reference_frame: string?}
    Model: {id: string, kind: string, assumptions: string[], calibration_ref: string?, version: string}
    Relationship: {id: string, subject: string, predicate: string, object: string, context: string?, confidence: number, evidence: string[]}

  predicates:
    drains_to(source: WaterBody, target: WaterBody)
    within_catchment(entity: string, catchment: Catchment)
    recharges(process: HydrologicalProcess, aquifer: Aquifer)
    discharges_to(aquifer: Aquifer, body: WaterBody)
    contributes_to(process: HydrologicalProcess, target: string)
    measured_by(entity: string, observation: Observation)
    simulated_by(entity: string, model: Model)
    hydrologically_connected(a: string, b: string)

  constraints:
    - "All relationship endpoints must resolve to declared entities or typed external references."
    - "Confidence values must be within [0,1]."
    - "Measured quantities require compatible units, location, observation time and method when applicable."
    - "Catchment boundaries and drainage connections must be associated with spatial and temporal context."
    - "Water balance must account for inflows, outflows and storage changes with compatible units and periods."
    - "Do not infer causation from correlation or temporal order alone."
    - "Hydrological connectivity does not necessarily imply unrestricted flow or equal flow in both directions."
    - "Distinguish observed measurements from model predictions and inferred values."

  inference:
    rule catchment_context:
      if within_catchment(x,c) and valid(c)
      then associated_with_catchment(x,c)
      confidence: "preserve spatial evidence and boundary version"
    rule observed_hydrology:
      if measured_by(x,o) and valid(o)
      then evidence_for(x,o)
      confidence: "dependent on observation quality and uncertainty"
    rule drainage_path:
      if drains_to(a,b) and drains_to(b,c) and same_network_context(a,b,c)
      then downstream_reachable(a,c)
      confidence: "propagate source evidence; verify diversions and flow direction"

  SEMANTIC_EQUIVALENCE:
    - "Normalise hydrological terms to versioned controlled vocabularies."
    - "Distinguish a water body's identity from its names, geometry and observations."
    - "Retain unit, spatial scale, time window and model context during mappings."

  CONFIDENCE:
    range: [0,1]
    factors: [measurement_uncertainty, source_reliability, spatial_resolution, temporal_coverage, model_assumptions, independent_replication]
    policy: "Do not manufacture certainty or increase confidence merely through inference chaining."

  VALIDATION:
    - "Check types, units, timestamps, coordinates, reference systems and provenance."
    - "Check physical plausibility and water-balance consistency within documented tolerances."
    - "Flag missing measurements, inconsistent boundaries and conflicting observations."
    - "Keep alternative interpretations where evidence is inconclusive."

  FLOW_HASH:
    algorithm: "SHA-256"
    input: "canonicalised ontology version, typed assertions, inference rules and provenance"
    note: "Compute at execution; no hash value is asserted here."

  UPDATE_MODEL:
    strategy: "versioned, provenance-preserving incremental update"
    steps: [ingest, normalise, validate, compare, reconcile, recompute_inferences, publish]
    rollback: true

  AI_CONSUMPTION:
    representation: "typed hydrological knowledge graph with evidence-backed edges"
    outputs: [entity_links, relation_triples, observations, model_predictions, uncertainty_annotations, inferred_edges, provenance_records]
    safeguards: [preserve_units_and_times, no_unsupported_causal_claims, distinguish_observation_from_prediction, retain_spatial_context]
}

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