Skip to main content

Freshwater Habitat Ontology

Environmental Biological Entities
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 26 October 2026
Audio Overview
FLOW ALGEBRA
Freshwater Habitat Ontology — Full Flow Algebra v1.0
Kireth Semantic Library
Authors: Mark Higgins — Sky (Recursive AI)
Source: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/experimental-biological-entities/freshwater-habitat-ontology.html
Status: Newly authored conceptual formalisation; not a verified extraction or executable implementation.
Locale: en-GB

flow "FreshwaterHabitatOntology" v1.0

# 1. DOMAIN AND IDENTITY
ontology.id: "kireth:biological:experimental:freshwater-habitat"
ontology.label: "Freshwater Habitat Ontology"
ontology.parent: "Aquatic Habitat Ontology"
ontology.scope: "Freshwater ecosystems, their physical and chemical environments, inhabitants and ecological processes"

# 2. TYPED ENTITIES
entity FreshwaterHabitat <: AquaticHabitat {
  id: URI
  name: String
  geometry: SpatialRegion?
  water_regime: WaterRegime
  salinity_psu: Real?
  observation_time: Timestamp?
}
entity River <: FreshwaterHabitat
entity Stream <: FreshwaterHabitat
entity Lake <: FreshwaterHabitat
entity Pond <: FreshwaterHabitat
entity Wetland <: FreshwaterHabitat
entity Marsh <: Wetland
entity Swamp <: Wetland
entity Bog <: Wetland
entity Fen <: Wetland
entity Spring <: FreshwaterHabitat
entity GroundwaterHabitat <: FreshwaterHabitat
entity RiparianZone <: Ecotone
entity Catchment <: HydrologicalRegion
entity WaterBody <: PhysicalEntity
entity AquaticOrganism <: Organism
entity AquaticPopulation <: Population
entity AquaticCommunity <: BiologicalCommunity
entity Substrate <: AbioticEntity
entity WaterQualityObservation <: Measurement
entity NutrientPool <: MaterialPool
entity DissolvedOxygen <: ChemicalQuantity
entity WaterTemperature <: PhysicalQuantity
entity FlowRate <: PhysicalQuantity
entity PollutionSource <: EnvironmentalPressure
entity HabitatFragmentation <: EnvironmentalPressure
entity RestorationAction <: Intervention

# 3. ENUMERATIONS AND RELATIONS
WaterRegime = {lotic, lentic, groundwater, seasonal, intermittent, mixed}
relation PART_OF(child: Entity, parent: Entity)
relation LOCATED_IN(organism: Organism, habitat: FreshwaterHabitat)
relation INHABITS(population: Population, habitat: FreshwaterHabitat)
relation CONNECTED_TO(source: FreshwaterHabitat, target: FreshwaterHabitat)
relation DRAINS_INTO(source: WaterBody, target: WaterBody)
relation FED_BY(habitat: FreshwaterHabitat, source: WaterBody)
relation SUPPORTS(habitat: FreshwaterHabitat, community: BiologicalCommunity)
relation HAS_SUBSTRATE(habitat: FreshwaterHabitat, substrate: Substrate)
relation HAS_OBSERVATION(habitat: FreshwaterHabitat, observation: Measurement)
relation EXCHANGES_NUTRIENTS_WITH(a: Entity, b: Entity)
relation AFFECTS(pressure: EnvironmentalPressure, habitat: FreshwaterHabitat)
relation RESTORES(action: RestorationAction, habitat: FreshwaterHabitat)
relation HAS_TROPHIC_LINK(consumer: Organism, resource: Organism)

# 4. CLASSIFICATION RULES
rule R1:
  IF h: FreshwaterHabitat AND h.water_regime == lotic
  THEN classify(h, FlowingFreshwaterHabitat)
rule R2:
  IF h: FreshwaterHabitat AND h.water_regime == lentic
  THEN classify(h, StandingFreshwaterHabitat)
rule R3:
  IF h: FreshwaterHabitat AND intermittent_flow(h)
  THEN annotate(h, "temporally variable connectivity")
rule R4:
  IF CONNECTED_TO(a,b) AND migration_route(a,b)
  THEN infer(potential_dispersal_corridor(a,b))
rule R5:
  IF low_dissolved_oxygen(h,t) AND high_temperature(h,t)
  THEN flag(h, "possible oxygen stress", evidence_required=true)
rule R6:
  IF elevated_nutrients(h,t) AND algal_bloom_observed(h,t)
  THEN flag(h, "possible eutrophication", evidence_required=true)

# 5. QUANTITATIVE RELATIONS
# All quantities require units, sampling method, location and timestamp.
model water_balance:
  delta_storage = precipitation + inflow + groundwater_in - evaporation - outflow - groundwater_out - abstraction
  units: "volume per time, with consistent measurement interval"
model residence_time:
  tau = water_volume / throughflow
  preconditions: [throughflow > 0, approximate_steady_state]
model dissolved_oxygen_saturation:
  DO_saturation = f(water_temperature, pressure, salinity)
  note: "Use a validated empirical formulation; no universal constant assumed"
model nutrient_mass_balance:
  delta_nutrient_stock = inputs - exports + internal_generation - internal_consumption
model population_growth:
  dN_dt = births - deaths + immigration - emigration

# 6. ECOLOGICAL PROCESSES
process HydrologicalExchange: [runoff, infiltration, recharge, discharge, evaporation]
process NutrientCycling: [mineralisation, uptake, sedimentation, release]
process PrimaryProduction: [photosynthesis, chemosynthesis_where_applicable]
process Decomposition: [microbial_breakdown, detrital_processing]
process TrophicTransfer: [consumption, assimilation, respiration, excretion]
process SeasonalDynamics: [flood_pulse, stratification, mixing, drying, rewetting]
process Connectivity: [longitudinal, lateral, vertical, temporal]

# 7. INVARIANTS AND CONSTRAINTS
invariant I1: unique(entity.id)
invariant I2: habitat.salinity_psu >= 0 WHEN measured
invariant I3: measured_concentration >= 0 WHEN physically_applicable
invariant I4: observations MUST carry provenance and temporal context
invariant I5: hydrological mass balance MUST use compatible units
invariant I6: organism presence DOES_NOT_IMPLY permanent residency
invariant I7: ecological association DOES_NOT_IMPLY causation
invariant I8: waterbody classifications MAY overlap or change seasonally
invariant I9: threshold values MUST be context-specific, not universal
invariant I10: missing_data != evidence_of_absence

# 8. CONFIDENCE
CONFIDENCE {
  value: Real in [0,1]
  basis: {direct_measurement, replicated_study, model_inference, expert_assessment}
  sample_size: Integer?
  uncertainty: Real?
  method: String
  provenance: URI?
  timestamp: Timestamp
}
combine_evidence:
  method: "calibrated, dependency-aware aggregation"
  constraint: "Never treat correlated observations as independent by default"

# 9. SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE {
  "running water habitat" ~ "lotic habitat" : contextual
  "standing water habitat" ~ "lentic habitat" : contextual
  "freshwater wetland" ~ "wetland" : non_equivalent_without_salinity_context
  "river" ~ "stream" : related_not_identical
  "habitat" ~ "ecosystem" : related_not_identical
}

# 10. FLOW HASH AND PROVENANCE
FLOW_HASH {
  algorithm: "SHA-256"
  input: canonicalise(ontology_id, version, typed_entities, relations, rules, invariants)
  purpose: "detect structural changes and support reproducible comparisons"
  note: "Hash is computed by an external implementation, not claimed here"
}
PROVENANCE {
  source_url: ontology.source
  authors: ["Mark Higgins", "Sky (Recursive AI)"]
  created: "2026-10-26"
  status: "conceptual specification"
}

# 11. UPDATE MODEL
UPDATE_MODEL {
  versioning: semantic
  events: [new_observation, revised_classification, hydrological_change, species_record, restoration_event]
  validate: [schema, units, provenance, temporal_consistency, referential_integrity]
  on_change: [recompute_derived_relations, recheck_invariants, regenerate_flow_hash, record_revision]
  preserve: [source_observations, previous_versions, uncertainty]
}

# 12. AI CONSUMPTION
AI_CONSUMPTION {
  outputs: [typed_graph, evidence_links, habitat_classification, ecological_summary, uncertainty_report]
  requirements: [source_traceability, explicit_assumptions, unit_consistency, confidence_calibration]
  guardrails: [no_fabricated_measurements, no_unsupported_causal_claims, no_universal_thresholds]
  query_examples: [
    "Which freshwater habitats are hydrologically connected?",
    "Which populations inhabit this lake during the sampling period?",
    "What observations support a possible eutrophication assessment?",
    "How did a restoration action affect measured water quality?"
  ]
}

# 13. CROSS-ONTOLOGY LINKS
LINK_TO "Biological Environment Ontology"
LINK_TO "Aquatic Habitat Ontology"
LINK_TO "Marine Habitat Ontology"
LINK_TO "Terrestrial Habitat Ontology"
LINK_TO "Ecosystem Ontology"
LINK_TO "Biological Community Ontology"
LINK_TO "Population Ontology"
LINK_TO "Trophic Level Ontology"
LINK_TO "Indicator Species Ontology"

end flow
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ