Skip to main content

Experiment Ontology

Foundations of Probability
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — EXPERIMENT ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/foundations-of-probability/experiment-ontology.html

FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Foundations of Probability"
ONTOLOGY := "Experiment Ontology"
PRIMARY_ENTITY := Experiment
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

Experiment :=
    DefinedProcedure
    ∧ ProducesOutcome
    ∧ HasConditions
    ∧ SupportsObservation
    ∧ MayContainRandomness

RandomExperiment :=
    Experiment
    ∧ OutcomeNotKnownWithCertaintyBeforeExecution
    ∧ PossibleOutcomesDefined

DeterministicExperiment :=
    Experiment
    ∧ InitialConditionsAndRules
    uniquely_determine
    Outcome

Trial :=
    SingleExecution(Experiment)

RepeatedExperiment :=
    SequenceOfTrials
    under specified protocol

ExperimentalProtocol :=
    Procedure
    ∧ Inputs
    ∧ Conditions
    ∧ MeasurementRules
    ∧ TerminationRules

ExperimentalUnit :=
    Entity
    to which
    condition_or_treatment is applied

ExperimentalCondition :=
    ControlledOrObservedSetting
    affecting experiment

Input :=
    ValueOrState
    supplied_to
    Experiment

Output :=
    Result
    produced_by
    Experiment

Outcome :=
    ElementaryResult
    ∧ MemberOf(SampleSpace)

SampleSpace :=
    Ω := SetOfAllPossibleOutcomes

ExperimentOutcomeRelation :=
    Experiment
    → Outcome ∈ Ω

PossibleOutcome :=
    Outcome
    satisfying
    ExperimentConstraints

ImpossibleOutcome :=
    CandidateOutcome
    violating
    ExperimentConstraints

ObservedOutcome :=
    Outcome
    realised_in
    Trial

OutcomeSequence :=
    (ω1,...,ωn)
    from repeated trials

Event :=
    A⊆Ω

EventOccurrence :=
    realised outcome ω∈A

ExperimentEvent :=
    Event
    defined_over
    ExperimentSampleSpace

ProbabilitySpace :=
    (Ω,F,P)

ExperimentProbabilityModel :=
    Experiment
    → ProbabilitySpace

ProbabilityMeasure :=
    P:F→[0,1]

RandomMechanism :=
    Mechanism
    inducing
    ProbabilityDistributionOverOutcomes

Randomisation :=
    UseOfRandomMechanism
    to select
    AssignmentOrAction

RandomisedExperiment :=
    Experiment
    ∧ RandomAssignmentOrRandomisedProcedure

RandomAssignment :=
    ExperimentalUnits
    → TreatmentConditions
    according_to
    KnownRandomMechanism

Treatment :=
    InterventionOrCondition
    intentionally applied

ControlCondition :=
    ReferenceCondition
    for comparison

TreatmentGroup :=
    ExperimentalUnits
    assigned_to
    Treatment

ControlGroup :=
    ExperimentalUnits
    assigned_to
    ControlCondition

ExperimentalFactor :=
    Variable
    deliberately varied

FactorLevel :=
    SpecificSetting(ExperimentalFactor)

ResponseVariable :=
    MeasuredOutcome
    used_to assess effect

ExplanatoryVariable :=
    Variable
    used_to explain_or_predict
    ResponseVariable

Covariate :=
    MeasuredVariable
    associated_with
    ExperimentalUnitOrOutcome

Confounder :=
    Variable
    associated_with
    TreatmentOrExposure
    ∧ Outcome
    and capable of distorting causal comparison

Blocking :=
    GroupExperimentalUnits
    by relevant characteristic
    before randomisation

Block :=
    GroupOfSimilarExperimentalUnits

Stratification :=
    PartitionUnits
    into strata
    using known characteristics

Blinding :=
    ConcealAssignmentInformation
    from specified participants_or_assessors

SingleBlind :=
    OneRelevantParty
    unaware_of assignment

DoubleBlind :=
    MultipleRelevantParties
    unaware_of assignment
    under specified protocol

Placebo :=
    ControlIntervention
    designed_to resemble treatment

Replication :=
    RepeatIndependentOrComparableExperimentalUnits
    to estimate variability

Repetition :=
    ReperformMeasurementOrTrial

RandomisationPrinciple :=
    RandomAssignment
    reduces systematic assignment bias
    under valid implementation

ControlPrinciple :=
    HoldRelevantConditionsConstant
    or compare against reference condition

ReplicationPrinciple :=
    MultipleExperimentalUnits
    support
    variability estimation

ExperimentalDesign :=
    StructureOf(
        Treatments,
        Units,
        Assignment,
        Measurements,
        AnalysisPlan
    )

CompletelyRandomisedDesign :=
    Units
    randomly_assigned
    to treatments

RandomisedBlockDesign :=
    Units
    grouped_into blocks
    then randomised_within blocks

FactorialDesign :=
    MultipleFactors
    ∧ combinations_of_factor_levels

FullFactorialDesign :=
    AllSpecifiedFactorLevelCombinations

FractionalFactorialDesign :=
    SelectedSubsetOfFactorCombinations

CrossoverDesign :=
    Units
    receive multiple treatments
    in specified sequence

MatchedPairsDesign :=
    PairedUnitsOrRepeatedUnit
    receive contrasting conditions

SequentialExperiment :=
    DesignOrDecision
    may adapt
    after interim observations

AdaptiveExperiment :=
    ExperimentalProcedure
    changes future allocation_or_sampling
    according_to pre-specified adaptation rules

ObservationalStudy :=
    ObserveVariables
    without random assignment

ExperimentVsObservation :=
    Experiment
    may manipulate conditions
    while observational study
    does_not_assign treatment

Measurement :=
    Process
    mapping
    property_to recorded value

MeasurementFunction :=
    h : Outcome → ObservationSpace

Observation :=
    h(ω)

MeasurementError :=
    ObservedValue
    differs_from
    TargetQuantity

RandomMeasurementError :=
    Error
    varying unpredictably across repetitions

SystematicMeasurementError :=
    PersistentDirectionalOrStructuredError

Instrument :=
    DeviceOrProcedure
    used_to measure

Calibration :=
    CompareInstrument
    against standard
    → adjust_or_characterise measurement

ExperimentalNoise :=
    UncontrolledVariation
    affecting observations

Signal :=
    StructuredComponent
    of measured response

SignalNoiseModel :=
    Observation
    =
    Signal
    +
    Noise
    under additive model

ExperimentalBias :=
    SystematicDistortion
    in design, conduct, measurement, or analysis

SelectionBias :=
    UnitSelectionOrRetention
    distorts comparison

AllocationBias :=
    AssignmentProcess
    systematically differs
    across groups

ObserverBias :=
    MeasurementOrAssessment
    influenced_by observer expectations

Attrition :=
    LossOfExperimentalUnitsOrObservations

MissingOutcome :=
    PlannedMeasurement
    not observed

ProtocolDeviation :=
    Conduct
    differs_from
    ExperimentalProtocol

Compliance :=
    DegreeToWhich
    assigned intervention is followed

ExperimentalAssumption :=
    Statement
    required_for
    interpretation_or_analysis

IndependenceAssumption :=
    ExperimentalUnitsOrErrors
    treated_as independent
    under model

IdenticalDistributionAssumption :=
    RepeatedTrials
    share
    same outcome distribution

IIDTrialModel :=
    Trials
    independent
    ∧ identically distributed

Exchangeability :=
    JointDistribution
    invariant_under
    permutation
    under specified conditions

Repeatability :=
    SameMethod
    ∧ SameOrSimilarConditions
    → ConsistentMeasurements

Reproducibility :=
    IndependentReplication
    under defined changed conditions
    → compatible results

ExperimentalValidity :=
    InternalValidity
    ∧ ExternalValidity
    under specified inferential goals

InternalValidity :=
    CredibilityOfCausalOrDescriptiveInference
    within studied setting

ExternalValidity :=
    Applicability
    beyond studied units_or_conditions

CausalEffect :=
    DifferenceBetween
    PotentialOutcomes
    under contrasting interventions

PotentialOutcome :=
    Y_i(t)

IndividualTreatmentEffect :=
    Y_i(1)-Y_i(0)

AverageTreatmentEffect :=
    E[Y(1)-Y(0)]

FundamentalProblemOfCausalInference :=
    For same unit,
    cannot observe
    all potential outcomes simultaneously

RandomAssignmentCausalRole :=
    RandomAssignment
    supports
    balance_in_expectation
    and causal identification
    under relevant assumptions

ExperimentalHypothesis :=
    FormalClaim
    tested_or_investigated
    by experiment

NullHypothesis :=
    H0

AlternativeHypothesis :=
    H1

ExperimentalEvidence :=
    Observations
    ∧ DesignInformation
    ∧ MeasurementInformation

Data :=
    RecordedObservations
    from trials_or_units

Dataset :=
    CollectionOfExperimentalRecords

ExperimentalRecord := {
    UnitID,
    TrialID,
    Inputs,
    Conditions,
    Assignment,
    Outcome,
    Measurements,
    Timestamp,
    Provenance
}

Sampling :=
    Population
    → ExperimentalSample

Population :=
    TargetSetOfUnits

Sample :=
    UnitsIncludedInExperiment

SamplingMechanism :=
    RuleOrProcess
    selecting sample

RandomSampling :=
    SamplingMechanism
    governed_by
    known random process

RandomSamplingVsRandomAssignment :=
    RandomSampling
    concerns
    selection_from_population

RandomAssignment
    concerns
    allocation_to_conditions

SimulationExperiment :=
    ComputationalModel
    → ControlledInputs
    → SimulatedOutcomes

MonteCarloExperiment :=
    RepeatedRandomSimulation
    → NumericalOrStatisticalEstimate

InSilicoExperiment :=
    Experiment
    conducted
    using computational model

PhysicalExperiment :=
    Experiment
    performed_on
    physical system

ThoughtExperiment :=
    ConceptualScenario
    used_to reason
    without physical execution

ExperimentState := {
    Protocol,
    Units,
    Inputs,
    Conditions,
    Treatments,
    Assignment,
    SampleSpace,
    ProbabilityModel,
    Measurements,
    Outcomes,
    Evidence,
    Provenance
}

ExperimentConstraint :=
    RequirementOn(
        Inputs,
        Units,
        Conditions,
        Assignment,
        Outcomes,
        Measurements
    )

ProtocolConstraint :=
    Experiment
    must_follow
    SpecifiedProcedure

OutcomeConstraint :=
    Outcome
    must_belong_to
    SampleSpace

AssignmentConstraint :=
    TreatmentAllocation
    must_follow
    DesignRule

MeasurementConstraint :=
    Measurement
    must_follow
    InstrumentAndProtocolRules

ExperimentConsistency :=
    Protocol
    ∧ Design
    ∧ SampleSpace
    ∧ Assignment
    ∧ Measurements
    ∧ ProbabilityModel
    jointly_compatible

ExperimentConflict :=
    ActiveExperimentalStatements
    violate
    ProtocolOrModelConstraints

ExperimentValidation :=
    ParseProtocol
    → ValidateUnits
    → ValidateInputs
    → ValidateAssignment
    → ValidateSampleSpace
    → ValidateMeasurements
    → ValidateOutcomeRecords
    → ValidateAnalysisAssumptions

TrialExecution :=
    InitialiseTrial
    → SetConditions
    → ApplyInputsOrTreatment
    → ExecuteProcess
    → ObserveOutcome
    → RecordMeasurements
    → PreserveProvenance

RepeatedTrialExecution :=
    for each trial_i
    execute(TrialExecution)
    → AggregateData

ExperimentUpdate :=
    NewTrialOrEvidence
    → ValidateRecord
    → UpdateDataset
    → RecomputeSummary
    → ReevaluateModel

ExperimentProvenance :=
    Experiment
    → {
        ProtocolVersion,
        DesignVersion,
        DataSources,
        Instruments,
        CalibrationState,
        Transformations,
        AnalysisVersion
    }

SEMANTIC_EQUIVALENCE(ExperimentA,ExperimentB) :=
    same(RelevantExperimentalStructure)
    ∧ same(OutcomeSemantics)
    ∧ compatible(AssignmentAndMeasurementModel)
    under specified inferential scope

ExperimentOntology :=
    Classes
    ∧ Relations
    ∧ Constraints
    ∧ Axioms
    ∧ InferenceRules

CoreClasses := {
    Experiment,
    RandomExperiment,
    DeterministicExperiment,
    Trial,
    ExperimentalProtocol,
    ExperimentalUnit,
    Treatment,
    ControlCondition,
    RandomAssignment,
    ExperimentalFactor,
    ResponseVariable,
    SampleSpace,
    Outcome,
    Event,
    Measurement,
    Observation,
    Instrument,
    ExperimentalDesign,
    ExperimentalEvidence
}

CoreRelations := {
    hasTrial,
    hasUnit,
    followsProtocol,
    hasCondition,
    receivesTreatment,
    assignedBy,
    hasOutcome,
    hasSampleSpace,
    measuredBy,
    producesObservation,
    hasFactor,
    hasResponse,
    generatedBy,
    dependsOn,
    supports,
    tracesTo
}

TypedRelations :=
    Experiment --hasTrial--> Trial
    Experiment --hasUnit--> ExperimentalUnit
    Trial --followsProtocol--> ExperimentalProtocol
    ExperimentalUnit --receivesTreatment--> Treatment
    TreatmentAssignment --assignedBy--> RandomAssignment
    Trial --hasOutcome--> Outcome
    Experiment --hasSampleSpace--> SampleSpace
    Measurement --measuredBy--> Instrument
    Outcome --producesObservation--> Observation
    Experiment --tracesTo--> ExperimentProvenance

InferenceRules := {
    RandomExperiment(E)
        ⇒ exists(SampleSpace(E)),

    Trial(T)
        ∧ belongsTo(T,E)
        ⇒ followsProtocol(T,Protocol(E)),

    ObservedOutcome(ω,T)
        ⇒ ω∈SampleSpace(Experiment(T)),

    RandomAssignment(A)
        ∧ ValidImplementation(A)
        ⇒ AssignmentProbabilitiesKnown(A),

    IIDTrialModel
        ⇒ IndependentTrials
        ∧ IdenticallyDistributedTrials,

    Measurement(O)
        ∧ CalibrationRequired
        ∧ InvalidCalibration
        ⇒ flag(MeasurementValidityRisk),

    ProtocolDeviation(D)
        ⇒ reevaluate(
            AffectedMeasurements,
            Outcomes,
            Inference
        ),

    NewTrialData
        ⇒ Update(ExperimentState)
}

CanonicalExperimentRepresentation :=
    ParseExperiment
    → ResolveProtocol
    → ResolveUnits
    → ResolveInputsAndConditions
    → ResolveTreatmentsAndAssignment
    → ResolveSampleSpace
    → ResolveMeasurementModel
    → ResolveOutcomes
    → ValidateConstraints
    → BuildExperimentGraph

ExperimentGraph :=
    G=(V,E)

V := {
    Experiments,
    Trials,
    Protocols,
    Units,
    Treatments,
    Conditions,
    Assignments,
    SampleSpaces,
    Outcomes,
    Measurements,
    Observations,
    Instruments,
    Evidence,
    ProvenanceNodes
}

E := {
    hasTrial,
    hasUnit,
    followsProtocol,
    hasCondition,
    receivesTreatment,
    assignedBy,
    hasOutcome,
    hasSampleSpace,
    measuredBy,
    producesObservation,
    hasFactor,
    hasResponse,
    generatedBy,
    dependsOn,
    supports,
    tracesTo
}

CONFIDENCE(ExperimentResolution) :=
    weighted_mean(
        ProtocolDefinitionQuality,
        DesignResolution,
        AssignmentValidity,
        SampleSpaceResolution,
        MeasurementQuality,
        OutcomeIntegrity,
        AssumptionValidity,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectExperimentConcept
    → IdentifyExperimentType
    → ResolveProtocol
    → ResolveUnitsAndConditions
    → ResolveOutcomeStructure
    → IdentifyRequestedExperimentalRelation

AI_REASONING_FLOW :=
    Query
    → ParseExperimentDescription
    → ClassifyExperimentType
    → ResolveProtocol
    → ResolveExperimentalUnits
    → ResolveInputsTreatmentsAndConditions
    → ResolveAssignmentMechanism
    → ConstructOrResolveSampleSpace
    → ResolveOutcomeDefinitions
    → ResolveMeasurementProcess
    → ValidateExperimentalConstraints
    → DetectBiasOrProtocolRisks
    → ResolveProbabilityModel
    → IntegrateExperimentalEvidence
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseExperimentEntities,
    ParseTypedRelations,
    ResolveExperimentTypes,
    ResolveProtocols,
    ResolveExperimentalUnits,
    ResolveTreatmentsAndControls,
    ResolveRandomisation,
    ResolveSampleSpaces,
    ResolveOutcomes,
    ResolveMeasurements,
    ValidateExperimentalDesign,
    DetectBiasAndConfounding,
    ValidateTrialRecords,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewProtocolTrialMeasurementOrEvidence
    → ValidateInput
    → IdentifyAffectedExperimentComponents
    → UpdateExperimentState
    → RevalidateProtocol
    → RevalidateAssignment
    → RevalidateSampleSpace
    → RevalidateMeasurements
    → RecomputeDerivedExperimentalClaims
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

ProtocolUpdate :=
    ChangedProtocol
    ⇒ reevaluate(
        Trials,
        Constraints,
        MeasurementRules,
        OutcomeValidity
    )

TrialUpdate :=
    AddedChangedOrRemovedTrial
    ⇒ recompute(
        Dataset,
        OutcomeFrequencies,
        ExperimentalEvidence
    )

MeasurementUpdate :=
    ChangedInstrumentOrCalibration
    ⇒ reevaluate(
        MeasurementValidity,
        AffectedObservations
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        RandomExperiment,
        ExperimentalDesign,
        TrialExecution,
        ExperimentValidation,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    ExperimentEntityResolution,
    ExperimentType,
    Protocol,
    ExperimentalUnits,
    InputsAndConditions,
    TreatmentStructure,
    AssignmentMechanism,
    SampleSpace,
    OutcomeStructure,
    MeasurementStructure,
    ExperimentalEvidence,
    ConstraintStatus,
    Confidence,
    Provenance,
    Explanation
}

END_FLOW

END OF FULL EXECUTABLE FLOW ALGEBRA
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ