Skip to main content

Experimental Metadata Ontology

Scientific Metadata
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA

Ontology: Experimental Metadata Ontology
Domain: Metadata Ontologies > Scientific Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/scientific-metadata/experimental-metadata-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "ExperimentalMetadataOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: ScientificMetadata
  subject: ExperimentalMetadata
  purpose:
    - represent metadata describing scientific experiments
    - preserve experimental design, conditions, variables, methods, and results
    - support reproducibility, validation, comparison, and reuse
    - connect experiments with samples, instruments, observations, and provenance
    - enable machine-readable reasoning over experimental processes

# ---------- CORE ENTITY ----------
entity ExperimentalMetadata:
  type: ScientificMetadata
  describes: Experiment
  may_include:
    - experiment_identifier
    - title
    - objective
    - hypothesis
    - protocol
    - experimental_design
    - independent_variable
    - dependent_variable
    - controlled_variable
    - experimental_condition
    - control_group
    - treatment_group
    - sample
    - replicate
    - instrument
    - measurement
    - observation
    - result
    - uncertainty
    - researcher
    - temporal_context
    - spatial_context
    - provenance
    - version

entity Experiment:
  type: ScientificResource
  executes: ExperimentalProtocol
  tests_or_investigates:
    - Hypothesis
    - ResearchQuestion

entity ExperimentalProtocol:
  type: ScientificMethod
  defines:
    - procedure
    - sequence
    - materials
    - conditions
    - measurement_method
    - analysis_method

entity ExperimentalDesign:
  type: MethodologicalStructure
  may_include:
    - randomisation
    - blinding
    - blocking
    - factorial_structure
    - replication
    - control_structure

entity ExperimentalCondition:
  type: ContextEntity
  describes: ConditionsUnderWhichExperimentOccurs

# ---------- VARIABLES ----------
entity IndependentVariable:
  type: ExperimentalVariable
  role: ManipulatedOrExplanatoryVariable

entity DependentVariable:
  type: ExperimentalVariable
  role: MeasuredResponseVariable

entity ControlledVariable:
  type: ExperimentalVariable
  role: HeldConstantOrControlledFactor

rule variable_roles:
  variable roles MUST be interpreted within specific Experiment
  because same scientific variable MAY have different roles in different experiments

# ---------- GROUPS ----------
entity ControlGroup:
  type: ExperimentalGroup
  role: ReferenceOrBaselineGroup

entity TreatmentGroup:
  type: ExperimentalGroup
  role: ReceivesDefinedInterventionOrCondition

rule group_membership:
  ExperimentalUnit SHOULD have explicit group membership
  where group comparison is part of design

rule control_semantics:
  ControlGroup MUST NOT be assumed untreated
  unless protocol defines untreated baseline

# ---------- SAMPLE / EXPERIMENTAL UNIT ----------
entity ExperimentalUnit:
  type: ScientificEntity
  receives: ExperimentalCondition

entity Sample:
  type: ScientificSample
  may_be_derived_from: ExperimentalUnit

rule sample_identity:
  each Sample SHOULD have stable identifier where traceability is required

rule sample_lineage:
  derived samples SHOULD preserve parent sample or source ExperimentalUnit relationship

# ---------- REPLICATION ----------
entity Replicate:
  type: ExperimentalRepetition
  may_be:
    - biological_replicate
    - technical_replicate
    - experimental_replicate

rule replicate_identity:
  replicates SHOULD remain individually identifiable

rule replicate_distinction:
  technical_replicate != biological_replicate
  unless experiment explicitly defines equivalent semantics

# ---------- RELATIONSHIPS ----------
relationships:
  ExperimentalMetadata -> DESCRIBES -> Experiment
  Experiment -> USES_PROTOCOL -> ExperimentalProtocol
  Experiment -> HAS_DESIGN -> ExperimentalDesign
  Experiment -> MAY_TEST -> Hypothesis
  Experiment -> HAS_VARIABLE -> IndependentVariable
  Experiment -> HAS_VARIABLE -> DependentVariable
  Experiment -> MAY_HAVE -> ControlledVariable
  Experiment -> HAS_CONDITION -> ExperimentalCondition
  Experiment -> MAY_HAVE_CONTROL -> ControlGroup
  Experiment -> MAY_HAVE_TREATMENT -> TreatmentGroup
  ExperimentalGroup -> CONTAINS -> ExperimentalUnit
  Experiment -> USES -> Sample
  Experiment -> MAY_HAVE -> Replicate
  Experiment -> MAY_USE -> ScientificInstrument
  Experiment -> PRODUCES -> Observation
  Experiment -> PRODUCES -> Measurement
  Experiment -> PRODUCES -> ExperimentalResult
  ExperimentalMetadata -> MAY_REFERENCE -> Provenance

# ---------- PROTOCOL ----------
rule protocol_traceability:
  ExperimentalProtocol SHOULD be sufficiently specified or referenced
  to support reproducibility

rule protocol_version:
  IF protocol changes materially
  THEN create distinguishable protocol version

rule procedure_order:
  IF procedure sequence affects result
  THEN preserve ordered experimental steps

rule protocol_deviation:
  deviations from protocol SHOULD be explicitly recorded

# ---------- CONDITIONS ----------
rule condition_context:
  ExperimentalCondition MAY include:
    - temperature
    - pressure
    - humidity
    - concentration
    - duration
    - environmental_state
    - equipment_setting
    - treatment_level

rule condition_units:
  quantitative conditions SHOULD declare compatible units

rule condition_change:
  time-varying experimental conditions SHOULD preserve temporal sequence

# ---------- MEASUREMENT ----------
entity ExperimentalMeasurement:
  subtype_of: Measurement
  occurs_within: Experiment

rule measurement_context:
  ExperimentalMeasurement SHOULD identify:
    - variable
    - value
    - unit
    - method
    - time_or_sequence_position
    - sample_or_experimental_unit

rule measurement_uncertainty:
  uncertainty SHOULD remain associated with measurement value

# ---------- RESULTS ----------
entity ExperimentalResult:
  type: ScientificResult
  derived_from:
    - Observation
    - Measurement
  may_include:
    - summary_statistic
    - effect_estimate
    - uncertainty
    - significance_measure
    - interpretation

rule result_traceability:
  ExperimentalResult SHOULD remain traceable to underlying observations and measurements

rule result_not_interpretation:
  measured_or_computed_result != scientific_interpretation

# ---------- RANDOMISATION / BLINDING ----------
rule randomisation:
  IF ExperimentalDesign uses randomisation
  THEN randomisation method and allocation SHOULD be preserved

rule blinding:
  IF blinding is used
  THEN blinding level SHOULD be explicit

rule allocation_concealment:
  allocation concealment SHOULD be represented separately from blinding where relevant

# ---------- TEMPORAL CONTEXT ----------
rule experiment_time:
  Experiment SHOULD preserve:
    - start_time
    - end_time
    - measurement_times
  where temporal order affects interpretation

rule duration:
  IF start_time AND end_time exist
  THEN duration = end_time - start_time

# ---------- PROVENANCE ----------
rule provenance:
  ExperimentalMetadata SHOULD preserve:
    - researcher_or_agent
    - laboratory_or_environment
    - source_samples
    - instruments
    - protocol_version
    - software
    - processing_steps
    - timestamps

rule derived_result_provenance:
  derived results MUST retain links to source measurements where traceability is required

# ---------- REPRODUCIBILITY ----------
rule reproducibility:
  reproducibility support SHOULD evaluate availability of:
    - protocol
    - experimental_design
    - variable_definitions
    - conditions
    - samples
    - instruments
    - calibration
    - raw_measurements
    - analysis_method
    - software
    - provenance

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_experiment
    - interpretable_experimental_context

  validate_if_present:
    - hypothesis
    - protocol
    - design
    - variables
    - conditions
    - groups
    - samples
    - replicates
    - instruments
    - measurements
    - results
    - provenance

  reject:
    - contradictory_variable_roles within same declared role model
    - invalid_group_membership
    - broken_sample_lineage where required
    - measurement_without_interpretable_variable
    - incompatible_condition_units
    - result_without_traceable_source where traceability is mandatory
    - impossible_temporal_order

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "experimental metadata" ~= "experiment metadata"
  "experimental protocol" ~= "experiment protocol"
  "experimental condition" ~= "test condition" WHEN scientific experiment semantics apply
  "response variable" ~= "dependent variable" WHEN design semantics match
  "explanatory variable" ~= "independent variable" WHEN design semantics match
  "experimental repetition" ~= "replicate" WHEN replication semantics match

  PRESERVE distinctions:
    experiment != observation
    protocol != experimental_design
    independent_variable != dependent_variable
    control_group != untreated_group
    sample != experimental_unit
    biological_replicate != technical_replicate
    result != interpretation
    randomisation != blinding

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_experimental_metadata:
    score: 1.00

  explicit_protocol:
    score: 1.00

  explicit_variable_role:
    score: 1.00

  traceable_result:
    score: 0.95

  inferred_variable_role:
    score: 0.80

  inferred_group_role:
    score: 0.75

  incomplete_experimental_context:
    score: <= 0.60
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_protocol_update:
    - preserve previous protocol version
    - create new version
    - reassess affected experiments
    - update provenance

  on_condition_update:
    - preserve previous condition state where relevant
    - validate units
    - update temporal condition sequence
    - reassess dependent measurements

  on_measurement_update:
    - preserve original measurement
    - validate variable and unit
    - update uncertainty
    - update dependent results
    - record provenance

  on_result_revision:
    - preserve previous result version
    - trace revised result to source data
    - record analysis method changes
    - update provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - experimental_entities
    - relationships
    - protocol_rules
    - variable_rules
    - condition_rules
    - measurement_rules
    - reproducibility_rules
    - validation
    - semantic_equivalence
    - confidence
    - update_model

  canonicalisation:
    - normalise_whitespace
    - preserve_case_sensitive_identifiers
    - sort_unordered_property_sets
    - preserve_rule_order

  output:
    deterministic_semantic_hash

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  interpret_as:
    - scientific metadata ontology
    - experimental design model
    - experimental provenance structure
    - reproducibility reasoning model

  operations:
    - identify experiments
    - resolve protocols
    - interpret experimental design
    - classify variable roles
    - resolve experimental groups
    - trace samples and replicates
    - interpret conditions
    - validate measurements
    - trace results to observations
    - assess reproducibility metadata
    - preserve provenance
    - expose uncertainty

  constraints:
    - do_not_invent_experimental_conditions
    - do_not_assume_control_group_is untreated
    - do_not_merge replicate types
    - do_not_present_derived_result_as raw measurement
    - do_not_discard protocol deviations
    - preserve source measurements and sample lineage

# ---------- QUERY MODEL ----------
query:
  input:
    - experiment
    - hypothesis
    - protocol
    - variable
    - condition
    - group
    - sample
    - replicate
    - instrument
    - result

  resolve:
    1. identify Experiment
    2. retrieve ExperimentalMetadata
    3. resolve protocol and design
    4. classify variables
    5. resolve groups and experimental units
    6. trace samples and replicates
    7. evaluate conditions
    8. retrieve measurements and observations
    9. trace results
    10. evaluate provenance and confidence

  output:
    - experiment
    - protocol
    - design
    - variables
    - conditions
    - samples
    - measurements
    - results
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF variable is deliberately manipulated
  AND response is measured against it
  THEN infer IndependentVariable candidate
  WITH confidence <= 0.80

  IF variable is measured as experiment response
  THEN infer DependentVariable candidate
  WITH confidence <= 0.80

  IF repeated measurements share same biological source
  THEN classify possible TechnicalReplicate
  WITH confidence <= 0.80

  IF result has traceable measurements and analysis method
  THEN classify as DerivedExperimentalResult
  WITH confidence = 0.95

  IF protocol or critical experimental context is missing
  THEN reduce reproducibility confidence
  AND preserve missing-context state

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: ExperimentalMetadata
  experimental_structure: machine_interpretable
  protocol: traceable
  variable_roles: explicit
  conditions: preserved
  samples_and_replicates: traceable
  measurements: unit_aware
  results: source_linked
  provenance: preserved
  reproducibility_context: explicit
  uncertainty: explicit
  semantic_retrieval: enabled

end flow
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ