Skip to main content

Gene Product Ontology

Gene Expression Entities
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 15 October 2026
Audio Overview
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
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ