Skip to main content

Experimental Protocol 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 Protocol Ontology
Domain: Metadata Ontologies > Scientific Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/scientific-metadata/experimental-protocol-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "ExperimentalProtocolOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: ScientificMetadata
  subject: ExperimentalProtocol
  purpose:
    - represent formal procedures used to conduct scientific experiments
    - preserve ordered steps, materials, instruments, conditions, and parameters
    - support reproducibility, validation, comparison, and protocol execution
    - represent protocol versions, deviations, dependencies, and provenance
    - enable machine-readable reasoning over experimental procedures

# ---------- CORE ENTITY ----------
entity ExperimentalProtocol:
  type: ScientificMethod
  defines: ExperimentalProcedure
  may_include:
    - protocol_identifier
    - protocol_name
    - objective
    - scope
    - protocol_version
    - author
    - creation_date
    - procedure_step
    - material
    - reagent
    - sample_requirement
    - instrument
    - equipment
    - parameter
    - environmental_condition
    - duration
    - safety_requirement
    - quality_control
    - acceptance_criteria
    - deviation_policy
    - provenance

entity ProtocolIdentifier:
  type: Identifier
  identifies: ExperimentalProtocol

entity ExperimentalProcedure:
  type: OrderedScientificProcess
  composed_of: ProtocolStep

entity ProtocolStep:
  type: ProceduralAction
  may_include:
    - step_identifier
    - action
    - input
    - output
    - parameter
    - duration
    - condition
    - instrument
    - dependency

entity ProtocolParameter:
  type: MethodParameter
  may_include:
    - parameter_name
    - value
    - unit
    - allowed_range
    - tolerance

# ---------- RELATIONSHIPS ----------
relationships:
  ExperimentalProtocol -> IDENTIFIED_BY -> ProtocolIdentifier
  ExperimentalProtocol -> DEFINES -> ExperimentalProcedure
  ExperimentalProcedure -> CONTAINS -> ProtocolStep
  ProtocolStep -> PRECEDES -> ProtocolStep
  ProtocolStep -> MAY_DEPEND_ON -> ProtocolStep
  ProtocolStep -> MAY_USE -> Material
  ProtocolStep -> MAY_USE -> Reagent
  ProtocolStep -> MAY_USE -> Sample
  ProtocolStep -> MAY_USE -> ScientificInstrument
  ProtocolStep -> MAY_USE -> Equipment
  ProtocolStep -> HAS_PARAMETER -> ProtocolParameter
  ProtocolStep -> MAY_REQUIRE -> EnvironmentalCondition
  ExperimentalProtocol -> MAY_HAVE -> QualityControl
  ExperimentalProtocol -> MAY_HAVE -> AcceptanceCriteria
  ExperimentalProtocol -> MAY_HAVE_VERSION -> ProtocolVersion
  ExperimentalProtocol -> MAY_REFERENCE -> Provenance

# ---------- PROTOCOL IDENTITY ----------
rule protocol_identity:
  ExperimentalProtocol SHOULD have stable ProtocolIdentifier
  where reuse, citation, or execution traceability is required

rule name_not_identity:
  protocol_name MUST NOT be assumed globally unique

rule protocol_scope:
  protocol SHOULD define intended experimental scope
  where applicability is constrained

# ---------- STEP ORDER ----------
rule step_order:
  IF procedure sequence affects experimental outcome
  THEN ProtocolStep order MUST be preserved

rule acyclic_dependency:
  step dependency graph SHOULD NOT contain unsupported cycles

rule predecessor:
  IF step B depends_on completion of step A
  THEN A MUST precede B
  unless dependency semantics explicitly permit concurrency

rule optional_step:
  optional ProtocolStep MUST be explicitly identified
  with condition governing execution where applicable

# ---------- INPUT / OUTPUT ----------
rule step_input:
  ProtocolStep SHOULD identify required input
  where input state affects execution

rule step_output:
  ProtocolStep SHOULD identify produced or transformed output
  where output feeds subsequent steps

rule material_lineage:
  transformed sample or material SHOULD preserve source relationship

# ---------- PARAMETERS ----------
rule parameter_value:
  quantitative ProtocolParameter SHOULD have Unit
  where dimensional

rule parameter_range:
  IF allowed_range exists
  THEN execution value SHOULD be validated against range

rule parameter_tolerance:
  tolerance SHOULD be distinguished from MeasurementUncertainty

rule fixed_parameter:
  IF parameter is fixed
  THEN execution SHOULD use declared value
  unless authorised deviation exists

# ---------- MATERIALS / REAGENTS ----------
entity ProtocolMaterial:
  type: LaboratoryMaterial
  may_include:
    - material_identifier
    - quantity
    - unit
    - specification

entity ProtocolReagent:
  subtype_of: ProtocolMaterial
  may_include:
    - chemical_identity
    - concentration
    - purity
    - supplier
    - lot_requirement
    - storage_condition

rule reagent_requirement:
  reagent properties affecting outcome SHOULD be explicitly specified

rule quantity:
  required material quantity SHOULD use interpretable unit

# ---------- SAMPLE REQUIREMENTS ----------
entity SampleRequirement:
  type: ProtocolConstraint
  may_include:
    - sample_type
    - minimum_quantity
    - preparation_state
    - storage_condition
    - inclusion_criteria
    - exclusion_criteria

rule sample_conformance:
  experimental sample SHOULD be checked against SampleRequirement
  where protocol applicability depends on sample properties

# ---------- INSTRUMENT / EQUIPMENT ----------
rule instrument_requirement:
  IF protocol requires ScientificInstrument
  THEN required capability SHOULD be specified
  where instrument type alone is insufficient

rule calibration_requirement:
  IF measurement step requires calibrated instrument
  THEN calibration validity SHOULD be checked at execution time

rule configuration:
  instrument settings required by protocol SHOULD be preserved as parameters

# ---------- CONDITIONS ----------
entity ProtocolCondition:
  type: ExperimentalCondition
  may_include:
    - temperature
    - pressure
    - humidity
    - atmosphere
    - light
    - duration
    - agitation
    - concentration

rule condition_units:
  quantitative conditions SHOULD declare Unit

rule condition_range:
  conditions SHOULD be validated against protocol tolerances where defined

# ---------- DURATION / TIMING ----------
rule duration:
  ProtocolStep MAY define:
    - minimum_duration
    - target_duration
    - maximum_duration

rule timing_constraint:
  IF timing affects outcome
  THEN timing constraint MUST be preserved

rule wait_condition:
  step MAY proceed based_on:
    - elapsed_time
    - measured_threshold
    - observed_state
    - manual_confirmation

# ---------- QUALITY CONTROL ----------
entity ProtocolQualityControl:
  type: QualityMetadata
  may_include:
    - control_sample
    - blank
    - reference_material
    - checkpoint
    - acceptance_criteria

rule quality_checkpoint:
  IF quality checkpoint fails
  THEN protocol SHOULD define:
    - repeat
    - stop
    - corrective_action
    - authorised_override
  where applicable

# ---------- DEVIATIONS ----------
entity ProtocolDeviation:
  type: ProceduralException
  may_include:
    - affected_step
    - expected_action
    - actual_action
    - reason
    - authorising_agent
    - timestamp
    - impact_assessment

rule deviation:
  protocol execution deviation MUST NOT silently overwrite prescribed procedure

rule deviation_trace:
  deviation SHOULD remain linked to protocol version and experiment execution

# ---------- VERSION ----------
entity ProtocolVersion:
  type: VersionMetadata
  may_include:
    - version_identifier
    - creation_time
    - predecessor
    - successor
    - change_description
    - status

rule protocol_version:
  material procedural change SHOULD create distinguishable ProtocolVersion

rule historical_protocol:
  superseded protocol versions SHOULD remain traceable
  for historical experiment reproducibility

# ---------- EXECUTION ----------
entity ProtocolExecution:
  type: ScientificProcess
  instantiates: ExperimentalProtocol
  may_include:
    - execution_identifier
    - protocol_version
    - experiment
    - operator
    - execution_time
    - step_execution
    - deviations
    - results

rule execution_trace:
  ProtocolExecution SHOULD preserve actual step sequence and parameter values

rule prescribed_vs_actual:
  prescribed_protocol != actual_execution
  and differences SHOULD be explicitly represented

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_protocol
    - interpretable_procedure

  validate_if_present:
    - steps
    - step_order
    - parameters
    - units
    - materials
    - reagents
    - sample_requirements
    - instruments
    - conditions
    - timing
    - quality_control
    - version
    - provenance

  reject:
    - unresolved_required_step
    - invalid_step_dependency
    - dimensional_parameter_without_unit
    - parameter_outside_mandatory_range_without deviation
    - missing_required_material
    - incompatible_sample_requirement
    - invalid_protocol_version_chain

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "experimental protocol" ~= "experiment protocol"
  "protocol step" ~= "procedure step"
  "protocol parameter" ~= "experimental procedure parameter"
  "protocol execution" ~= "procedure execution" WHEN executing ExperimentalProtocol
  "protocol deviation" ~= "procedure deviation"
  "protocol version" ~= "method version" WHEN method is represented by protocol

  PRESERVE distinctions:
    protocol != experiment
    protocol != protocol_execution
    prescribed_step != executed_step
    parameter_tolerance != measurement_uncertainty
    material != reagent
    sample_requirement != sample
    protocol_version != experiment_version
    deviation != protocol_revision

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_protocol_definition:
    score: 1.00

  explicit_ordered_steps:
    score: 1.00

  explicit_parameter_constraints:
    score: 1.00

  traceable_protocol_execution:
    score: 0.95

  inferred_step_order:
    score: 0.80

  inferred_parameter_semantics:
    score: 0.75

  incomplete_protocol_context:
    score: <= 0.60
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_protocol_revision:
    - preserve previous ProtocolVersion
    - create new version
    - record changed steps and parameters
    - revalidate dependencies
    - update provenance

  on_step_change:
    - preserve previous step definition
    - update ordering and dependencies
    - validate downstream steps
    - update protocol version

  on_parameter_change:
    - preserve previous parameter
    - validate value, unit, range, and tolerance
    - update affected step
    - record provenance

  on_execution_deviation:
    - preserve prescribed action
    - record actual action
    - record reason and authorisation
    - assess impact
    - preserve execution provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - protocol_entities
    - relationships
    - step_rules
    - parameter_rules
    - material_rules
    - quality_rules
    - deviation_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 procedure model
    - protocol execution model
    - reproducibility and validation structure

  operations:
    - identify protocols
    - resolve protocol versions
    - traverse ordered steps
    - resolve step dependencies
    - validate parameters
    - resolve materials and reagents
    - validate sample requirements
    - resolve instrument requirements
    - evaluate experimental conditions
    - inspect quality checkpoints
    - compare prescribed and actual execution
    - trace deviations
    - preserve provenance

  constraints:
    - do_not_invent_missing_protocol_steps
    - do_not_ignore_step_order
    - do_not_overwrite_prescribed_values_with execution values
    - do_not_hide protocol deviations
    - do_not_equate_protocol_with experiment
    - preserve protocol versions and execution provenance

# ---------- QUERY MODEL ----------
query:
  input:
    - protocol_identifier
    - protocol_version
    - procedure_step
    - parameter
    - material
    - reagent
    - sample_requirement
    - instrument
    - condition
    - execution

  resolve:
    1. identify ExperimentalProtocol
    2. resolve ProtocolVersion
    3. retrieve ordered ProtocolSteps
    4. resolve dependencies
    5. validate parameters
    6. resolve materials, reagents, and samples
    7. resolve instrument requirements
    8. evaluate conditions and timing
    9. inspect quality controls
    10. compare execution and deviations
    11. trace provenance

  output:
    - protocol
    - version
    - ordered_steps
    - parameters
    - materials
    - instruments
    - conditions
    - quality_controls
    - deviations
    - execution_state
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF ProtocolStep B depends_on ProtocolStep A
  THEN infer A precedes B
  WITH confidence = 0.95

  IF execution parameter falls outside allowed range
  THEN infer ProtocolDeviation candidate
  unless authorised exception semantics already exist

  IF required calibrated instrument is used
  AND calibration valid at execution time
  THEN infer instrument_requirement_satisfied
  WITH confidence = 0.95

  IF actual execution matches all required protocol steps and constraints
  THEN infer protocol_conformance = true
  WITH confidence = 0.95

  IF protocol definition is incomplete
  THEN reduce reproducibility confidence
  AND preserve missing metadata requirements

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: ExperimentalProtocol
  protocol_structure: machine_interpretable
  steps: ordered
  dependencies: explicit
  parameters: unit_aware
  materials: traceable
  instrument_requirements: explicit
  quality_controls: reportable
  deviations: preserved
  versions: traceable
  execution_history: preserved
  provenance: preserved
  uncertainty: explicit
  semantic_retrieval: enabled

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