FLOW ALGEBRA
GENE PRODUCT ONTOLOGY
Kireth Semantic Library | Biological Entities | Gene Expression Entities
Version: 1.0 | Date: 2026-10-15 | Encoding: UTF-8
Source: https://kirethresearch.org/booksai-core/entity-graph/biological-entities/gene-expression-entities/gene-product-ontology.html
Authors: Mark Higgins — Sky (Recursive AI)
Status: Domain-grounded formalisation; source chapter not independently verified.
# 01 — PURPOSE
flow "GeneProductOntology" v1.0
purpose: represent the molecular products of gene expression, their origins,
processing, functions, provenance, and context-dependent evidence.
namespace: kireth.bio.gene_expression.gene_product
parent: GeneExpressionEntityOntology
# 02 — TYPE SYSTEM
type Gene = GeneticEntity
type Transcript = RNAEntity
type Protein = PolypeptideEntity
type FunctionalRNA = RNAEntity
type GeneProduct = Protein | FunctionalRNA
type Precursor = PrecursorRNA | PrecursorPolypeptide
type MatureProduct = MatureRNA | MatureProtein
type Isoform = TranscriptIsoform | ProteinIsoform
type ExpressionEvent = BiologicalProcess
type ProcessingEvent = BiologicalProcess
type FunctionalAnnotation = EvidenceBackedAssertion
type CellContext = {organism, cell_type?, tissue?, condition?, time?}
type Evidence = {source_id, method?, date?, quality?, confidence?}
# 03 — CORE ENTITIES
entity GeneProduct:
id: StableIdentifier
product_type: GeneProductType
source_gene: GeneID?
source_transcript: TranscriptID?
sequence: Sequence?
molecular_form: MolecularForm?
processing_state: ProcessingState
isoform_id: IsoformID?
location: CellularLocation?
function: FunctionalAnnotation[]
context: CellContext?
evidence: Evidence[]
entity ProteinProduct extends GeneProduct:
amino_acid_sequence: AminoAcidSequence?
domains: ProteinDomain[]
post_translational_modifications: Modification[]
complex_membership: ProteinComplexID[]
entity RNAProduct extends GeneProduct:
nucleotide_sequence: RNASequence?
rna_class: RNAClass
structure: RNASecondaryStructure?
rna_modifications: Modification[]
# 04 — CLASSIFICATION
class GeneProductType:
- protein_coding_product
- functional_non_coding_rna
- precursor_product
- mature_product
- isoform_specific_product
class RNAClass:
- ribosomal_rna
- transfer_rna
- micro_rna
- small_nuclear_rna
- small_nucleolar_rna
- long_non_coding_rna
- other_functional_rna
rule classification_01:
if product is translated polypeptide then type = ProteinProduct
rule classification_02:
if RNA itself performs an annotated biological role then type = RNAProduct
rule classification_03:
transcription alone does not establish that an RNA is a functional gene product
rule classification_04:
a single gene may yield multiple distinct products through alternative
transcription, splicing, RNA processing, or translation
# 05 — TYPED RELATIONSHIPS
relation encoded_by(GeneProduct, Gene)
relation transcribed_from(Transcript, Gene)
relation translated_from(ProteinProduct, Transcript)
relation processed_from(MatureProduct, Precursor)
relation has_isoform(GeneProduct, Isoform)
relation participates_in(GeneProduct, BiologicalProcess)
relation localised_to(GeneProduct, CellularLocation)
relation interacts_with(GeneProduct, MolecularEntity)
relation has_function(GeneProduct, FunctionalAnnotation)
relation observed_in(GeneProduct, CellContext)
relation supported_by(Assertion, Evidence)
relation modified_by(GeneProduct, ProcessingEvent)
relation component_of(GeneProduct, MolecularComplex)
# 06 — EXPRESSION FLOWS
flow transcription:
input: Gene, TranscriptionMachinery, CellContext
process: RNA_synthesis
output: PrimaryTranscript
invariant: transcript derives from a DNA template or specified alternative template
flow rna_maturation:
input: PrimaryTranscript
process: applicable_capping_splicing_cleavage_modification
output: MatureRNA
guard: processing steps depend on organism and RNA class
flow translation:
input: CodingTranscript, Ribosome, ChargedTRNAs
process: initiation -> elongation -> termination
output: NascentPolypeptide
guard: valid coding region and translation context
flow protein_maturation:
input: NascentPolypeptide
process: folding -> optional_cleavage -> optional_modification -> trafficking
output: MatureProtein
guard: not every protein undergoes every processing step
# 07 — BIOLOGICAL INVARIANTS
invariant product_origin:
every product-origin assertion identifies a gene, transcript, or documented exception
invariant product_identity:
identical gene identifiers do not imply identical mature products
invariant context_dependence:
abundance, localisation, and activity may vary by cell state and condition
invariant functional_evidence:
sequence similarity alone does not prove molecular function
invariant transcript_distinction:
a transcript is not automatically a translated protein
invariant modification_distinction:
post-translational modification can change a protein form without changing its gene
# 08 — REASONING RULES
rule R1:
encoded_by(p,g) AND translated_from(p,t) AND transcribed_from(t,g)
=> origin_consistent(p,g,t)
rule R2:
processed_from(m,precursor) AND encoded_by(precursor,g)
=> candidate_encoded_by(m,g)
require: verify lineage and processing provenance
rule R3:
has_isoform(p,i) AND isoform_specific_sequence(i,s)
=> sequence_variant_of(p,i,s)
rule R4:
supported_by(function_claim,e) AND evidence_quality(e) = low
=> flag_for_review(function_claim)
rule R5:
observed_in(p,c1) AND observed_in(p,c2)
=> do_not_assume_equal_abundance(p,c1,c2)
# 09 — RECURSIVE SEMANTIC FLOW
recursive resolve_product(query, depth, visited):
if depth <= 0: return unresolved("depth_limit")
if query.id in visited: return unresolved("cycle_detected")
visited := visited UNION {query.id}
entity := resolve_identifier(query)
verify(entity.product_type, entity.evidence)
expand(encoded_by, transcribed_from, translated_from, processed_from)
expand(has_isoform, has_function, component_of, observed_in)
return aggregate_with_provenance(entity, depth - 1, visited)
# 10 — CONFIDENCE
CONFIDENCE:
range: [0.0, 1.0]
dimensions: [identity, origin, classification, function, localisation]
model: calibrated_evidence_aggregation
requirements:
- retain source-level scores and provenance
- do not equate prediction with experimental validation
- do not treat missing evidence as evidence of absence
- distinguish product identification from functional annotation
# 11 — SEMANTIC_EQUIVALENCE
SEMANTIC_EQUIVALENCE:
exact_identity: same stable product identifier and molecular form
gene_level_equivalence: shared gene origin only
isoform_equivalence: requires compatible transcript/protein isoform identity
sequence_equivalence: requires explicit sequence comparison and scope
functional_similarity: not sufficient for identity
cross_database_mapping: retain accession version and mapping evidence
# 12 — FLOW_HASH
FLOW_HASH:
algorithm: SHA-256
canonicalise:
- normalise Unicode and line endings
- sort unordered relationship sets
- preserve biological sequence order
- include ontology version and typed schema
output: sha256(canonical_payload)
note: hash is computed by the consuming implementation, not asserted here
# 13 — UPDATE_MODEL
UPDATE_MODEL:
triggers:
- new transcript or protein isoform
- corrected gene-product mapping
- new functional or localisation evidence
- reference genome or annotation version change
- revised molecular classification
actions:
- validate changed assertions
- preserve previous version and evidence
- recompute affected relationships
- invalidate stale inferred conclusions
- recalculate confidence and FLOW_HASH
policy: append provenance; never silently overwrite conflicting evidence
# 14 — AI_CONSUMPTION
AI_CONSUMPTION:
format: typed_semantic_graph
entry_entity: GeneProduct
required_fields: [id, product_type, evidence]
recommended_fields: [source_gene, source_transcript, isoform_id, context]
capabilities:
- entity_resolution
- provenance_aware_retrieval
- gene_to_product_tracing
- product_isoform_disambiguation
- context_sensitive_functional_reasoning
- uncertainty_reporting
safety:
- mark hypothetical associations as inferred
- avoid clinical conclusions without validated evidence
- preserve organism and cell-context boundaries
# 15 — VALIDATION
validate:
- stable identifiers must be namespace-qualified
- every typed relation must satisfy domain and range constraints
- no inference may silently convert predicted function into known function
- provenance is required for biological assertions
- missing isoform information must remain explicit
- report unresolved mappings rather than fabricating product identities
# 16 — EXAMPLE (ILLUSTRATIVE)
example:
gene: G1
transcript: T1
protein: P1
assertions:
- transcribed_from(T1,G1)
- translated_from(P1,T1)
- encoded_by(P1,G1)
interpretation: a coding transcript links a gene to a protein product
status: schematic, not a database record
# 17 — OUTPUT CONTRACT
output:
ontology: GeneProductOntology
version: 1.0
graph: typed_entities_and_relations
reasoning: evidence_qualified
confidence: multidimensional
semantic_equivalence: scope_aware
flow_hash: implementation_computed
update_model: versioned
ai_consumption: enabled
END FLOW ALGEBRA
Download Code
Copy to Clipboard