Skip to main content

Soil 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
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
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ