Skip to main content

Biomolecule Ontology

Chemical Foundations of Life
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 15 October 2026
Audio Overview
FLOW ALGEBRA
BIOMOLECULE ONTOLOGY
Kireth Semantic Library | Chemical Foundations of Life
Source: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/chemical-foundations-of-life/biomolecule-ontology-2.html
Companion formalisation | 2026-10-15
Authors: Mark Anthony Higgins — Sky (Recursive AI)

AI INTERPRETATION NOTE
The following is a declarative, typed reasoning specification. Its rules describe valid inference conditions; an implementation must supply a parser, graph store, validation engine and execution semantics. Do not treat inferred hypotheses as experimentally confirmed facts.

flow "BiomoleculeOntology" v1.0

# 01 — DOMAIN AND IDENTITY
DOMAIN: ChemicalFoundationsOfLife
ONTOLOGY: Biomolecule
ENTITY_TYPE: Biomolecule <: BiologicalMolecule <: ChemicalEntity
IDENTITY_KEY: stable_identifier + chemical_structure + context
SCOPE: naturally occurring and biologically relevant molecular entities, including synthetic analogues where explicitly tagged

# 02 — TYPED ENTITIES
entity Biomolecule { id:IRI; name:String; category:BiomoleculeClass; structure:Structure?; formula:String?; charge:Integer?; mass:Quantity?; organism:Taxon?; compartment:Compartment?; evidence:EvidenceRef* }
entity Monomer { id:IRI; kind:MonomerClass; stereochemistry:String? }
entity Polymer { id:IRI; repeat_unit:Monomer?; polymerisation_degree:Integer? }
entity FunctionalGroup { id:IRI; name:String; reactivity:String? }
entity MolecularComplex { id:IRI; components:Biomolecule+; stoichiometry:Map? }
entity Reaction { id:IRI; reactants:ChemicalEntity+; products:ChemicalEntity+; catalysts:Biomolecule* }
entity BiologicalFunction { id:IRI; label:String; context:Context }
entity EvidenceRef { id:IRI; source:IRI; method:String?; date:Date?; quality:EvidenceQuality }
entity Context { taxon:Taxon?; tissue:String?; compartment:Compartment?; pH:Real?; temperature:Quantity?; time:DateTime? }

# 03 — CLASSIFICATION
BiomoleculeClass := Carbohydrate | Lipid | Protein | Peptide | NucleicAcid | Nucleotide | AminoAcid | Metabolite | Cofactor | Vitamin | Hormone | Other
MonomerClass := AminoAcid | Nucleotide | Monosaccharide | Other
Carbohydrate -> {Monosaccharide, Oligosaccharide, Polysaccharide}
Lipid -> {FattyAcid, Triacylglycerol, Phospholipid, Sterol, OtherLipid}
Protein -> {Enzyme, StructuralProtein, TransportProtein, SignallingProtein, OtherProtein}
NucleicAcid -> {DNA, RNA}
NOTE: Class membership can overlap; lipids are not universally polymers, and not every biomolecule is a macromolecule.

# 04 — RELATIONSHIP SIGNATURES
relationship is_a(Biomolecule, BiomoleculeClass)
relationship part_of(ChemicalEntity, ChemicalEntity)
relationship has_monomer(Polymer, Monomer)
relationship has_functional_group(Biomolecule, FunctionalGroup)
relationship binds_to(Biomolecule, ChemicalEntity, Context)
relationship catalyses(Biomolecule, Reaction, Context)
relationship participates_in(Biomolecule, Reaction, Context)
relationship located_in(Biomolecule, Compartment, Context)
relationship encoded_by(Protein, NucleicAcid, Context)
relationship has_function(Biomolecule, BiologicalFunction, Context)
relationship interacts_with(Biomolecule, Biomolecule, Context)
relationship derived_from(Biomolecule, ChemicalEntity, Reaction?)
relationship supported_by(Assertion, EvidenceRef)
relationship equivalent_to(Biomolecule, Biomolecule, EquivalenceBasis)

# 05 — CORE GRAPH ASSERTIONS
assert is_a(Glucose, Monosaccharide)
assert is_a(ATP, Nucleotide)
assert is_a(DNA, NucleicAcid)
assert is_a(Phosphatidylcholine, Phospholipid)
assert has_functional_group(AminoAcid, AminoGroup) [class_level=true]
assert has_functional_group(AminoAcid, CarboxylGroup) [class_level=true; applies_to=standard_alpha_amino_acids]
NOTE: Exemplars are illustrative, not exhaustive taxonomic definitions.

# 06 — INFERENCE RULES
rule R01 ClassificationInheritance:
  IF is_a(x, subclass) AND subclass_of(subclass, superclass)
  THEN is_a(x, superclass)
  GUARD superclass is not disjoint_with subclass

rule R02 PolymerConstituents:
  IF has_monomer(polymer, monomer)
  THEN contains_repeating_unit(polymer, monomer)
  GUARD polymerisation evidence is available

rule R03 EnzymeFunction:
  IF catalyses(enzyme, reaction, context)
  THEN participates_in(enzyme, reaction, context)
  NOTE participation does not imply stoichiometric consumption

rule R04 ContextualFunction:
  IF has_function(entity, function, context_a) AND compatible(context_a, context_b)
  THEN candidate_function(entity, function, context_b)
  STATUS inferred_unverified

rule R05 ComplexMembership:
  IF part_of(component, complex) AND is_a(complex, MolecularComplex)
  THEN component_of_complex(component, complex)

rule R06 EvidenceInheritanceRestriction:
  IF supported_by(assertion, evidence)
  THEN evidence_link(assertion, evidence)
  NEVER infer experimental verification solely from ontology membership

# 07 — CONSTRAINTS AND VALIDATION
constraint C01: every Biomolecule.id is unique within the graph
constraint C02: chemical formula and molecular mass must be mutually consistent within stated isotopic assumptions and tolerances
constraint C03: electric charge is an integer for a fully specified molecular ion; protonation states must be explicit
constraint C04: part_of edges cannot be reflexive in a strict structural decomposition graph
constraint C05: reaction atom balance and charge balance must hold for complete, explicitly specified reactions
constraint C06: structure-based identity requires matching connectivity, stereochemistry, isotope and charge when relevant
constraint C07: functions, interactions and localisation require biological context and evidence qualification
constraint C08: never assume every protein is an enzyme, every lipid is a polymer, or every nucleotide is DNA
constraint C09: unresolved ambiguity must remain explicit rather than silently merged
constraint C10: do not conflate molecular type with a particular molecular instance

# 08 — SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
  exact: identical canonical structure under the same chemical-state assumptions
  contextual: equivalent for a stated modelling purpose, not necessarily chemically identical
  alias: different labels for the same identified entity
  homologous: shared evolutionary relationship; NOT exact identity
  analogous: similar biological function; NOT structural equivalence
  policy: never collapse homologous, analogous or functionally related entities into exact equivalence

# 09 — CONFIDENCE
CONFIDENCE:
  basis: evidence quality + source reliability + structural match + contextual fit + validation status
  scale: [0.0, 1.0]
  interpretation: calibrated score only if empirical calibration is supplied
  unknown: null
  aggregation: implementation_defined; do not average correlated evidence as independent
  rule: formal logical entailment and empirical confidence must be reported separately

# 10 — PROVENANCE
PROVENANCE:
  record: assertion_id, source_id, source_version, evidence_method, observed_at, curator, transformation_history
  lineage: original_assertion -> normalisation -> inference -> validation -> output
  policy: derived claims retain traceability to every necessary premise

# 11 — RECURSIVE GRAPH REASONING
RECURSION:
  traverse: component -> molecular_complex -> pathway -> cellular_process -> biological_function
  visited_set: required
  max_depth: configurable
  cycle_policy: detect_and_report
  inference_policy: apply only typed, guarded rules
  termination: fixed_point_or_resource_limit
  invalidation: recompute dependent conclusions when premises change

# 12 — FLOW HASH
FLOW_HASH:
  canonicalise: entity_ids + typed_edges + rule_versions + context + provenance_refs
  encoding: UTF-8
  digest: SHA-256
  semantics: content_integrity_identifier, not scientific proof
  exclude: volatile_rendering_metadata

# 13 — UPDATE MODEL
UPDATE_MODEL:
  input: new_evidence | changed_structure | changed_classification | corrected_relationship | source_revision
  stages: ingest -> validate -> reconcile -> version -> invalidate_dependents -> recompute -> publish
  preserve: historical assertions and retraction reasons
  conflict_policy: retain competing claims with provenance until resolved
  output: versioned graph delta + affected inference identifiers

# 14 — AI CONSUMPTION
AI_CONSUMPTION:
  modes: retrieval, entity_resolution, typed_graph_query, constrained_inference, provenance_audit
  inputs: natural_language_query | structured_entity_query
  outputs: entities, relations, inferred_claims, confidence, evidence, validation_status, graph_version
  requirements: cite supporting evidence; distinguish asserted/inferred/unknown; expose uncertainty
  prohibited: unsupported biochemical claims, fabricated citations, automatic experimental confirmation

# 15 — EXAMPLE EXECUTION TRACE
INPUT: query "Is ATP a biomolecule and what is its class?"
MATCH: is_a(ATP, Nucleotide)
ONTOLOGY: subclass_of(Nucleotide, Biomolecule)
INFER: is_a(ATP, Biomolecule)
VALIDATE: identifiers, class hierarchy, and supporting evidence
OUTPUT: ATP -> Nucleotide -> Biomolecule
STATUS: ontological classification; biological role depends on context

# 16 — QUALITY GATES
QUALITY_GATES:
  syntax: pass_required
  type_check: pass_required
  identifier_resolution: pass_required
  evidence_links: checked
  chemical_consistency: checked_where_data_available
  circular_inference: guarded
  semantic_equivalence: basis_required
  confidence_calibration: report_if_unavailable
  reproducibility: graph_version + rule_version + provenance

END FLOW ALGEBRA
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ