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
Download Code
Copy to Clipboard