FLOW ALGEBRA
Biological Interaction Entity Ontology
Kireth Semantic Library | Foundations of Biological Entities
Authors: Mark Anthony Higgins — Sky (Recursive AI)
Source: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/foundations-of-biological-entities/biological-interaction-entity-ontology.html
Specification: Companion formalisation | Version 1.0 | 2026-10-15
PURPOSE
Represent interactions among biological entities as typed, contextual, evidence-linked relations. Distinguish observed interactions from hypotheses, causal claims, and inferred relationships. This is a declarative specification; an implementation requires a parser, rule engine and evidence store.
ENTITY TYPES
BiologicalEntity := {id, label, kind, taxon?, scale?, context?}
InteractionEntity := {id, participants, interaction_type, directionality, context, evidence, status}
Participant := {entity_id, role}
Context := {organism?, tissue?, environment?, location?, time_interval?, condition?}
Evidence := {source_id, method, observation_id?, quality?, timestamp?}
Claim := {subject, predicate, object, context, evidence_ids, confidence, status}
INTERACTION TYPES
molecular_binding | catalysis | inhibition | activation | signalling |
transport | regulation | competition | cooperation | predation |
parasitism | mutualism | commensalism | symbiosis | host_pathogen |
cell_cell_contact | resource_exchange | ecological_association
TYPED RELATIONSHIPS
PARTICIPATES_IN(BiologicalEntity, InteractionEntity)
HAS_ROLE(BiologicalEntity, InteractionEntity, Role)
INTERACTS_WITH(BiologicalEntity, BiologicalEntity, InteractionEntity)
OCCURS_IN(InteractionEntity, Context)
SUPPORTED_BY(InteractionEntity, Evidence)
REGULATES(BiologicalEntity, BiologicalEntity, InteractionEntity)
PRECEDES(InteractionEntity, InteractionEntity)
PART_OF(InteractionEntity, BiologicalProcess)
CONTRADICTS(Claim, Claim)
SEMANTIC_EQUIVALENCE(Claim, Claim, Scope)
TYPE CONSTRAINTS
C1: Every interaction has at least two participant roles; distinct entity IDs are not mandatory (self-interaction is permitted).
C2: Participant references must resolve to known BiologicalEntity IDs.
C3: Interaction types must belong to the controlled vocabulary or a registered extension.
C4: Directionality ∈ {directed, undirected, bidirectional, unknown}.
C5: Causal predicates (ACTIVATES, INHIBITS, CAUSES) require evidence sufficient for a causal interpretation; correlation alone is insufficient.
C6: Interaction context must preserve relevant species, biological scale, condition and temporal qualifiers when known.
C7: An undirected association must not be silently converted to a directed causal edge.
FLOW OPERATORS
flow REGISTER_ENTITY(e: BiologicalEntity) -> EntityID
require nonempty(e.id) and nonempty(e.kind)
ensure unique(e.id) or return existing matching record
flow REGISTER_INTERACTION(i: InteractionEntity) -> InteractionID
require count(i.participants) >= 2
require all(resolve(p.entity_id) for p in i.participants)
require valid_type(i.interaction_type)
require valid_context(i.context)
store(i)
emit interaction_registered(i.id)
flow NORMALISE_INTERACTION(i: InteractionEntity) -> InteractionEntity
map controlled aliases to canonical interaction_type
preserve original terms as provenance-linked labels
preserve participant roles and directionality
return canonical(i)
flow VALIDATE_INTERACTION(i: InteractionEntity) -> ValidationResult
check referential_integrity(i)
check type_constraints(i)
check context_consistency(i)
check evidence_integrity(i)
return {valid, warnings, errors, checked_rules}
flow INFER_INTERACTION(claims: Set[Claim], rules: RuleSet) -> Set[Claim]
require every rule is typed and scope-aware
derive only rule-licensed claims
attach premises, rule_id and evidence lineage
mark outputs as inferred, not observed
prohibit causal upgrading without causal rule support
flow RESOLVE_CONFLICT(a: Claim, b: Claim) -> Resolution
compare predicate, participants, context and time
if contexts differ: return context_dependent
if contradictory under same context: return unresolved_conflict
never discard conflicting evidence automatically
BIOLOGICAL INTERACTION INFERENCE
R1: PARTICIPATES_IN(x,i) AND PARTICIPATES_IN(y,i)
AND x != y -> CO_PARTICIPANTS(x,y,i).
R2: HAS_ROLE(x,i,enzyme) AND HAS_ROLE(y,i,substrate)
AND TYPE(i,catalysis) -> CATALYTIC_PARTNERS(x,y,i).
R3: TYPE(i,mutualism) AND HAS_ROLE(x,i,beneficiary)
AND HAS_ROLE(y,i,beneficiary) -> MUTUAL_BENEFIT(x,y,i).
R4: TYPE(i,predation) AND HAS_ROLE(x,i,predator)
AND HAS_ROLE(y,i,prey) -> PREDATOR_OF(x,y,i).
R5: TYPE(i,regulation) AND DIRECTION(i,directed)
AND HAS_ROLE(x,i,regulator) AND HAS_ROLE(y,i,target)
-> REGULATES(x,y,i).
R6: CO_PARTICIPANTS(x,y,i) does NOT imply direct physical contact.
R7: INTERACTS_WITH(x,y,i) does NOT imply INTERACTS_WITH(y,x,i)
when i is directed.
R8: TRANSITIVE_CLOSURE(INTERACTS_WITH) is prohibited by default;
an interaction path is not proof of a direct interaction.
SEMANTIC_EQUIVALENCE
Equivalent interaction claims require compatible participants, roles,
relation meaning, directionality, biological scale and context.
Lexical similarity alone does not establish equivalence.
Equivalent labels may be merged; non-equivalent contexts remain distinct.
CONFIDENCE
confidence := calibrated_score in [0,1] OR unknown
confidence inputs := evidence_quality, method_reliability,
replication, contextual_match, source_independence, contradiction
Do not assign numeric confidence without a declared calibration method.
Missing evidence is not equivalent to evidence of absence.
Derived confidence must account for dependent premises and shared sources.
PROVENANCE
For every observed or inferred edge retain:
source_identifier, observation_or_rule, timestamp, context,
source_version, transformation_history, author_or_agent
Maintain immutable evidence references where possible.
FLOW_HASH
canonical_record := canonical_serialisation(entity_or_interaction,
ontology_version, relation_types, roles, context, provenance_refs)
FLOW_HASH := SHA256(UTF8(canonical_record))
Hash equality indicates identical canonical serialisations, not biological truth.
UPDATE_MODEL
On new evidence:
ingest -> validate -> compare contexts -> reconcile versions
-> recompute affected claims -> update confidence/status
-> recompute hashes -> retain audit trail
Never overwrite historical claims without recording their prior version.
AI_CONSUMPTION
Expose typed nodes, edges, roles, evidence and context.
Separate observed, inferred, disputed and rejected assertions.
Allow provenance tracing and scope-aware graph traversal.
Return uncertainty explicitly; avoid fabricating absent interactions.
Support machine-readable export without treating this document as executable code.
EXAMPLE
entity A := {id: "protein_A", kind: protein}
entity B := {id: "protein_B", kind: protein}
interaction I := {
id: "binding_001",
participants: [{entity_id: "protein_A", role: binder},
{entity_id: "protein_B", role: binding_partner}],
interaction_type: molecular_binding,
directionality: undirected,
context: {condition: "in_vitro"},
evidence: ["assay_001"],
status: observed
}
Interpretation: an in-vitro binding observation; no inference of
in-vivo binding or downstream functional activation is licensed.
END FLOW ALGEBRA
Download Code
Copy to Clipboard