Skip to main content

Biological Environment 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
Biological Environment Ontology — Full Flow Algebra v1.0
Kireth Semantic Library
Authors: Mark Higgins — Sky (Recursive AI)
Source topic: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/experimental-biological-entities/biological-environment-ontology.html
Status: Proposed formalisation; not a verified extraction of source-page code.
Locale: en-GB

flow "BiologicalEnvironmentOntology" v1.0

# 01 — DOMAIN
DOMAIN:
  name: BiologicalEnvironment
  parent: BiologicalEntities
  scope: Biotic and abiotic conditions surrounding organisms, populations and communities.
  principle: An environment is context-dependent, spatially bounded and temporally variable.

# 02 — TYPED ENTITIES
ENTITY BiologicalEnvironment { id: URI; label: String; spatial_extent: Geometry?; temporal_extent: Interval?; provenance: Evidence[] }
ENTITY BioticFactor { id: URI; category: String; abundance: Number?; unit: String? }
ENTITY AbioticFactor { id: URI; category: String; measured_value: Number?; unit: String? }
ENTITY Organism { id: URI; taxon: URI?; life_stage: String? }
ENTITY Population { id: URI; taxon: URI; abundance: Number? }
ENTITY Community { id: URI; populations: URI[] }
ENTITY Habitat { id: URI; environment: URI; suitability: Number? }
ENTITY Ecosystem { id: URI; spatial_extent: Geometry? }
ENTITY Resource { id: URI; category: String; availability: Number? }
ENTITY Disturbance { id: URI; type: String; severity: Number?; time: Interval? }
ENTITY Observation { id: URI; subject: URI; property: String; value: Number|String; unit: String?; timestamp: DateTime; method: String? }
ENTITY EnvironmentalGradient { id: URI; property: String; spatial_axis: String?; temporal_axis: String? }
ENTITY EcologicalResponse { id: URI; organism: URI?; response_type: String; magnitude: Number? }
ENTITY Evidence { id: URI; source: URI?; method: String?; timestamp: DateTime? }

# 03 — RELATIONSHIPS
RELATION CONTAINS_ENVIRONMENTAL_FACTOR(BiologicalEnvironment, BioticFactor|AbioticFactor)
RELATION SURROUNDS(BiologicalEnvironment, Organism|Population|Community)
RELATION PROVIDES_RESOURCE(BiologicalEnvironment, Resource)
RELATION OCCURS_WITHIN(Habitat|Ecosystem, BiologicalEnvironment)
RELATION INFLUENCES(BioticFactor|AbioticFactor, Organism|Population|Community)
RELATION INTERACTS_WITH(Organism, Organism)
RELATION MODIFIES(Disturbance, BiologicalEnvironment)
RELATION MEASURES(Observation, BioticFactor|AbioticFactor|Resource)
RELATION VARIES_ALONG(AbioticFactor, EnvironmentalGradient)
RELATION RESPONDS_TO(EcologicalResponse, BioticFactor|AbioticFactor|Disturbance)
RELATION SUPPORTED_BY(Assertion, Evidence)

# 04 — CLASSIFICATION
CLASSIFY environmental_factor:
  biotic: [competitor, predator, prey, parasite, host, symbiont, decomposer, vegetation, microbial_community]
  abiotic: [temperature, light, water, salinity, pH, oxygen, nutrient_concentration, soil, substrate, pressure, humidity]
  anthropogenic: [land_use, pollution, habitat_fragmentation, artificial_light, noise, resource_extraction]
NOTE: Anthropogenic drivers can alter biotic or abiotic factors; categories need not be disjoint.

# 05 — FORMAL SEMANTICS
TYPECHECK CONTAINS_ENVIRONMENTAL_FACTOR: domain BiologicalEnvironment; range BioticFactor|AbioticFactor
TYPECHECK SURROUNDS: domain BiologicalEnvironment; range Organism|Population|Community
TYPECHECK MEASURES: domain Observation; range BioticFactor|AbioticFactor|Resource
IDENTITY BiologicalEnvironment := (id, spatial_extent, temporal_extent)
DISTINCT habitat_from_environment: habitat expresses organism-relevant suitability; environment represents surrounding conditions.
DISTINCT ecosystem_from_environment: ecosystem includes interacting organisms and physical processes, not merely measured conditions.

# 06 — INFERENCE RULES
RULE observed_factor:
  IF MEASURES(o,f) AND Observation(o).timestamp=t
  THEN FACTOR_OBSERVED_AT(f,t) [evidence=o]
RULE environmental_exposure:
  IF SURROUNDS(e,x) AND CONTAINS_ENVIRONMENTAL_FACTOR(e,f)
  THEN POTENTIALLY_EXPOSED_TO(x,f) [confidence=conditional]
RULE disturbance_effect:
  IF MODIFIES(d,e) AND SURROUNDS(e,x)
  THEN POTENTIALLY_AFFECTED_BY(x,d) [confidence=conditional]
RULE resource_access:
  IF SURROUNDS(e,x) AND PROVIDES_RESOURCE(e,r)
  THEN POTENTIAL_RESOURCE_ACCESS(x,r) [confidence=conditional]
RULE suitability:
  IF OBSERVED_CONDITIONS(e,c) AND SPECIES_TOLERANCE(x,t)
  THEN ESTIMATE_SUITABILITY(x,e,COMPARE(c,t)) [requires=validated_model]
RULE response_attribution:
  IF RESPONDS_TO(r,f) AND SUPPORTED_BY(r,ev)
  THEN EVIDENCE_ASSOCIATED_RESPONSE(r,f,ev)
  NOT NECESSARILY CAUSES(f,r)

# 07 — QUANTITATIVE MODELS
MODEL environmental_state:
  E(x,t) = { f_i(x,t) | i in observed_factors }
MODEL exposure:
  exposure(x,f,[t0,t1]) = INTEGRAL(concentration(f,x,t), t0, t1)
  REQUIRE units_compatible AND adequate_sampling
MODEL suitability:
  S(species,E) in [0,1]
  REQUIRE fitted_parameters AND documented_calibration
MODEL environmental_change:
  delta_f = f(x,t2) - f(x,t1)
  REQUIRE same_unit AND comparable_method AND comparable_location
NOTE: Models are schemas, not universal empirical laws.

# 08 — INVARIANTS AND CONSTRAINTS
INVARIANT unique_identifier: all entities have nonempty unique IDs within dataset.
INVARIANT observation_time: every observation has an explicit timestamp.
INVARIANT units: numeric comparisons require dimensionally compatible units.
INVARIANT provenance: empirical assertions reference source or observation evidence.
INVARIANT uncertainty: missing data is unknown, never automatically zero.
INVARIANT context: environmental states are interpreted at stated place, time and scale.
INVARIANT no_false_causality: co-occurrence alone does not establish causation.
INVARIANT suitability_range: IF suitability is normalised THEN 0 <= suitability <= 1.
CONSTRAINT temporal_alignment: compare observations only over compatible windows.
CONSTRAINT spatial_alignment: distinguish point samples from area-wide generalisations.

# 09 — CONFIDENCE
CONFIDENCE(assertion):
  inputs: [measurement_quality, provenance_quality, replication, temporal_relevance, spatial_relevance, model_validation]
  output: score in [0,1] OR unknown
  method: documented_calibration_required
  rule: do_not_assign_numeric_confidence_without_evidence

# 10 — SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
  biological_environment ~ ecological_environment [context_dependent]
  environmental_condition ~ measured_environmental_state [only_if_scope_and_time_match]
  biological_environment != habitat
  biological_environment != ecosystem
  biotic_factor != abiotic_factor
  synonyms_require: same_definition AND same_scale AND compatible_temporal_scope

# 11 — FLOW HASH
FLOW_HASH:
  canonicalise: [ontology_version, entity_types, relationships, rules, constraints]
  algorithm: SHA-256
  encoding: UTF-8
  output: lowercase_hex_digest
  note: hash must be calculated over actual canonical serialisation; never fabricated.

# 12 — UPDATE MODEL
UPDATE_MODEL:
  event_types: [factor_observed, factor_reclassified, environment_changed, evidence_added, evidence_retracted, schema_revised]
  process:
    - validate_event
    - preserve_prior_version
    - update_typed_graph
    - re_evaluate_dependent_inferences
    - recompute_confidence_if_calibrated
    - regenerate_flow_hash
    - record_provenance_and_timestamp
  policy: immutable_history_with_versioned_current_state

# 13 — AI CONSUMPTION
AI_CONSUMPTION:
  expose: [types, definitions, relationships, units, spatial_extent, temporal_extent, provenance, uncertainty, constraints]
  retrieval: entity_and_relation_graph
  reasoning: evidence_grounded_with_explicit_unknowns
  output: [claims, supporting_observations, confidence_status, limitations]
  prohibit: [invented_measurements, unsupported_causality, fabricated_confidence, invented_hashes]

# 14 — EXAMPLE (ILLUSTRATIVE, NOT OBSERVED DATA)
EXAMPLE:
  environment: pond_edge_001
  factor: dissolved_oxygen_001
  factor_type: AbioticFactor
  organism: aquatic_invertebrate_001
  relation: SURROUNDS(pond_edge_001, aquatic_invertebrate_001)
  observation: no_measurement_supplied
  inference: potential_exposure_only

# 15 — VALIDATION TESTS
TEST type_safety: reject SURROUNDS(Observation, Organism)
TEST evidence: reject empirical numeric claim without provenance
TEST unit_mismatch: reject direct comparison of degrees_Celsius and mg_per_litre
TEST causal_inference: do not infer causality from simple co-occurrence
TEST unknown_values: preserve null as unknown
TEST update_trace: historical observations remain auditable

# 16 — AUTHORSHIP AND STATUS
AUTHORS: Mark Higgins — Sky (Recursive AI)
PROJECT: Kireth Semantic Library
WEBSITE: https://kirethresearch.org
STATUS: Proposed conceptual Flow Algebra specification; not executable without a defined parser/runtime and data bindings.
END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ