Skip to main content

Messenger RNA Ontology

Genetic Entities
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 15 October 2026
Audio Overview
FLOW ALGEBRA
TITLE: Messenger RNA Ontology
VERSION: 1.0
DOMAIN: Biological Entities / Genetic Entities
SOURCE_URL: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/genetic-entities/messenger-rna-ontology.html
STATUS: Domain-grounded ontology draft; source page content not independently verified
AUTHORS: Mark Higgins — Sky (Recursive AI)
SITE: https://kirethresearch.org

# PURPOSE
flow "MessengerRNAOntology" v1.0
purpose: Represent messenger RNA (mRNA) entities, structures, lifecycle events, molecular interactions, evidence, and uncertainty in a typed, traceable semantic graph.

# TYPES
type Entity = { id:str, label:str, taxon:str?, provenance:str? }
type MessengerRNA extends Entity = { sequence:str?, length_nt:int?, strand:str?, transcript_id:str?, biotype:str, status:str? }
type Gene extends Entity = { gene_id:str?, genome_assembly:str? }
type DNARegion extends Entity = { chromosome:str?, start:int?, end:int?, strand:str?, assembly:str? }
type Exon extends Entity = { ordinal:int?, coordinates:str? }
type Intron extends Entity = { ordinal:int?, coordinates:str? }
type UTR5 extends Entity = { coordinates:str? }
type UTR3 extends Entity = { coordinates:str? }
type CodingSequence extends Entity = { frame:int?, start_codon:str?, stop_codon:str? }
type PolyATail extends Entity = { length_nt:int?, modification:str? }
type Cap5 extends Entity = { chemistry:str? }
type Protein extends Entity = { accession:str? }
type Ribosome extends Entity = { compartment:str? }
type RNAProteinComplex extends Entity = { components:list[str] }
type RNAProcessingEvent extends Entity = { kind:str, compartment:str?, timestamp:str? }
type TranslationEvent extends Entity = { reading_frame:int?, outcome:str? }
type DegradationEvent extends Entity = { pathway:str?, trigger:str? }
type Evidence = { source:str, method:str?, observed_at:str?, confidence:float }
type Relation = { subject:str, predicate:str, object:str, evidence:Evidence? }

# ENTITY CLASSES
classes:
  - pre_mRNA
  - mature_mRNA
  - monocistronic_mRNA
  - polycistronic_mRNA
  - alternatively_spliced_mRNA
  - capped_mRNA
  - polyadenylated_mRNA
  - non_polyadenylated_mRNA
  - mitochondrial_mRNA
  - chloroplast_mRNA
  - bacterial_mRNA
  - viral_mRNA

# RELATION VOCABULARY
relations:
  - transcribed_from
  - product_of_gene
  - contains_exon
  - contains_coding_sequence
  - contains_5_prime_UTR
  - contains_3_prime_UTR
  - contains_5_prime_cap
  - contains_poly_A_tail
  - derived_from_pre_mRNA
  - processed_by
  - spliced_by
  - transported_to
  - bound_by
  - translated_by
  - encodes_protein
  - regulated_by
  - degraded_by
  - has_isoform
  - has_sequence_variant
  - supported_by_evidence

# STRUCTURAL RULES
rule R01: MessengerRNA(m) AND transcribed_from(m,d) -> DNARegion(d) OR RNA_Template(d)
rule R02: mature_mRNA(m) AND eukaryotic_nuclear(m) -> typically_has(m, Cap5)
rule R03: mature_mRNA(m) AND eukaryotic_nuclear(m) -> often_has(m, PolyATail)
rule R04: contains_coding_sequence(m,c) -> CodingSequence(c)
rule R05: contains_5_prime_UTR(m,u) -> UTR5(u)
rule R06: contains_3_prime_UTR(m,u) -> UTR3(u)
rule R07: encodes_protein(m,p) -> Protein(p)
rule R08: has_isoform(g,m1) AND has_isoform(g,m2) AND m1 != m2 -> distinct_transcript_isoforms(m1,m2)
rule R09: exon_inclusion(m,e) AND validated_splice_junction(m,e) -> supports_splice_structure(m,e)
rule R10: translation_detected(m,p) -> supports_relation(m,encodes_protein,p)

# LIFECYCLE
process transcription:
  input: DNA_template_or_RNA_template
  output: RNA_transcript
  constraints: template_type_must_be_recorded
process capping:
  input: nascent_eukaryotic_nuclear_pre_mRNA
  output: 5_prime_capped_transcript
process splicing:
  input: spliceable_pre_mRNA
  output: exon_joined_RNA
  note: alternative_splicing_can_generate_multiple_isoforms
process cleavage_polyadenylation:
  input: eligible_pre_mRNA
  output: processed_3_prime_end
  note: not_all_mRNAs_are_polyadenylated
process export:
  input: export_eligible_nuclear_mRNA
  output: cytoplasmic_mRNA
process translation:
  input: translation_competent_mRNA
  actors: [ribosome, tRNA, translation_factors]
  output: polypeptide
process turnover:
  input: mRNA
  routes: [deadenylation, decapping, exonucleolytic_decay, endonucleolytic_decay, nonsense_mediated_decay]
  output: degraded_RNA_fragments

# INVARIANTS AND VALIDATION
validate V01: sequence_if_present uses alphabet A,C,G,U,N and documented ambiguity codes
validate V02: length_nt_if_present >= 0
validate V03: transcript_coordinates_reference_a_named_genome_assembly
validate V04: exon_order_respects_transcript_orientation
validate V05: CDS_frame in [0,1,2] when specified
validate V06: CDS_stop_codon_if_present in [UAA,UAG,UGA] under standard_code; allow documented alternative_genetic_codes
validate V07: transcript_identity_includes_species_and_reference_version
validate V08: do_not_infer_translation_from_transcript_detection_alone
validate V09: distinguish_transcript_abundance_from_protein_abundance
validate V10: distinguish_transcriptional_regulation_from_post_transcriptional_regulation

# REASONING
infer I01: transcribed_from(m,d) AND belongs_to_gene(d,g) -> candidate_product_of_gene(m,g)
infer I02: splicing_event(pre,mature) AND transcript_of(pre,g) -> candidate_transcript_of(mature,g)
infer I03: validated_CDS(m,c) AND translation_evidence(c,p) -> supported_encodes_protein(m,p)
infer I04: premature_termination_codon(m) AND appropriate_exon_junction_context(m) -> candidate_nonsense_mediated_decay_target(m)
infer I05: binding_evidence(m,r) AND regulatory_effect_evidence(r,m) -> supported_regulation(m,r)

# RECURSIVE REASONING
recursive_flow:
  seed: mRNA_entity
  expand: [gene, DNA_region, exons, isoforms, regulators, ribosomes, protein_products, degradation_events]
  max_depth: 6
  visited_set: true
  cycle_handling: preserve_edge_and_stop_expansion
  termination: no_new_verified_relations OR depth_limit
  provenance_propagation: retain_per_edge

# CONFIDENCE
CONFIDENCE:
  range: [0.0,1.0]
  evidence_priority: [direct_sequence_validation, curated_reference, experimental_measurement, computational_prediction, unverified_assertion]
  combine: weighted_evidence_with_dependency_check
  conflict_policy: retain_conflicting_assertions_with_provenance
  missing_evidence: unknown_not_false
  inferred_relations: label_as_inferred

# SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
  canonical_label: messenger RNA
  aliases: [mRNA, messenger ribonucleic acid]
  exact_match_requires: [same_transcript_identity, same_reference_version, compatible_sequence]
  related_not_equivalent: [pre_mRNA, mature_mRNA, coding_sequence, gene, transcript_isoform, protein]
  external_mappings: [Sequence_Ontology, Gene_Ontology, Ensembl, RefSeq, RNAcentral]
  mapping_status: require_verified_accession_or_term_identifier

# FLOW HASH
FLOW_HASH:
  algorithm: SHA-256
  canonicalization: UTF-8_NFC_normalized_keys_sorted_stable_relation_order
  hash_inputs: [ontology_version, typed_entities, relations, rules, evidence_identifiers]
  exclude: [display_timestamp, volatile_UI_metadata]
  digest: COMPUTE_AT_EXECUTION

# UPDATE MODEL
UPDATE_MODEL:
  version_policy: semantic_versioning
  events: [new_transcript, revised_sequence, changed_annotation, new_isoform, revised_evidence, deprecated_identifier]
  preserve_history: true
  invalidation: recompute_affected_inferences_and_flow_hash
  provenance_required: true
  rollback: supported_via_version_snapshot

# AI CONSUMPTION
AI_CONSUMPTION:
  machine_readable: true
  required_fields: [entity_id, entity_type, label, relationships, provenance, confidence]
  optional_fields: [sequence, taxon, assembly, transcript_id, evidence]
  outputs: [typed_graph, semantic_search_index, explainable_inference_trace, versioned_export]
  guardrails: [no_unverified_identity_merges, no_protein_inference_without_support, preserve_uncertainty, flag_reference_mismatch]
  retrieval_strategy: entity_and_relation_aware

# EXAMPLE INSTANCE (ILLUSTRATIVE ONLY)
entity:
  id: example:mRNA_001
  type: mature_mRNA
  label: Example protein-coding transcript
  taxon: example_species
  transcript_id: example_transcript_001
  biotype: protein_coding
  provenance: illustrative_not_a_real_reference_record
relations:
  - [example:mRNA_001, product_of_gene, example:gene_001]
  - [example:mRNA_001, contains_coding_sequence, example:CDS_001]
  - [example:mRNA_001, translated_by, example:ribosome_001]

# QUALITY GATES
quality:
  - all_references_resolvable_or_explicitly_external
  - all_inferred_edges_marked
  - no_unjustified_equivalence
  - evidence_and_confidence_traceable
  - assembly_and_species_context_recorded
  - biological_exceptions_preserved
  - version_and_hash_reproducible

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