Skip to main content

Statistical Observation Ontology

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

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

BEGIN_FLOW

StatisticalObservation :=
    StatisticalUnit
    ∧ Variable
    ∧ ObservedValue
    ∧ MeasurementContext
    ∧ ObservationTime
    ∧ Provenance

Observation :=
    StatisticalObservation

StatisticalUnit :=
    Entity
    on which
    variable is observed

Variable :=
    MeasurableOrRecordedCharacteristic

ObservedValue :=
    RecordedRepresentation
    of Variable
    for StatisticalUnit

ObservationTuple :=
    (
        Unit,
        Variable,
        Value,
        Time,
        Context
    )

ObservationIdentity :=
    UniqueCombination
    of relevant identifiers
    under dataset schema

ObservationID :=
    Identifier
    assigned_to Observation

UnitID :=
    Identifier
    assigned_to StatisticalUnit

VariableID :=
    Identifier
    assigned_to Variable

ObservationValueType := {
    Numeric,
    Categorical,
    Binary,
    Ordinal,
    Textual,
    DateTime,
    Count,
    Measurement
}

NumericObservation :=
    ObservedValue∈NumericDomain

CategoricalObservation :=
    ObservedValue∈CategorySet

BinaryObservation :=
    ObservedValue∈{0,1}
    or semantically equivalent binary coding

OrdinalObservation :=
    Category
    with defined ordering

CountObservation :=
    NonnegativeIntegerValue
    under count semantics

ContinuousObservation :=
    NumericValue
    measured_on continuous scale

RawObservation :=
    Value
    as initially recorded
    before transformation_or_cleaning

ProcessedObservation :=
    Observation
    after defined transformation_or_cleaning

DerivedObservation :=
    Value
    computed_from
    one_or_more source observations

DirectObservation :=
    Value
    obtained directly
    from measurement_or_recording process

RepeatedObservation :=
    SameUnit
    observed multiple times
    for same_or_related variable

LongitudinalObservation :=
    Observation
    linked_to same unit
    across time

CrossSectionalObservation :=
    Observation
    from unit
    within selected time frame

EventObservation :=
    RecordedOccurrence
    of event

CensoredObservation :=
    Observation
    known only partially
    due_to censoring mechanism

RightCensoredObservation :=
    Know
    Value>CensoringThresholdOrTime

LeftCensoredObservation :=
    Know
    Value<CensoringThresholdOrTime

IntervalCensoredObservation :=
    Know
    Lower<Value≤Upper

TruncatedObservation :=
    Observation
    included_only_if
    value satisfies truncation rule

MissingObservation :=
    IntendedObservation
    with unavailable value

MissingValueCode :=
    EncodedRepresentation
    of missingness

MissingnessIndicator :=
    R
    =
    1 if observed
    else 0

MissingnessMechanism := {
    MCAR,
    MAR,
    MNAR
}

MissingCompletelyAtRandom :=
    Missingness
    independent_of
    observed_and_unobserved values
    under model

MissingAtRandom :=
    Missingness
    conditionally independent_of
    missing value
    given observed information
    under model

MissingNotAtRandom :=
    Missingness
    depends_on
    unobserved value_or_unmodelled mechanism

Measurement :=
    Process
    assigning value
    to variable

MeasurementScale := {
    Nominal,
    Ordinal,
    Interval,
    Ratio
}

NominalScale :=
    Categories
    without intrinsic ordering

OrdinalScale :=
    OrderedCategories

IntervalScale :=
    NumericScale
    with meaningful differences
    but no required absolute zero

RatioScale :=
    NumericScale
    with meaningful ratios
    and meaningful zero

MeasurementUnit :=
    UnitOfMeasure
    associated_with numeric observation

MeasurementInstrument :=
    InstrumentOrProcedure
    producing observation

MeasurementResolution :=
    SmallestDistinguishableIncrement
    under measurement system

MeasurementPrecision :=
    RepeatabilityOrGranularity
    under defined context

MeasurementAccuracy :=
    Closeness
    to target_or_reference value
    under defined context

MeasurementError :=
    ObservedValue
    -
    TrueOrReferenceValue
    under model

RandomMeasurementError :=
    ErrorComponent
    varying unpredictably

SystematicMeasurementError :=
    PersistentStructuredDeviation

Calibration :=
    Process
    relating instrument output
    to reference standard

CalibrationState :=
    CurrentCalibrationInformation
    associated_with instrument

DetectionLimit :=
    LowestLevel
    reliably detectable
    under specified procedure

QuantificationLimit :=
    LowestLevel
    reliably quantifiable
    under specified procedure

ObservationTime :=
    Timestamp
    ∨ TimeInterval
    ∨ StudyWave

ObservationLocation :=
    SpatialContext
    when relevant

ObservationCondition :=
    EnvironmentalExperimentalOrOperationalContext

TreatmentCondition :=
    InterventionOrExposure
    associated_with observation

GroupMembership :=
    CategoryOrCohort
    associated_with StatisticalUnit

ReplicateObservation :=
    RepeatedMeasurement
    under nominally same conditions

TechnicalReplicate :=
    RepeatMeasurement
    of same underlying sample_or_unit

BiologicalReplicate :=
    DistinctBiologicalUnit
    representing independent variation
    under study design

IndependentObservation :=
    Observation
    probabilistically independent
    of specified other observations
    under model

DependentObservation :=
    Observation
    statistically dependent
    on specified observations

ClusteredObservation :=
    Observation
    nested_within Cluster

PairedObservation :=
    Observation
    linked_to another observation
    by matching_or_repeated-unit structure

WeightedObservation :=
    Observation
    associated_with StatisticalWeight

ObservationWeight :=
    w_i

FrequencyWeight :=
    Weight
    representing repeated identical observations

SamplingWeight :=
    Weight
    reflecting sampling design
    commonly inverse inclusion probability

AnalyticWeight :=
    Weight
    representing precision_or_variance information
    under specified software_or_model convention

ObservationMetadata := {
    ObservationID,
    UnitID,
    VariableID,
    Timestamp,
    MeasurementUnit,
    Instrument,
    Method,
    QualityFlag,
    Source,
    Version
}

QualityFlag :=
    Metadata
    indicating observation quality status

ValidObservation :=
    Observation
    satisfying
    schema_and_domain constraints

InvalidObservation :=
    Observation
    violating
    one_or_more constraints

RangeConstraint :=
    LowerBound≤Value≤UpperBound

CategoryConstraint :=
    Value∈AllowedCategories

TypeConstraint :=
    ValueType
    compatible_with VariableType

UnitConstraint :=
    MeasurementUnit
    compatible_with VariableDefinition

TemporalConstraint :=
    ObservationTime
    within valid study_or_process interval

UniquenessConstraint :=
    ObservationIdentity
    unique
    where schema requires uniqueness

ReferentialConstraint :=
    UnitID
    and VariableID
    resolve_to valid entities

ObservationValidation :=
    ResolveObservationID
    → ResolveUnit
    → ResolveVariable
    → ValidateValueType
    → ValidateDomain
    → ValidateMeasurementUnit
    → ValidateTime
    → ValidateContext
    → ValidateProvenance
    → AssignQualityStatus

OutlierObservation :=
    Observation
    unusually extreme
    under specified reference distribution_or_rule

OutlierDoesNotImplyError :=
    OutlierObservation
    ↛ InvalidObservation

AnomalousObservation :=
    Observation
    deviating_from
    expected pattern
    under selected anomaly model

InfluentialObservation :=
    Observation
    whose inclusion_or_exclusion
    materially changes
    fitted statistical result

LeverageObservation :=
    Observation
    with unusual predictor configuration
    under regression model

ObservationCorrection :=
    OriginalObservation
    → CorrectedObservation
    with preserved audit trail

ObservationTransformation :=
    Y=g(X)

StandardisedObservation :=
    Z
    =
    (X-Centre)/Scale

NormalisedObservation :=
    Value
    rescaled_under
    specified normalisation rule

ImputedObservation :=
    MissingValue
    replaced_or_modelled
    using imputation procedure

SingleImputation :=
    OneFilledValue
    for each missing observation

MultipleImputation :=
    MultipleCompletedDatasets
    reflecting missing-data uncertainty

ObservationAggregation :=
    MultipleObservations
    → AggregateStatistic

AggregateObservation :=
    SummaryValue
    representing group_or_period

MeanAggregation :=
    Group
    → ArithmeticMean

SumAggregation :=
    Group
    → Total

CountAggregation :=
    Group
    → NumberOfObservations

ObservationSequence :=
    OrderedObservations
    indexed_by time_or_position

TimeSeriesObservation :=
    Observation
    belonging_to TimeSeries

LaggedObservation :=
    Observation
    referenced_at earlier index_or_time

ObservationPair :=
    (Observation_i,Observation_j)

ObservationVector :=
    X_i
    =
    (x_i1,...,x_ip)

ObservationMatrix :=
    X
    =
    n×p data matrix

RowSemantics :=
    Row
    typically represents
    StatisticalUnitOrObservationCase

ColumnSemantics :=
    Column
    typically represents Variable

TidyDataRelation :=
    EachVariable
    → Column
    ∧ EachObservation
    → Row
    ∧ EachObservationalUnit
    → Table
    under tidy-data convention

ObservationLikelihoodContribution :=
    Observation_i
    → L_i(θ)

IIDLikelihood :=
    IndependentObservations
    ⇒
    L(θ|Data)
    =
    Π_iL_i(θ)

LogLikelihoodContribution :=
    ℓ_i(θ)
    =
    logL_i(θ)

ObservationInfluenceOnEstimate :=
    Observation
    contributes_to
    EstimatorOrLikelihood

SampleRelation :=
    Observation
    belongs_to
    Sample

DatasetRelation :=
    Observation
    belongs_to
    Dataset

PopulationRelation :=
    ObservationUnit
    may belong_to
    Population

EvidenceRelation :=
    Observation
    provides evidence
    about ParameterOrModel

ObservationProvenance :=
    Source
    ∧ AcquisitionMethod
    ∧ ProcessingHistory
    ∧ Timestamp
    ∧ Version

ObservationLineage :=
    RawObservation
    → ProcessingSteps
    → DerivedObservation

AuditTrail :=
    OrderedRecord
    of observation changes

ObservationState := {
    ObservationID,
    Unit,
    Variable,
    Value,
    ValueType,
    MeasurementUnit,
    Time,
    Context,
    Weight,
    Missingness,
    QualityStatus,
    Provenance
}

ObservationConstraint :=
    ConstraintOn(
        Identity,
        Unit,
        Variable,
        Value,
        Type,
        Domain,
        MeasurementUnit,
        Time,
        Context,
        Provenance
    )

ObservationConsistency :=
    Unit
    ∧ Variable
    ∧ Value
    ∧ MeasurementMetadata
    ∧ Context
    ∧ Provenance
    jointly_compatible

InvalidObservationState :=
    UnresolvedUnit
    ∨ UnresolvedVariable
    ∨ TypeViolation
    ∨ DomainViolation
    ∨ UnitMismatch
    ∨ InvalidTimestamp
    ∨ MissingRequiredProvenance

SEMANTIC_EQUIVALENCE(ObservationA,ObservationB) :=
    same(StatisticalUnit)
    ∧ same(VariableSemantics)
    ∧ same(ObservedValue)
    ∧ same(MeasurementUnitOrEquivalentUnit)
    ∧ same(ObservationContext)
    ∧ same(TemporalScope)

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

CoreClasses := {
    StatisticalObservation,
    StatisticalUnit,
    Variable,
    ObservedValue,
    Measurement,
    MeasurementUnit,
    ObservationTime,
    ObservationContext,
    MissingObservation,
    CensoredObservation,
    WeightedObservation,
    OutlierObservation,
    DerivedObservation,
    ObservationMetadata,
    QualityFlag,
    ObservationProvenance
}

CoreRelations := {
    observedOn,
    observesVariable,
    hasValue,
    hasValueType,
    measuredIn,
    measuredBy,
    observedAt,
    observedUnder,
    belongsTo,
    hasWeight,
    derivedFrom,
    correctedFrom,
    hasQualityFlag,
    supports,
    dependsOn,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    StatisticalObservation --observedOn--> StatisticalUnit
    StatisticalObservation --observesVariable--> Variable
    StatisticalObservation --hasValue--> ObservedValue
    StatisticalObservation --hasValueType--> ObservationValueType
    StatisticalObservation --measuredIn--> MeasurementUnit
    StatisticalObservation --measuredBy--> MeasurementInstrument
    StatisticalObservation --observedAt--> ObservationTime
    StatisticalObservation --observedUnder--> ObservationContext
    StatisticalObservation --belongsTo--> Sample
    StatisticalObservation --hasWeight--> ObservationWeight
    DerivedObservation --derivedFrom--> StatisticalObservation
    CorrectedObservation --correctedFrom--> StatisticalObservation
    StatisticalObservation --hasQualityFlag--> QualityFlag
    StatisticalObservation --supports--> StatisticalEvidence
    StatisticalObservation --tracesTo--> ObservationProvenance

InferenceRules := {
    Observation(O)
        ⇒
        Exists(Unit(O))
        ∧ Exists(Variable(O))
        ∧ Exists(Value(O)),

    NumericVariable(V)
        ∧ Observation(O,V)
        ⇒
        NumericCompatible(Value(O)),

    CategoricalVariable(V)
        ∧ Observation(O,V)
        ⇒
        Value(O)∈AllowedCategories(V),

    MissingObservation(O)
        ⇒
        MissingnessIndicator(O)=0,

    ObservedObservation(O)
        ⇒
        MissingnessIndicator(O)=1,

    Outlier(O)
        ↛
        InvalidObservation(O),

    DerivedObservation(D)
        ⇒
        PreserveLineage(D),

    ConstraintViolation(O)
        ⇒
        FlagObservationQualityRisk(O)
}

CanonicalObservationRepresentation :=
    ParseObservation
    → ResolveObservationIdentity
    → ResolveStatisticalUnit
    → ResolveVariable
    → ResolveObservedValue
    → ResolveValueType
    → ResolveMeasurementUnit
    → ResolveTimeAndContext
    → ResolveWeightAndMissingness
    → ResolveProvenance
    → ValidateObservation

ObservationGraph :=
    G=(V,E)

V := {
    Observations,
    StatisticalUnits,
    Variables,
    Values,
    ValueTypes,
    Measurements,
    MeasurementUnits,
    Instruments,
    Times,
    Contexts,
    Samples,
    Weights,
    MissingnessNodes,
    QualityFlags,
    DerivedObservations,
    ProvenanceNodes
}

E := {
    observedOn,
    observesVariable,
    hasValue,
    hasValueType,
    measuredIn,
    measuredBy,
    observedAt,
    observedUnder,
    belongsTo,
    hasWeight,
    derivedFrom,
    correctedFrom,
    hasQualityFlag,
    supports,
    dependsOn,
    equivalentTo,
    tracesTo
}

CONFIDENCE(ObservationResolution) :=
    weighted_mean(
        ObservationIdentityResolution,
        UnitResolution,
        VariableResolution,
        ValueValidity,
        MeasurementUnitValidity,
        TemporalContextValidity,
        QualityMetadataCompleteness,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectStatisticalObservationIntent
    → IdentifyObservationUnit
    → IdentifyVariable
    → ResolveObservedValueAndType
    → ResolveMeasurementContext
    → IdentifyRequestedValidationTransformationOrInferenceRelation

AI_REASONING_FLOW :=
    Query
    → ParseObservationProblem
    → ResolveObservationIdentity
    → ResolveStatisticalUnit
    → ResolveVariableAndVariableType
    → ResolveObservedValue
    → ValidateValueTypeAndDomain
    → ResolveMeasurementUnitAndInstrument
    → ResolveObservationTimeAndContext
    → ResolveMissingnessCensoringOrWeighting
    → ResolveQualityFlags
    → ResolveObservationLineage
    → ValidateObservation
    → LinkObservationToSampleDatasetAndPopulation
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseStatisticalObservationEntities,
    ParseTypedRelations,
    ResolveObservationIdentities,
    ResolveStatisticalUnits,
    ResolveVariables,
    ResolveObservedValues,
    ClassifyObservationValueTypes,
    ResolveMeasurementScales,
    ResolveMeasurementUnits,
    ResolveMeasurementInstruments,
    ResolveObservationTimes,
    ResolveObservationContexts,
    ResolveMissingness,
    ResolveCensoring,
    ResolveObservationWeights,
    DetectPotentialOutliers,
    ResolveDerivedObservations,
    ValidateObservationConstraints,
    ResolveObservationLineage,
    LinkObservationsToSamples,
    LinkObservationsToDatasets,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewValueMetadataCorrectionOrContext
    → ValidateInput
    → IdentifyAffectedObservationClaims
    → UpdateObservationState
    → RevalidateValueAndType
    → RevalidateMeasurementMetadata
    → ReevaluateMissingnessAndQuality
    → RecomputeDerivedObservations
    → ReevaluateStatisticalDependencies
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

ValueUpdate :=
    ChangedObservedValue
    ⇒ revalidate(
        Type,
        Domain,
        Range,
        DerivedStatistics
    )

MetadataUpdate :=
    ChangedUnitTimeInstrumentOrContext
    ⇒ revalidate(
        ObservationIdentity,
        MeasurementCompatibility,
        TemporalValidity,
        Provenance
    )

CorrectionUpdate :=
    CorrectedObservation
    ⇒
    PreserveOriginalObservation
    → CreateAuditTrail
    → RecomputeDependentResults

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        StatisticalObservation,
        ObservationValidation,
        ObservationProvenance,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    StatisticalObservationEntityResolution,
    ObservationID,
    StatisticalUnit,
    Variable,
    ObservedValue,
    ValueType,
    MeasurementScale,
    MeasurementUnit,
    MeasurementInstrument,
    ObservationTime,
    ObservationContext,
    MissingnessStatus,
    CensoringStatus,
    ObservationWeight,
    QualityStatus,
    SampleRelation,
    DatasetRelation,
    ValidationStatus,
    Confidence,
    Provenance,
    Explanation
}

END_FLOW

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