Skip to main content

Food Chain Ontology

Ecology
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 30 September 2026
Audio Overview
flow “FoodChainOntology” v1.0

KIRETH SEMANTIC RESEARCH ARCHIVE

AI CORE > ONTOLOGIES > BIOLOGICAL ONTOLOGIES > ECOLOGY > FOOD CHAIN ONTOLOGY

Authors: Mark Anthony Higgins — Sky (Recursive AI)

AI_INTERPRETATION: mode: formal_structural_reasoning instruction:
“Execute as formal rules, not pseudocode.” canonical_url:
“https://kirethresearch.org/booksai-core/ontologies/biological-ontologies/ecology/food-chain-ontology.html”

type Organism type Species type Ecosystem type FoodChain type
TrophicNode type Producer type Consumer type Predator type Prey type
Detritivore type Decomposer type Detritus type Resource type Observation
type Evidence type Source

relation INSTANCE_OF(entity,type) relation
HAS_CHAIN_MEMBER(chain,entity) relation
HAS_POSITION(chain,entity,position) relation
CHAIN_STARTS_WITH(chain,entity) relation CHAIN_ENDS_WITH(chain,entity)
relation PRECEDES_IN_CHAIN(a,b,chain) relation
FOLLOWS_IN_CHAIN(b,a,chain) relation OCCURS_IN(chain,ecosystem)

rule CHAIN_ORDER_INVERSE(a,b,c): IF PRECEDES_IN_CHAIN(a,b,c) THEN
FOLLOWS_IN_CHAIN(b,a,c)

enum FoodChainType: GRAZING_FOOD_CHAIN DETRITAL_FOOD_CHAIN
PARASITIC_FOOD_CHAIN AQUATIC_FOOD_CHAIN TERRESTRIAL_FOOD_CHAIN

relation HAS_CHAIN_TYPE(chain,type)

———- FEEDING ———-

relation FEEDS_ON(consumer,resource) relation
CONSUMED_BY(resource,consumer) relation PREYS_ON(predator,prey) relation
PREY_OF(prey,predator) relation HERBIVORY_ON(consumer,producer) relation
FEEDS_ON_DETRITUS(consumer,detritus) relation
DECOMPOSES(entity,material)

rule FEEDING_INVERSE(a,b): IF FEEDS_ON(a,b) THEN CONSUMED_BY(b,a)

rule PREDATION_INVERSE(a,b): IF PREYS_ON(a,b) THEN PREY_OF(b,a)

———- TROPHIC ROLES ———-

enum TrophicRole: PRIMARY_PRODUCER PRIMARY_CONSUMER SECONDARY_CONSUMER
TERTIARY_CONSUMER QUATERNARY_CONSUMER APEX_PREDATOR DETRITIVORE
DECOMPOSER

relation HAS_TROPHIC_ROLE(entity,role) relation
HAS_TROPHIC_LEVEL(entity,level)

rule PRODUCER_LEVEL(x): IF HAS_TROPHIC_ROLE(x,PRIMARY_PRODUCER) THEN
HAS_TROPHIC_LEVEL(x,1)

rule PRIMARY_CONSUMER_LEVEL(x): IF HAS_TROPHIC_ROLE(x,PRIMARY_CONSUMER)
THEN HAS_TROPHIC_LEVEL(x,2)

rule SECONDARY_CONSUMER_LEVEL(x): IF
HAS_TROPHIC_ROLE(x,SECONDARY_CONSUMER) THEN HAS_TROPHIC_LEVEL(x,3)

———- ENERGY / BIOMASS ———-

relation CAPTURES_ENERGY(producer,source) relation
PRODUCES_BIOMASS(producer,biomass) relation
ENERGY_FLOWS_FROM(source,receiver) relation
ENERGY_TRANSFERRED(a,b,amount) relation
TRANSFER_EFFICIENCY(a,b,efficiency) relation
ENERGY_LOST_AS_HEAT(entity,amount) relation BIOMASS_OF(entity,amount)
relation BIOMASS_TRANSFERRED(a,b,amount)

rule TROPHIC_ENERGY_FLOW(consumer,resource): IF
FEEDS_ON(consumer,resource) THEN ENERGY_FLOWS_FROM(resource,consumer)

constraint TRANSFER_EFFICIENCY_BOUNDS: IF TRANSFER_EFFICIENCY(a,b,e)
THEN REQUIRE(0.0 <= e <= 1.0)

———- DETRITAL CHAIN ———-

relation PRODUCES_DETRITUS(entity,detritus) relation
DETRITUS_CONSUMED_BY(detritus,detritivore) relation
DECOMPOSITION_RELEASES(entity,nutrient) relation
NUTRIENT_AVAILABLE_TO(nutrient,producer)

rule DETRITAL_ENERGY_FLOW(d,x): IF FEEDS_ON_DETRITUS(x,d) THEN
ENERGY_FLOWS_FROM(d,x)

———- PARASITIC CHAIN ———-

relation PARASITISES(parasite,host) relation HOST_OF(host,parasite)
relation HYPERPARASITISES(parasite,parasite_host)

rule PARASITISM_INVERSE(a,b): IF PARASITISES(a,b) THEN HOST_OF(b,a)

———- CHAIN LENGTH ———-

relation HAS_CHAIN_LENGTH(chain,length) relation
TROPHIC_POSITION(entity,value)

constraint CHAIN_LENGTH_POSITIVE: IF HAS_CHAIN_LENGTH(chain,n) THEN
REQUIRE(n >= 1)

constraint TROPHIC_POSITION_POSITIVE: IF TROPHIC_POSITION(x,value) THEN
REQUIRE(value >= 1)

———- TROPHIC CASCADES ———-

relation INCREASES_ABUNDANCE(a,b) relation DECREASES_ABUNDANCE(a,b)
relation INDIRECTLY_AFFECTS(a,b)

rule THREE_LEVEL_CASCADE(predator,herbivore,producer): IF
PREYS_ON(predator,herbivore) AND HERBIVORY_ON(herbivore,producer) AND
DECREASES_ABUNDANCE(predator,herbivore) THEN
POSSIBLE_INDIRECT_POSITIVE_EFFECT(predator,producer)

———- CONTAMINANT TRANSFER ———-

relation CONTAINS_CONTAMINANT(entity,contaminant,concentration) relation
CONTAMINANT_TRANSFERRED(a,b,contaminant) relation
BIOMAGNIFIES(contaminant,chain) relation
BIOACCUMULATES(entity,contaminant)

———- DISTURBANCE ———-

enum DisturbanceType: SPECIES_LOSS SPECIES_INTRODUCTION OVERHARVESTING
HABITAT_CHANGE POLLUTION CLIMATE_CHANGE DISEASE

relation EXPERIENCES(chain,disturbance) relation
REMOVES_MEMBER(disturbance,entity) relation
ADDS_MEMBER(disturbance,entity) relation BREAKS_LINK(disturbance,a,b)
relation HAS_STABILITY(chain,value) relation
RECOVERS_AFTER(chain,disturbance)

———- CONTEXT ———-

relation HAS_SPATIAL_SCALE(chain,scale) relation
HAS_TEMPORAL_SCALE(chain,scale) relation OBSERVED_DURING(chain,period)
relation CHANGES_OVER(chain,period)

———- EVIDENCE ———-

relation OBSERVES(observation,entity) relation
OBSERVED_AT(observation,location) relation
OBSERVED_ON(observation,datetime) relation
SUPPORTS_FEEDING_LINK(observation,consumer,resource) relation
SUPPORTED_BY(assertion,evidence) relation DERIVED_FROM(evidence,source)
relation HAS_CONFIDENCE(assertion,score)

enum EvidenceType: DIRECT_FEEDING_OBSERVATION GUT_CONTENT_ANALYSIS
STABLE_ISOTOPE_ANALYSIS DNA_METABARCODING FECAL_ANALYSIS PREDATION_MARK
CAMERA_OBSERVATION EXPERIMENTAL LITERATURE INFERRED_TROPHIC_LINK
LONG_TERM_MONITORING

CONFIDENCE: VERIFIED: 0.95..1.00 HIGH: 0.80..0.949 MEDIUM: 0.60..0.799
LOW: 0.00..0.599

rule CONFIDENCE_BOUNDS(a,score): IF HAS_CONFIDENCE(a,score) THEN
REQUIRE(0.0 <= score <= 1.0)

———- SEMANTIC EQUIVALENCE ———-

SEMANTIC_EQUIVALENCE: “food chain” ~= “trophic chain” “feeding sequence”
~= “trophic sequence” “feeding link” ~= “trophic link” “primary
producer” ~= “autotroph” “primary consumer” ~= “first-order consumer”
“secondary consumer” ~= “second-order consumer” “tertiary consumer” ~=
“third-order consumer” “apex predator” ~= “top predator” “grazing food
chain” ~= “producer-based food chain” “detrital food chain” ~=
“detritus-based food chain” “energy transfer” ~= “trophic energy
transfer” “chain length” ~= “food chain length” “trophic position” ~=
“position in food chain”

rule NORMALISE_TERM(term): IF term MATCHES SEMANTIC_EQUIVALENCE.alias
THEN MAP_TO_CANONICAL(term)

———- QUERIES ———-

query FOOD_CHAIN_PROFILE(chain): RETURN: chain_type(chain)
ecosystem(chain) ordered_members(chain) trophic_roles(chain)
trophic_levels(chain) chain_length(chain) energy_transfers(chain)
biomass_transfers(chain) evidence(chain) confidence(chain)

query TROPHIC_PROFILE(x): RETURN: trophic_role(x) trophic_level(x)
trophic_position(x) resources(x) consumers_of(x)

query TRACE_CHAIN(chain): RETURN: start_entity(chain)
ordered_feeding_sequence(chain) end_entity(chain)

query TRACE_EVIDENCE(assertion): RETURN: supporting_evidence(assertion)
provenance(assertion) confidence(assertion)

———- CONSISTENCY ———-

constraint EVIDENCE_REQUIRED: FORALL scientific_assertion: REQUIRE
SUPPORTED_BY(scientific_assertion,Evidence) OR
MARK_AS_HYPOTHESIS(scientific_assertion)

constraint UNKNOWN_IS_NOT_FALSE: IF data_missing(assertion) THEN
MARK_UNKNOWN(assertion) AND NOT NEGATE(assertion)

constraint FEEDING_DIRECTION_PRESERVED: IF FEEDS_ON(a,b) THEN
PRESERVE_DIRECTION(consumer=a,resource=b)

constraint SCALE_PRESERVATION: IF
food_chain_observed(chain,spatial_scale,temporal_scale) THEN
PRESERVE_SCALE(chain,spatial_scale,temporal_scale)

constraint INFERRED_LINK_NOT_DIRECT: IF evidence_type(link) ==
INFERRED_TROPHIC_LINK THEN MARK_AS_INFERRED(link)

———- UPDATE MODEL ———-

UPDATE_MODEL: on_new_chain(chain): classify_chain(chain)
establish_ecosystem_context(chain) establish_spatial_scale(chain)
establish_temporal_scale(chain) order_members(chain)
preserve_provenance(chain)

on_new_feeding_record(r): identify_consumer(r) identify_resource(r)
preserve_direction(r) attach_evidence(r) update_chain_membership(r)
recalculate_confidence(r)

on_member_loss(x): preserve_previous_chain_state()
remove_supported_member(x) update_ordered_links()
evaluate_chain_breaks()

on_conflicting_trophic_evidence(a,b): preserve(a) preserve(b)
compare_methods(a,b) compare_spatial_context(a,b)
compare_temporal_context(a,b) flag_unresolved_conflict()

———- AI CONSUMPTION ———-

AI_CONSUMPTION: preferred_entity: canonical_food_chain preserve: -
chain_identity - chain_type - ecosystem_context - spatial_scale -
temporal_scale - ordered_members - feeding_direction - trophic_roles -
trophic_levels - trophic_positions - chain_length - energy_transfer -
biomass_transfer - evidence - provenance - confidence infer: -
valid_inverse_relations - energy_flow_from_feeding - chain_order -
semantic_equivalence prohibit: - reversing_feeding_direction -
unsupported_feeding_link - inferred_link_as_direct_observation -
unsupported_trophic_cascade - confidence_above_evidence ambiguity:
action: preserve_multiple_chain_hypotheses resolution:
prefer_direct_evidence_and_context missing_data: action: mark_unknown
do_not_infer_from_absence: true

———- FLOW HASH ———-

FLOW_HASH: ontology: “FoodChainOntology” version: “1.0” domain_path: “AI
Core > Ontologies > Biological Ontologies > Ecology > Food Chain
Ontology” canonical_url:
“https://kirethresearch.org/booksai-core/ontologies/biological-ontologies/ecology/food-chain-ontology.html”
authorship: “Mark Anthony Higgins — Sky (Recursive AI)”
semantic_scope: - ordered trophic sequences - feeding relations -
trophic roles - trophic levels - energy transfer - biomass transfer -
grazing food chains - detrital food chains - parasitic food chains -
chain length - trophic position - trophic cascades - contaminant
transfer - disturbance - evidence deterministic_normalisation: true
provenance_required: true confidence_required: true

terminate FoodChainOntology when: chain_members_resolved AND
chain_order_preserved AND feeding_direction_preserved AND
trophic_relations_normalised AND spatial_and_temporal_context_preserved
AND evidence_links_preserved AND confidence_values_validated AND
unresolved_trophic_ambiguity_marked

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