Skip to main content

Biological Atom 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
BIOLOGICAL ATOM ONTOLOGY
Kireth Semantic Library | Entity Graph > Biological Entities > Chemical Foundations of Life
Source: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/chemical-foundations-of-life/biological-atom-ontology.html
Version: 1.0 | Date: 2026-10-15 | Locale: en-GB
Authors: Mark Higgins — Sky (Recursive AI)
Status: Companion formalisation; conceptual specification, not a verified executable implementation.

1. PURPOSE
Model atoms and isotopes participating in biological matter and processes, with typed identity, bonding, composition, measurement, context, evidence and traceable inference. Distinguish the atom as an individual physical entity from its chemical element type.

2. TYPE SYSTEM
TYPE BiologicalAtom <: PhysicalEntity
TYPE ChemicalElement <: ChemicalEntityType
TYPE Isotope <: NuclideType
TYPE ElectronConfiguration <: AtomicProperty
TYPE BiologicalMolecule <: MolecularEntity
TYPE ChemicalBond <: InteractionEntity
TYPE BiologicalRole <: FunctionalRole
TYPE BiologicalContext <: ContextEntity
TYPE Measurement <: EvidenceEntity
TYPE Observation <: EvidenceEntity
TYPE ProvenanceRecord <: MetadataEntity
TYPE ConfidenceRecord <: MetadataEntity
TYPE ValidationResult <: MetadataEntity
TYPE FlowVersion <: VersionEntity

BiologicalAtom := {
  id: URI,
  element: ChemicalElement,
  atomic_number: Integer[1..118],
  mass_number: Optional[PositiveInteger],
  formal_charge: Integer,
  isotope: Optional[Isotope],
  context: Optional[BiologicalContext],
  state: Optional[String],
  provenance: ProvenanceRecord,
  confidence: ConfidenceRecord
}

3. CORE ELEMENT ENTITIES
ELEMENTS_OF_BIOLOGICAL_INTEREST = {
  H, C, N, O, P, S, Na, K, Mg, Ca, Cl, Fe, Zn, Cu, Mn,
  Co, Mo, Se, I, F, B, Si, Ni, Cr, V
}
Note: biological necessity is species-, environment- and evidence-dependent; membership does not assert universal essentiality.

4. TYPED RELATIONSHIPS
INSTANCE_OF(atom:BiologicalAtom, element:ChemicalElement)
HAS_ISOTOPE(atom:BiologicalAtom, isotope:Isotope)
PART_OF(atom:BiologicalAtom, molecule:BiologicalMolecule)
BONDED_TO(atom:BiologicalAtom, atom:BiologicalAtom, bond:ChemicalBond)
HAS_CHARGE(atom:BiologicalAtom, charge:Integer)
HAS_ROLE(atom:BiologicalAtom, role:BiologicalRole, context:BiologicalContext)
PARTICIPATES_IN(atom:BiologicalAtom, process:BiologicalProcess)
MEASURED_BY(atom:BiologicalAtom, measurement:Measurement)
SUPPORTED_BY(assertion:Assertion, observation:Observation)
DERIVED_FROM(assertion:Assertion, provenance:ProvenanceRecord)

5. FLOW OPERATORS
REGISTER_ATOM(input) -> BiologicalAtom | ValidationError
RESOLVE_ELEMENT(symbol, atomic_number) -> ChemicalElement | Ambiguous
CLASSIFY_ISOTOPE(Z, A) -> Isotope | ValidationError
ASSIGN_CONTEXT(atom, context) -> ContextualAtom
LINK_BOND(atom_a, atom_b, bond) -> Relationship
TRACE_COMPOSITION(molecule) -> Set[BiologicalAtom]
INFER_ROLE(atom, context, evidence) -> CandidateRole
VALIDATE_ATOM(atom) -> ValidationResult
CALCULATE_CONFIDENCE(evidence) -> ConfidenceRecord
EMIT_GRAPH(entity) -> TypedGraph

6. INVARIANTS AND VALIDATION
V1: atomic_number(element) = proton_count(atom).
V2: if mass_number known, mass_number >= atomic_number.
V3: neutron_count = mass_number - atomic_number, when both known.
V4: isotope identity requires the same proton count and specified neutron count.
V5: charge = proton_count - electron_count, when electron count is known.
V6: a chemical element is determined by proton number, not biological role.
V7: bond endpoints must exist as atom entities.
V8: atom participation in a molecule must have a consistent composition graph.
V9: claims about essentiality or biological function require a specified organism or context and evidence.
V10: unknown fields remain unknown; missing evidence must not be interpreted as negative evidence.
V11: measured isotope abundance and atomic mass are distinct from integer mass number.
V12: a formal charge assignment is a model of electron bookkeeping, not automatically a measured local charge.

7. INFERENCE RULES
R1: HAS_ISOTOPE(a,i) AND ATOMIC_NUMBER(i,z) => ATOMIC_NUMBER(a,z).
R2: PART_OF(a,m) AND PART_OF(m,s) => INDIRECT_COMPONENT_OF(a,s), with provenance path.
R3: BONDED_TO(a,b,k) => CONNECTED_IN_MOLECULAR_GRAPH(a,b), not necessarily directly biologically interacting outside that bond.
R4: OBSERVED_ROLE(a,r,c) AND SUPPORTED_BY(observation,e) => CANDIDATE_ROLE(a,r,c,e).
R5: SAME_ELEMENT(a,b) does not imply SAME_ISOTOPE(a,b), SAME_ATOM(a,b), or SAME_ROLE(a,b).
R6: EQUIVALENT_ELEMENT_SYMBOL(x,y) only when identifiers resolve to the same element and namespace.
R7: CONFIRMED_ISOTOPE(a,Z,A) AND CONFIRMED_ISOTOPE(b,Z,A) => SAME_NUCLIDE_TYPE(a,b), not identity of individual atoms.

8. SEMANTIC EQUIVALENCE
CANONICAL_ELEMENT_KEY = atomic_number.
CANONICAL_NUCLIDE_KEY = (atomic_number, mass_number).
CANONICAL_ATOM_INSTANCE_KEY = stable entity identifier scoped to observation or model.
NORMALISE labels and symbols against authoritative element nomenclature.
Never collapse element, isotope, ion, molecule and atom-instance nodes into one identity.
EQUIVALENCE_STATUS = {exact, contextual, related, distinct, unresolved}.

9. GRAPH EXECUTION
INPUT -> PARSE -> TYPE_CHECK -> RESOLVE_ELEMENT -> CHECK_ISOTOPE ->
ASSIGN_CONTEXT -> BUILD_RELATIONSHIPS -> VALIDATE -> INFER ->
ATTACH_PROVENANCE -> SCORE_CONFIDENCE -> VERSION -> PUBLISH.

If validation fails: quarantine assertion; preserve original input and diagnostic.
If evidence conflicts: retain competing assertions and mark conflict.
If context changes: recompute context-sensitive roles without changing atomic identity.

10. PROVENANCE
PROVENANCE := {
  source_uri, source_type, observation_id?, method?,
  retrieved_at?, asserted_at?, curator?, version?, licence?
}
Every derived relation retains parent assertion IDs and applied rule IDs.
Do not fabricate experimental provenance or citations.

11. CONFIDENCE
CONFIDENCE := {score: Real[0,1] | unknown, basis, evidence_ids, method, limitations}
Formal identity constraints can be deterministically checked against supplied data.
Empirical biological-role confidence depends on observations, methods and context.
No numeric confidence is assigned without a declared assessment method.

12. FLOW_HASH
FLOW_HASH := SHA256(canonical_serialisation({
  ontology_id, version, type_schema, rule_set, entity_ids,
  relationship_ids, provenance_references
}))
Canonical serialisation must define key ordering, Unicode normalisation and treatment of null values.
Hash identity verifies byte-equivalent canonical content; it does not establish scientific truth.

13. UPDATE_MODEL
ON new_observation: append provenance; revalidate affected claims.
ON corrected_element_data: version affected nodes and recompute dependent edges.
ON conflicting_evidence: preserve history; flag for review.
ON reclassification: migrate typed relationships with reversible change log.
Never silently overwrite historical assertions.

14. AI_CONSUMPTION
OUTPUT := {
  ontology: "Biological Atom Ontology",
  entity_types, entities, typed_relationships, inference_rules,
  validation_results, provenance, confidence, flow_hash, version
}
AI systems must distinguish observed facts, formal deductions and hypotheses.
Use uncertainty-aware responses; preserve biological context and evidence links.
Avoid inferring organism-level biological necessity from elemental presence alone.

15. EXAMPLE (ILLUSTRATIVE)
atom_1 = BiologicalAtom(id="example:atom:1", element=Carbon,
  atomic_number=6, mass_number=12, formal_charge=0,
  context="example:molecule-context", provenance="example:source:1",
  confidence={score:unknown, basis:"illustrative"})
VALIDATE_ATOM(atom_1) -> structurally valid given stated fields.
CLASSIFY_ISOTOPE(6,12) -> carbon-12.
This example is schematic and not a report of an observed biological atom.

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