FLOW ALGEBRA
Soil Habitat Ontology — Full Conceptual 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/soil-habitat-ontology.html
Status: Newly authored conceptual formalisation; not a verified extraction of source page and not an executable implementation.
Locale: en-GB
flow "SoilHabitatOntology" v1.0
# 01 — SCOPE
ontology.id: "biological.experimental.soil_habitat"
ontology.parent: "BiologicalEnvironment"
ontology.definition: "A soil habitat is a spatially and temporally bounded soil environment supporting organisms and their interactions with mineral, organic, aqueous and gaseous phases."
# 02 — TYPED ENTITIES
entity SoilHabitat { id: URI; location: GeoRegion; depth_interval_m: Range<Float>; observed_at: Timestamp; soil_type: String?; provenance: EvidenceRef }
entity SoilHorizon { id: URI; habitat_id: URI; designation: String; top_depth_m: Float; bottom_depth_m: Float }
entity SoilParticle { id: URI; fraction: Enum[sand,silt,clay]; diameter_mm: Float? }
entity SoilAggregate { id: URI; stability_index: Float? }
entity SoilPore { id: URI; pore_class: Enum[micro,meso,macro]; water_filled: Bool? }
entity SoilOrganicMatter { id: URI; carbon_mass_kg: Float?; decomposition_state: String? }
entity SoilWater { id: URI; volumetric_content: Float; solute_profile: Map<String,Float>? }
entity SoilAir { id: URI; oxygen_fraction: Float?; carbon_dioxide_fraction: Float? }
entity SoilOrganism { id: URI; taxon: URI?; functional_group: Enum[bacterium,archaeon,fungus,protist,nematode,arthropod,earthworm,plant_root,other]; abundance: Float? }
entity Rhizosphere { id: URI; plant_id: URI; soil_habitat_id: URI }
entity Microhabitat { id: URI; soil_habitat_id: URI; description: String }
entity NutrientPool { id: URI; element: String; mass_kg: Float; form: String }
entity SoilProcess { id: URI; kind: Enum[decomposition,mineralisation,immobilisation,nitrification,denitrification,respiration,bioturbation,leaching,root_uptake]; rate: Float?; rate_unit: String? }
entity Disturbance { id: URI; kind: Enum[erosion,compaction,contamination,drought,flooding,tillage,fire]; intensity: Float? }
entity EvidenceRef { id: URI; method: String; source: URI?; sampled_at: Timestamp? }
entity GeoRegion { id: URI; coordinate_reference: String; geometry_ref: URI? }
# 03 — RELATIONSHIP TYPES
relation HAS_HORIZON(SoilHabitat -> SoilHorizon)
relation CONTAINS_ORGANISM(SoilHabitat -> SoilOrganism)
relation HAS_MICROHABITAT(SoilHabitat -> Microhabitat)
relation HAS_PORE(SoilHorizon -> SoilPore)
relation CONTAINS_ORGANIC_MATTER(SoilHorizon -> SoilOrganicMatter)
relation CONTAINS_WATER(SoilHorizon -> SoilWater)
relation CONTAINS_AIR(SoilHorizon -> SoilAir)
relation SUPPORTS_ROOT(SoilHabitat -> SoilOrganism)
relation OCCURS_IN(SoilProcess -> SoilHabitat)
relation TRANSFORMS(SoilProcess -> NutrientPool)
relation AFFECTS(Disturbance -> SoilHabitat)
relation INTERACTS_WITH(SoilOrganism -> SoilOrganism)
relation EVIDENCED_BY(Entity -> EvidenceRef)
# 04 — OBSERVABLES AND UNITS
measurement soil_pH: Float [dimensionless]
measurement temperature: Float [degC]
measurement bulk_density: Float [kg/m3]
measurement porosity: Float [fraction]
measurement volumetric_water_content: Float [m3/m3]
measurement organic_carbon: Float [kg/kg]
measurement electrical_conductivity: Float [dS/m]
measurement dissolved_oxygen: Float [mg/L]
measurement microbial_biomass_carbon: Float [kg/kg]
measurement infiltration_rate: Float [mm/hour]
measurement soil_respiration_flux: Float [kg_C/m2/s]
# 05 — STRUCTURAL CONSTRAINTS
constraint HorizonDepth: forall h:SoilHorizon, 0 <= h.top_depth_m < h.bottom_depth_m
constraint FractionBounds: forall x in [porosity,volumetric_water_content,organic_carbon], 0 <= x <= 1
constraint NonnegativePools: forall n:NutrientPool, n.mass_kg >= 0
constraint HabitatMembership: forall h:SoilHorizon, exists s:SoilHabitat where HAS_HORIZON(s,h)
constraint MeasurementContext: each observation requires location, depth, time, method and units when applicable
constraint EvidenceSeparation: inferred relations must be marked as inferred, never as direct observations
# 06 — ECOLOGICAL INFERENCE RULES
rule R01_RootZone:
when SUPPORTS_ROOT(h,o) and o.functional_group == plant_root
infer h.supports_plant_root_activity = true
confidence: evidence_weighted
rule R02_DecompositionPotential:
when CONTAINS_ORGANIC_MATTER(h,om) and CONTAINS_ORGANISM(h,o)
and o.functional_group in [bacterium,fungus]
infer potential_process(h,decomposition)
note: potential is not proof of measured decomposition rate
rule R03_WaterloggingRisk:
when volumetric_water_content(h) approaches porosity(h)
infer elevated_waterlogging_risk(h)
note: depends on drainage, duration and local soil structure
rule R04_DisturbanceImpact:
when AFFECTS(d,h) and d.kind == compaction
infer possible_reduction(h,macropore_connectivity)
confidence: conditional
rule R05_Rhizosphere:
when root_present(p,h) and root_influenced_soil_zone(z,p,h)
infer instance_of(z,Rhizosphere)
# 07 — QUANTITATIVE MODELS (CONDITIONAL)
model WaterStorage:
storage_mm = volumetric_water_content * layer_thickness_mm
assumptions: representative layer-average moisture
model SoilPorosity:
porosity = 1 - bulk_density / particle_density
assumptions: densities measured consistently, homogeneous representative sample
model CarbonStock:
carbon_stock_kg_m2 = bulk_density_kg_m3 * thickness_m * organic_carbon_mass_fraction * (1 - coarse_fragment_volume_fraction)
assumptions: compatible dry-mass basis and representative sampling
model FirstOrderDecomposition:
dC_dt = -k * C
assumptions: constant k; simplified closed-pool approximation; not universally applicable
model NutrientMassBalance:
delta_pool = inputs - outputs + transformations_in - transformations_out
assumptions: defined system boundary, compatible mass units and observation interval
# 08 — INVARIANTS
invariant I01: habitat identity remains stable across observations unless explicit identity-resolution update
invariant I02: measured values retain original units, uncertainty and provenance
invariant I03: matter-balance claims require declared spatial and temporal boundaries
invariant I04: inferred causal effects are not equivalent to correlation
invariant I05: taxonomic and functional-group assignments may be revised with new evidence
invariant I06: zero organism detection does not imply organism absence
# 09 — CONFIDENCE
CONFIDENCE:
value: Float in [0,1]
dimensions: [source_reliability,measurement_quality,temporal_relevance,spatial_representativeness,model_validity]
aggregation: declared_calibrated_method
policy: preserve uncertainty; do not invent numeric confidence
# 10 — SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
exact: ["soil habitat", "soil-habitat"]
related_not_equivalent: ["soil ecosystem", "pedosphere", "rhizosphere", "soil microbiome", "soil horizon", "terrestrial habitat"]
context_rule: equivalence depends on definition, spatial scale and intended ontology
# 11 — FLOW HASH AND PROVENANCE
FLOW_HASH:
algorithm: SHA-256
input: canonical_serialisation(ontology_id,version,entity_types,relations,rules,constraints)
output: computed_at_publication
note: no fabricated hash value
PROVENANCE:
author_credit: "Mark Higgins — Sky (Recursive AI)"
project: "Kireth Semantic Library"
source_url: "https://kirethresearch.org/booksai-core/entity-graph/biological-entities/experimental-biological-entities/soil-habitat-ontology.html"
source_status: "Topic-aligned original draft; source page not verified"
# 12 — UPDATE MODEL
UPDATE_MODEL:
events: [new_sample,correct_measurement,add_organism,revise_taxonomy,record_disturbance,update_process_rate,revise_rule]
strategy: append_observations_preserve_history
validation: recheck_types_units_depth_bounds_and_provenance
conflicts: retain_disputed_values_with_source_metadata
versioning: semantic_versioning
recompute: derived_relations_and_flow_hash_after_accepted_change
# 13 — AI CONSUMPTION
AI_CONSUMPTION:
exports: [typed_entity_graph,relationship_triples,validated_observations,inference_traces,provenance_records]
requirements: [distinguish_observed_from_inferred,retain_uncertainty,include_units,expose_assumptions,report_missing_data]
prohibited: [fabricate_observations,claim_unmeasured_rates,assume_universal_causality]
# 14 — EXAMPLE (ILLUSTRATIVE, NOT EMPIRICAL)
example SoilHabitat_Example:
habitat_id: "urn:kireth:example:soil-habitat:001"
depth_interval_m: [0.0,0.3]
observed_at: "2026-10-26T00:00:00Z"
sample_values: {porosity: 0.48, volumetric_water_content: 0.30, bulk_density_kg_m3: 1350}
inference: "Water storage in 0.3 m layer = 90 mm, under layer-average assumption"
evidence_status: synthetic_demonstration
# 15 — CROSS-ONTOLOGY LINKS
links:
- Biological Environment Ontology
- Terrestrial Habitat Ontology
- Aquatic Habitat Ontology
- Ecosystem Ontology
- Microorganism Ontology
- Plant Root Ontology
- Decomposer Organism Ontology
- Nutrient Cycle Ontology
- Soil Science Ontology
# END FLOW
Download Code
Copy to Clipboard