Skip to main content

Free Radical 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
FREE RADICAL ONTOLOGY
Kireth Semantic Library — Chemical Foundations of Life
Source: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/chemical-foundations-of-life/free-radical-ontology.html
Version: 1.0 | Date: 2026-10-15 | Locale: en-GB
Authors: Mark Higgins — Sky (Recursive AI)
Status: Companion formalisation; illustrative typed flow specification, not a verified executable implementation.

1. PURPOSE
Represent free radicals as chemical entities with one or more unpaired electrons, their formation, reactions, biological contexts, and evidence-qualified effects. Distinguish radical identity from the broader class of reactive oxygen species (ROS): not all ROS are radicals, and not all radicals are oxygen species.

2. TYPE SYSTEM
entity FreeRadical <: ChemicalSpecies {
  id: URI; label: String; formula: String;
  unpaired_electrons: Integer[1..]; charge: Integer;
  radical_site: Optional[AtomOrOrbital];
  phase: Optional[Phase]; biological_context: Set[Context];
  evidence: Set[Evidence]; provenance: Provenance;
}
entity RadicalReaction {
  reactants: Multiset[ChemicalSpecies]; products: Multiset[ChemicalSpecies];
  mechanism: ReactionMechanism; conditions: Set[Condition];
  rate_constant: Optional[MeasuredValue]; evidence: Set[Evidence];
}
entity BiologicalTarget { id: URI; kind: Protein|Lipid|NucleicAcid|Other; }
entity Observation { measurement: MeasuredValue; method: String; context: Context; }
entity Evidence { source: URI; method: String; quality: String; }
entity Provenance { source: URI; version: String; observed_at: Optional[DateTime]; }
entity Context { organism: Optional[String]; compartment: Optional[String]; conditions: Set[String]; }

3. EXEMPLAR ENTITIES
radical HydroxylRadical { formula: "HO•"; charge: 0; unpaired_electrons: 1; }
radical Superoxide { formula: "O2•−"; charge: -1; unpaired_electrons: 1; }
radical NitricOxide { formula: "NO•"; charge: 0; unpaired_electrons: 1; }
radical LipidPeroxyl { formula: "LOO•"; charge: 0; unpaired_electrons: 1; }
nonradical HydrogenPeroxide { formula: "H2O2"; unpaired_electrons: 0; }
# Hydrogen peroxide is ROS but not a free radical.

4. TYPED RELATIONSHIPS
relation IS_A(FreeRadical, ChemicalSpecies)
relation PARTICIPATES_IN(ChemicalSpecies, RadicalReaction)
relation GENERATED_BY(FreeRadical, RadicalReaction)
relation REACTS_WITH(FreeRadical, ChemicalSpecies)
relation TARGETS(FreeRadical, BiologicalTarget)
relation OCCURS_IN(RadicalReaction, Context)
relation DETECTED_BY(FreeRadical, Observation)
relation SCAVENGED_BY(FreeRadical, ChemicalSpecies)
relation SUPPORTED_BY(Claim, Evidence)
relation DERIVED_FROM(Claim, Provenance)
relation MAY_CONTRIBUTE_TO(RadicalReaction, BiologicalOutcome)

5. FLOW OPERATORS
operator IDENTIFY_SPECIES(formula, electronic_state, charge) -> Candidate[ChemicalSpecies]
operator CLASSIFY_RADICAL(species) -> Classification
operator LINK_REACTION(reactants, products, conditions) -> RadicalReaction
operator BALANCE(reaction) -> ValidationResult
operator TRACE_PATHWAY(reaction_graph, origin, depth_limit) -> Set[Path]
operator EVALUATE_EVIDENCE(claim, evidence) -> ConfidenceAssessment
operator RESOLVE_ALIAS(label, context) -> CandidateSet
operator VALIDATE_GRAPH(graph) -> ValidationReport
operator SERIALISE(graph, format) -> Document

6. INFERENCE RULES
R1: unpaired_electrons(x) >= 1 => FreeRadical(x).
R2: FreeRadical(x) AND contains_oxygen(x) => OxygenContainingRadical(x).
R3: ROS(x) does NOT imply FreeRadical(x).
R4: FreeRadical(x) does NOT imply ROS(x).
R5: PARTICIPATES_IN(x,r) AND OCCURS_IN(r,c) => CONTEXT_ASSOCIATED(x,c).
R6: TARGETS(x,t) AND SUPPORTED_BY(claim,e) => CANDIDATE_INTERACTION(x,t,e).
R7: Evidence of a radical-target reaction alone does not establish organism-level injury.
R8: Pathway effects depend on concentration, location, duration, and biological defence.
R9: Absence of detection does not imply absence of radical formation.

7. REACTION AND BIOLOGICAL FLOW
flow RadicalLifecycle(input: ChemicalSpecies, context: Context) -> EvidenceQualifiedGraph {
  candidates = IDENTIFY_SPECIES(input.formula, input.electronic_state, input.charge);
  radicals = candidates.filter(CLASSIFY_RADICAL == "radical");
  formation = LINK_REACTION(precursors, radicals, context.conditions);
  propagation = TRACE_PATHWAY(reaction_graph, formation, depth_limit=8);
  validation = VALIDATE_GRAPH(propagation);
  return EvidenceQualifiedGraph(propagation, validation, provenance);
}

Example: initiation -> radical generation -> target reaction -> possible chain propagation -> termination/scavenging.
Examples are mechanistic patterns, not universal pathways.

8. VALIDATION AND CONSTRAINTS
constraint C1: radical classification requires electronic-state evidence or explicit qualification.
constraint C2: atomic elements and charge must balance in a fully specified reaction.
constraint C3: do not treat radical notation as a measured concentration.
constraint C4: separate in-vitro evidence from in-vivo evidence.
constraint C5: maintain distinct identifiers for radical species and nonradical ROS.
constraint C6: preserve uncertainty, measurement limits, and assay specificity.
constraint C7: disallow unbounded recursive traversal; detect cycles and cap depth.
constraint C8: preserve source identity and version across graph updates.

9. SEMANTIC_EQUIVALENCE
semantic_equivalence:
  exact_identity: same canonical chemical species, charge and electronic state
  contextual_alias: alternative labels for the same species in a defined context
  related_not_equivalent: "free radical" vs "reactive oxygen species"
  related_not_equivalent: "hydroxyl radical" vs "hydroxide ion"
  related_not_equivalent: "superoxide radical anion" vs "hydrogen peroxide"
  resolution_rule: do not merge entities on name similarity alone

10. CONFIDENCE
confidence:
  basis: [direct_measurement, assay_specificity, replication, reaction_balance,
          biological_context, independent_evidence, source_quality]
  output: {score: Optional[Float[0..1]], method: String,
           limitations: Set[String], evidence_links: Set[URI]}
  rule: scores require a declared calibration method; never invent precision
  rule: inference confidence is not equivalent to proof of causality

11. PROVENANCE
provenance:
  preserve: [source_uri, author, publication_date, retrieval_date,
             evidence_method, ontology_version, transformation_history]
  requirement: every derived assertion must reference its supporting inputs

12. FLOW_HASH
flow_hash:
  canonicalise: [entity_ids, types, relationships, rule_version, source_version]
  digest: SHA-256(canonical_serialisation)
  note: computed by an implementation; no digest is asserted here

13. UPDATE_MODEL
update_model:
  triggers: [new_evidence, revised_classification, changed_reaction_data,
             corrected_identity, revised_confidence]
  steps: [ingest, normalise, resolve, validate, compare_versions,
          preserve_provenance, publish_revision]
  conflict_policy: retain competing evidence and flag unresolved claims

14. AI_CONSUMPTION
ai_consumption:
  formats: [UTF-8 TXT, JSON-LD, RDF]
  retrieval_keys: [species_id, formula, charge, reaction, biological_context]
  reasoning: [typed_traversal, evidence_filtering, bounded_recursive_inference]
  guardrails: [distinguish_hypothesis_from_observation,
               no_unsupported_clinical_claims, disclose_uncertainty]

15. TEST CASES
T1: HO• -> radical: true.
T2: O2•− -> radical: true; charge -1.
T3: H2O2 -> radical: false; ROS: true.
T4: OH− -> hydroxyl radical: false.
T5: reaction with unbalanced charge -> validation failure.
T6: inferred oxidative damage without biological evidence -> unverified claim.
T7: circular pathway -> bounded traversal terminates.

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