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
Download Code
Copy to Clipboard