Skip to main content

Carbon Reservoir Entity 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 — CARBON RESERVOIR ENTITY ONTOLOGY v1.0
Kireth Semantic Library | Conceptual formalisation
Authors: Mark Higgins — Sky (Recursive AI)
Source topic: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/experimental-biological-entities/carbon-reservoir-entity-ontology.html
Status: Proposed ontology model; not a verified transcription of the webpage and not an executable interpreter implementation.

flow "CarbonReservoirEntityOntology" v1.0

# 01 — DOMAIN AND TYPE SYSTEM
type CarbonReservoirEntity <: EcologicalEntity
type ReservoirID = String
type CarbonMass = Quantity<kg_C>
type CarbonFlux = Quantity<kg_C_per_year>
type Time = Timestamp
type Fraction = Real where 0 <= value <= 1
type Confidence = Real where 0 <= value <= 1

enum ReservoirClass {
  ATMOSPHERIC, TERRESTRIAL_BIOMASS, SOIL_ORGANIC,
  LITTER_DETRITUS, FRESHWATER, OCEAN_SURFACE,
  OCEAN_DEEP, SEDIMENT, GEOLOGICAL, ANTHROPOGENIC_STORAGE
}
enum CarbonForm { CO2, CH4, DISSOLVED_INORGANIC, DISSOLVED_ORGANIC,
                  PARTICULATE_ORGANIC, BIOMASS_C, SOIL_ORGANIC_C,
                  CARBONATE_C, FOSSIL_C, OTHER }
enum EvidenceType { OBSERVATION, MEASUREMENT, MODEL, LITERATURE, INFERENCE }

entity CarbonReservoir {
  id: ReservoirID
  class: ReservoirClass
  name: String
  location: GeoRegion?
  spatial_boundary: Geometry?
  time: Time
  stock: CarbonMass
  forms: Set<CarbonForm>
  measurement_method: String?
  uncertainty: CarbonMass?
  confidence: Confidence
  provenance: Set<EvidenceRecord>
}

entity CarbonTransfer {
  id: String
  source: ReservoirID
  destination: ReservoirID
  mechanism: TransferMechanism
  rate: CarbonFlux
  time_interval: Interval<Time>
  uncertainty: CarbonFlux?
  confidence: Confidence
  provenance: Set<EvidenceRecord>
}

enum TransferMechanism {
  PHOTOSYNTHESIS, RESPIRATION, DECOMPOSITION, COMBUSTION,
  AIR_SEA_EXCHANGE, DISSOLUTION, OUTGASSING, SEDIMENTATION,
  BURIAL, WEATHERING, EROSION, RUNOFF, FOOD_WEB_TRANSFER,
  METHANOGENESIS, METHANE_OXIDATION, EXTRACTION, STORAGE,
  OTHER
}

# 02 — TYPED RELATIONSHIPS
relation PART_OF(CarbonReservoir, Ecosystem)
relation LOCATED_IN(CarbonReservoir, GeoRegion)
relation CONTAINS_FORM(CarbonReservoir, CarbonForm)
relation TRANSFERS_CARBON_TO(CarbonReservoir, CarbonReservoir, CarbonTransfer)
relation EXCHANGES_WITH(CarbonReservoir, CarbonReservoir)
relation MEASURED_BY(CarbonReservoir, MeasurementInstrument)
relation AFFECTED_BY(CarbonReservoir, EnvironmentalDriver)
relation DERIVED_FROM(EvidenceRecord, DataSource)
relation SEMANTIC_EQUIVALENCE(Entity, Entity, Confidence)

# 03 — CONSERVATION AND STOCK-FLOW MODEL
# All transfer rates use carbon-mass units, not total CO2 mass.
# For reservoir i over a defined interval:
# dC_i/dt = sum_j F(j -> i) - sum_k F(i -> k) + B_i
# B_i denotes explicitly modelled exchanges across the chosen system boundary.
# If all internal transfers are paired, they cancel in the aggregate.
# Delta C_system = integral(sum external inputs - sum external outputs) dt.
# Numerical integration must specify timestep, integration scheme and units.

function NET_CARBON_FLUX(r: CarbonReservoir, transfers: Set<CarbonTransfer>): CarbonFlux {
  require every transfer has valid endpoint and compatible time interval
  return SUM(rate(t) for t where t.destination == r.id)
       - SUM(rate(t) for t where t.source == r.id)
}

function STOCK_UPDATE(r, dt, transfers, boundary_inputs, boundary_outputs): CarbonMass {
  require dt > 0 and rates expressed in compatible units
  candidate = r.stock + dt * (
    NET_CARBON_FLUX(r, transfers) + boundary_inputs - boundary_outputs)
  require candidate >= 0 else flag PHYSICAL_CONSTRAINT_VIOLATION
  return candidate
}

# 04 — SCIENTIFIC VALIDATION INVARIANTS
invariant UNIQUE_RESERVOIR_ID: IDs are unique within a dataset
invariant NONNEGATIVE_STOCK: stock >= 0
invariant NONNEGATIVE_RATE: every directed transfer rate >= 0
invariant DIMENSIONAL_CONSISTENCY: stocks use mass_C; rates use mass_C/time
invariant EXPLICIT_BOUNDARIES: every model declares system and temporal boundaries
invariant NO_UNACCOUNTED_DOUBLE_COUNTING: nested reservoir stocks are not summed with parents
invariant INTERNAL_FLOW_CANCELLATION: each internal transfer is debit to source and credit to destination
invariant TIME_ALIGNMENT: compared stocks and fluxes refer to compatible intervals
invariant UNCERTAINTY_RECORDED: unknown uncertainty is marked unknown, not zero
invariant CARBON_SPECIES_CONVERSION: CO2 mass to C mass uses molecular mass ratio 12/44 when applicable

# 05 — ECOLOGICAL INFERENCE RULES
rule PHOTOSYNTHETIC_UPTAKE:
  when atmosphere -> biomass via PHOTOSYNTHESIS
  infer atmospheric carbon outflow and biomass carbon inflow

rule RESPIRATORY_RETURN:
  when biomass -> atmosphere via RESPIRATION
  infer biomass carbon outflow and atmospheric carbon inflow

rule DECOMPOSITION_PATHWAY:
  when detritus or soil organic carbon decomposes
  infer possible CO2/CH4 or dissolved carbon pathways only if supported by environment and evidence

rule OCEAN_EXCHANGE:
  when AIR_SEA_EXCHANGE occurs
  infer transfer direction from observed/modelled net flux, never from reservoir class alone

rule DISTURBANCE_RELEASE:
  when fire or land-use change is documented
  infer candidate carbon transfer; magnitude requires measured or modelled evidence

rule CARBON_SINK_SOURCE:
  if net stock change > 0 under declared boundaries, classify as net sink over interval
  if net stock change < 0 under declared boundaries, classify as net source over interval
  else classify balanced within stated uncertainty

# 06 — UNCERTAINTY AND CONFIDENCE
CONFIDENCE:
  range: [0,1]
  semantics: evidence-support score, not an automatic frequentist probability
  combine: method_declared_by_model
  require: provenance, method, timestamp, uncertainty where available
  prohibit: unsupported precision or unconditional certainty

# 07 — SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
  compare: definition, carbon forms, units, spatial boundary, temporal boundary,
           measurement method, stock-vs-flux distinction
  outcome: EXACT | CONTEXTUAL | RELATED | NOT_EQUIVALENT
  require: confidence and explanation
  caution: carbon reservoir != carbon flux; carbon stock != sequestration rate

# 08 — FLOW HASH AND PROVENANCE
FLOW_HASH:
  algorithm: SHA-256
  input: canonical_utf8(
    ontology_name, version, entity_id, entity_class, carbon_forms,
    spatial_boundary, time_interval, unit_system, relationship_set,
    evidence_identifiers, transformation_version)
  note: hash verifies canonical content identity, not scientific truth

# 09 — UPDATE MODEL
UPDATE_MODEL:
  mode: append_observation_and_recompute
  actions:
    - validate incoming evidence and units
    - retain original observations and provenance
    - align spatial and temporal scopes
    - recompute affected stocks, fluxes, uncertainty and derived labels
    - re-evaluate inference rules and invariants
    - regenerate FLOW_HASH
    - preserve audit trail and prior version
  conflict_policy: flag incompatible observations; do not silently overwrite

# 10 — AI CONSUMPTION CONTRACT
AI_CONSUMPTION:
  entity_type: CarbonReservoirEntity
  required: id, class, stock, unit, time, provenance, confidence
  optional: location, boundary, carbon_forms, uncertainty, transfers
  output: typed_graph + validated_claims + provenance + warnings
  guardrails:
    - distinguish empirical measurements from model estimates
    - state boundaries and timeframes for all carbon accounting
    - do not infer causal effects from correlation alone
    - do not present hypothetical flux rates as observed data
    - flag incomplete budgets and unknown uncertainties

# 11 — EXAMPLE (SCHEMATIC; NO EMPIRICAL VALUES)
example:
  reservoir A: ATMOSPHERIC
  reservoir B: TERRESTRIAL_BIOMASS
  transfer T: A -> B via PHOTOSYNTHESIS at symbolic rate P
  transfer R: B -> A via RESPIRATION at symbolic rate Q
  net_flux(B) = P - Q
  net_flux(A) = Q - P
  aggregate_net_flux(A,B) = 0 if there are no other exchanges
  interpretation: internal transfers conserve carbon; this example does not estimate real-world rates

# 12 — CROSS-ONTOLOGY LINKS
links:
  - Ecological Resource Ontology
  - Organic Matter Ontology
  - Detritus Ontology
  - Nutrient Pool Ontology
  - Soil Habitat Ontology
  - Forest Ecosystem Ontology
  - Marine Habitat Ontology
  - Wetland Ecosystem Ontology
  - Biological Environment Ontology

end flow

Research note: This document is a human-readable Flow Algebra-style specification.
Execution requires a parser, type checker, inference engine and data bindings.
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ