Skip to main content

Urban Ecosystem 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
Urban Ecosystem Ontology — Full Conceptual 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/urban-ecosystem-ontology.html
Status: Newly authored conceptual specification; not a verified transcription of webpage content and not an executable implementation.
Locale: en-GB

flow "UrbanEcosystemOntology" v1.0

# 1. DOMAIN
DOMAIN: BiologicalEntities.ExperimentalBiologicalEntities.UrbanEcosystem
PURPOSE: Represent urban ecosystems as coupled ecological, built and social systems, with explicit spatial, temporal, causal and evidential relationships.

# 2. TYPED ENTITIES
entity UrbanEcosystem { id: URI; name: String; extent: Geometry; time: Interval; biome_context: URI? }
entity UrbanHabitat { id: URI; habitat_type: Enum[park,garden,street_tree,green_roof,green_wall,urban_forest,river,pond,wetland,brownfield,road_verge,building_cavity,other]; geometry: Geometry; ecosystem_id: URI }
entity BuiltSurface { id: URI; surface_type: Enum[road,roof,pavement,building,car_park,other]; permeability: Ratio?; albedo: Ratio?; geometry: Geometry }
entity GreenInfrastructure { id: URI; type: String; geometry: Geometry; maintenance_regime: String? }
entity BlueInfrastructure { id: URI; type: String; geometry: Geometry; flow_regime: String? }
entity Population { id: URI; taxon: URI; abundance: NonNegativeReal?; sampling_method: String?; time: Interval }
entity Organism { id: URI; taxon: URI; life_stage: String? }
entity Species { id: URI; scientific_name: String; native_status: Enum[native,non_native,unknown]; invasive_status: Enum[invasive,not_assessed,not_invasive,unknown] }
entity EnvironmentalObservation { id: URI; variable: String; value: Real; unit: String; time: Instant; location: Geometry; method: String; uncertainty: NonNegativeReal? }
entity Disturbance { id: URI; type: Enum[construction,traffic,light,noise,pollution,heat,flood,drought,mowing,other]; intensity: Real?; interval: Interval }
entity EcosystemService { id: URI; category: Enum[provisioning,regulating,cultural,supporting]; description: String; beneficiary: URI? }
entity HumanCommunity { id: URI; spatial_extent: Geometry; exposure: String? }
entity Intervention { id: URI; type: String; start: Instant; target: URI; objective: String }
entity Evidence { id: URI; source: URI; observed_at: Instant; quality: Ratio; method: String }

# 3. RELATIONSHIPS
relation CONTAINS(UrbanEcosystem, UrbanHabitat)
relation CONTAINS(UrbanEcosystem, BuiltSurface)
relation SUPPORTS_HABITAT(GreenInfrastructure, UrbanHabitat)
relation SUPPORTS_HABITAT(BlueInfrastructure, UrbanHabitat)
relation OCCURS_IN(Population, UrbanHabitat)
relation MEMBER_OF(Organism, Population)
relation BELONGS_TO_TAXON(Population, Species)
relation CONNECTED_TO(UrbanHabitat, UrbanHabitat, connectivity_type: String)
relation FRAGMENTS(BuiltSurface, UrbanHabitat)
relation EXPOSED_TO(Population, Disturbance)
relation AFFECTS(Disturbance, EnvironmentalObservation)
relation PROVIDES(UrbanHabitat, EcosystemService)
relation BENEFITS(EcosystemService, HumanCommunity)
relation MODIFIES(Intervention, UrbanHabitat)
relation SUPPORTED_BY(Assertion, Evidence)

# 4. CLASSIFICATION RULES
rule R01: habitat_type in [park,garden,street_tree,green_roof,green_wall,urban_forest,road_verge] -> candidate_green_habitat.
rule R02: habitat_type in [river,pond,wetland] -> candidate_blue_habitat.
rule R03: built_surface.permeability near 0 -> candidate_impervious_surface; threshold must be declared per study.
rule R04: non_native species != invasive species; invasive status requires impact and establishment evidence.
rule R05: presence of urban infrastructure alone does not establish ecosystem health or biodiversity quality.

# 5. QUANTITATIVE MODELS
metric impervious_fraction(A,t) = impervious_area(A,t) / total_area(A,t)
metric green_cover_fraction(A,t) = green_cover_area(A,t) / total_area(A,t)
metric habitat_connectivity(A,t) = specified_graph_connectivity_index(habitat_graph(A,t))
metric species_richness(A,t,method) = count_distinct_observed_taxa(A,t,method)
metric heat_island_intensity(t) = urban_air_temperature(t) - reference_rural_air_temperature(t)
metric runoff_coefficient(event) = runoff_volume(event) / precipitation_volume(event)
metric intervention_change(X) = X_after - X_before
constraint: denominators > 0; comparisons require compatible scales, methods and temporal windows.
constraint: habitat connectivity and biodiversity metrics must declare spatial resolution and sampling effort.
constraint: heat island intensity requires comparable measurement height, time and meteorological conditions.

# 6. PROCESS FLOWS
flow URBANISATION:
  land_cover_change -> habitat_conversion -> altered_connectivity -> modified_species_assemblages
  annotate: outcomes are context dependent, not universally monotonic.
flow WATER:
  precipitation -> interception + infiltration + storage + evapotranspiration + runoff
  annotate: conservation requires consistent spatial/temporal accounting and storage change.
flow HEAT:
  radiation + anthropogenic_heat + surface_properties + vegetation + urban_geometry -> local_thermal_conditions
flow NUTRIENTS:
  inputs -> uptake + transformations + exports + change_in_storage
flow BIODIVERSITY:
  colonisation + reproduction + dispersal - mortality - emigration -> population_change
flow INTERVENTION:
  baseline -> action -> monitoring -> counterfactual_comparison -> uncertainty_assessment -> revised_management

# 7. INFERENCE
infer I01: if habitats connected by traversable corridors for taxon T, then possible_dispersal(T); do not infer actual movement without evidence.
infer I02: if impervious cover rises and drainage conditions are comparable, flag possible_runoff_increase; require local hydrological validation.
infer I03: if tree canopy increases, flag potential_shading_and_cooling; magnitude depends on season, water availability and design.
infer I04: if species observations change, evaluate sampling effort, detection probability, seasonality and taxonomic revisions before inferring ecological trend.
infer I05: if habitat fragmentation increases, flag possible connectivity loss for sensitive taxa; species-specific evidence required.
infer I06: if intervention precedes improved metric, record association, not causation, absent suitable controls or causal design.

# 8. INVARIANTS AND VALIDATION
invariant V01: 0 <= fractions <= 1.
invariant V02: entity identifiers unique within namespace.
invariant V03: observation has unit, timestamp, method and location.
invariant V04: species identity links to accepted taxonomic authority/version where available.
invariant V05: spatial relations use declared coordinate reference systems.
invariant V06: temporal comparisons use explicit baselines.
invariant V07: every causal assertion records evidence, assumptions and uncertainty.
invariant V08: ecosystem services are distinguished from ecological processes and benefits.
invariant V09: missing observations are not interpreted as absence.
invariant V10: classifications and measurements retain provenance.

# 9. CONFIDENCE
CONFIDENCE(assertion) := calibrated_score(evidence_quality,method_reliability,replication,spatial_match,temporal_match)
range: [0,1]
policy: distinguish measurement uncertainty from inferential confidence; never manufacture numerical confidence without calibration.

# 10. SEMANTIC_EQUIVALENCE
SEMANTIC_EQUIVALENCE(a,b) requires compatible entity types, definitions, units, spatial/temporal scales and ontology versions.
map: "urban green space" ~ "urban greenspace" only when context and boundary definitions agree.
non_equivalence: "green cover" != "tree canopy cover".
non_equivalence: "species richness" != "biodiversity".
non_equivalence: "non-native" != "invasive".

# 11. FLOW_HASH
FLOW_HASH := SHA256(canonicalise(ontology_version,entity_schema,relations,rules,models,provenance))
canonicalisation: stable field order, Unicode NFC, explicit units and deterministic URI normalisation.
policy: content changes produce a new hash; hash identifies representation, not scientific truth.

# 12. UPDATE_MODEL
UPDATE_MODEL(event):
  validate_schema(event)
  preserve_prior_version()
  append_observation_or_revision(event)
  recompute_affected_metrics()
  reevaluate_dependent_inferences()
  record_provenance_and_timestamp()
  publish_new_flow_hash()
conflict_resolution: retain competing evidence and flag unresolved disagreement.

# 13. AI_CONSUMPTION
AI_CONSUMPTION:
  output: typed_entities, typed_relations, evidence_links, uncertainty, inference_trace, ontology_version, flow_hash
  require: distinguish observed facts, modelled estimates, hypotheses and interventions.
  prohibit: fabricated observations, invented precision, unsupported causal conclusions.
  support: machine-readable exports after implementation-specific schema validation.

# 14. EXAMPLE (ILLUSTRATIVE ONLY)
UrbanEcosystem: city_district_A
UrbanHabitat: park_A
UrbanHabitat: pond_A
relation: CONTAINS(city_district_A, park_A)
relation: CONTAINS(city_district_A, pond_A)
assertion: possible ecological corridor between park_A and pond_A
status: hypothesis pending spatial and taxon-specific verification

# 15. CROSS-ONTOLOGY LINKS
Ecological Entity -> Ecosystem -> Habitat -> Population -> Organism -> Species
Aquatic Habitat -> Freshwater Habitat -> Wetland Ecosystem
Terrestrial Habitat -> Forest Ecosystem -> Grassland Ecosystem
Urban Ecosystem -> Biological Environment -> Environmental Observation

# 16. AUTHORSHIP AND LICENSING
Authors: Mark Higgins — Sky (Recursive AI)
Research site: https://kirethresearch.org
AI contribution disclosed: co-authored conceptual formalisation.
Licence: consult the applicable Kireth Research published licence; no licence grant is inferred here.

end flow
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ