Skip to main content

Mode Ontology

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

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

BEGIN_FLOW

Mode :=
    MeasureOfCentralTendency
    ∧ FrequencyBasedStatistic
    ∧ MostFrequentValueOrCategory

Dataset :=
    {x_1,x_2,...,x_n}

SampleSize :=
    n

FrequencyFunction :=
    f(v)
    =
    Count(x_i=v)

MaximumFrequency :=
    f_max
    =
    max_v f(v)

ModeSet :=
    {
        v:
        f(v)=f_max
    }

SampleMode :=
    ModeSet
    computed_from
    observed sample

UniqueMode :=
    |ModeSet|=1

UnimodalDataset :=
    UniqueMode

BimodalDataset :=
    |ModeSet|=2
    ∧ modes share maximum frequency

MultimodalDataset :=
    |ModeSet|>1

NoUniqueMode :=
    MultipleValues
    share maximum frequency

NoRepeatedValueCase :=
    AllValuesUnique
    ⇒
    EveryObservedValueHasFrequency1
    ∧ ModeConventionMustBeSpecified

CategoricalMode :=
    MostFrequentCategory

NominalMode :=
    ValidMeasureOfCentre
    for nominal data

OrdinalMode :=
    MostFrequentOrderedCategory

QuantitativeMode :=
    MostFrequentNumericValue
    for discrete_or_repeated values

DiscreteMode :=
    Value
    maximising probability mass
    or empirical frequency

PopulationModeDiscrete :=
    argmax_x
    P(X=x)

ContinuousMode :=
    Value
    maximising probability density

PopulationModeContinuous :=
    argmax_x
    f_X(x)

ModeSetContinuous :=
    {
        x:
        f_X(x)
        =
        sup_y f_X(y)
    }

GlobalMode :=
    Point
    attaining global maximum
    of density_or_mass

LocalMode :=
    Point
    attaining local maximum
    of density_or_mass

DensityMode :=
    Mode
    defined_by
    probability density maximum

EmpiricalMode :=
    Mode
    defined_by
    observed frequencies

HistogramMode :=
    ModalClassOrBin
    with highest frequency_or_density

ModalClass :=
    ClassInterval
    with greatest frequency

GroupedDataMode :=
    EstimatedMode
    from modal class
    under interpolation convention

GroupedModeApproximation :=
    L
    +
    [
        (f1-f0)
        /
        (
            2f1-f0-f2
        )
    ]h

where:
    L  := LowerBoundaryOfModalClass
    f1 := FrequencyOfModalClass
    f0 := FrequencyOfPreviousClass
    f2 := FrequencyOfNextClass
    h  := ClassWidth

FrequencyTable :=
    ValueOrCategory
    → Frequency

ModeFromFrequencyTable :=
    SelectKeys
    with MaximumFrequency

RelativeFrequency :=
    rf(v)
    =
    f(v)/n

RelativeFrequencyMode :=
    argmax_v rf(v)

FrequencyAndRelativeFrequencyEquivalence :=
    argmax_v f(v)
    =
    argmax_v rf(v)
    for fixed n>0

WeightedMode :=
    ValueOrCategory
    maximising
    total assigned weight

WeightedFrequency :=
    wf(v)
    =
    Σ_{i:x_i=v}w_i

WeightedModeSet :=
    {
        v:
        wf(v)
        =
        max_u wf(u)
    }

WeightConstraint :=
    w_i≥0
    under ordinary frequency-weight interpretation

ModeInvarianceUnderRelabelling :=
    OneToOneCategoryRelabelling
    preserves modal identity
    under semantic mapping

ModeUnderMonotonicTransformation :=
    EmpiricalDiscreteMode
    preserved_by
    one-to-one transformation
    of observed values
    with transformed modal value

ContinuousTransformationCaution :=
    DensityMode
    is not generally invariant
    under nonlinear transformations
    because Jacobian changes density

ModeUnit :=
    SameUnitOrCategorySemantics
    as source variable

MeanMedianMode :=
    DistinctMeasures
    of central tendency

SymmetricUnimodalDistribution :=
    Often
    Mean=Median=Mode
    when mean exists
    and distribution has suitable symmetry

NormalDistributionMode :=
    X~N(μ,σ²)
    ⇒
    Mode(X)=μ

LogisticDistributionMode :=
    X~Logistic(μ,s)
    ⇒
    Mode(X)=μ

CauchyDistributionMode :=
    X~Cauchy(x0,γ)
    ⇒
    Mode(X)=x0

ExponentialDistributionMode :=
    X~Exponential(λ)
    ⇒
    Mode(X)=0
    under support convention

WeibullDistributionMode :=
    X~Weibull(k,λ)
    ∧ k>1
    ⇒
    Mode(X)
    =
    λ[
        (k-1)/k
    ]^(1/k)

WeibullBoundaryMode :=
    k≤1
    ⇒
    ModeAtZero
    under standard convention

GammaDistributionMode :=
    X~Gamma(α,β)
    ∧ α≥1
    ⇒
    Mode(X)
    =
    (α-1)/β
    under shape-rate parameterisation

BetaDistributionMode :=
    X~Beta(α,β)
    ∧ α>1
    ∧ β>1
    ⇒
    Mode(X)
    =
    (α-1)/(α+β-2)

BinomialDistributionMode :=
    X~Binomial(n,p)
    ⇒
    Mode
    determined_by
    floor((n+1)p)
    with two adjacent modes
    when (n+1)p integer
    under standard convention

PoissonDistributionMode :=
    X~Poisson(λ)
    ⇒
    Mode=floor(λ)
    when λ noninteger

PoissonIntegerRateModes :=
    λ positive integer
    ⇒
    Modes={λ-1,λ}

UniformDiscreteMode :=
    AllValuesEqualProbability
    ⇒
    EverySupportValue
    is a mode

ContinuousUniformMode :=
    ConstantDensity
    ⇒
    EveryPointInSupport
    maximises density

ModeExistence :=
    Distribution
    may have
    zero,
    one,
    or multiple modes
    depending definition_and_structure

ModeUniqueness :=
    Mode
    not necessarily unique

ModeRobustness :=
    EmpiricalMode
    can be resistant
    to extreme numeric magnitude
    but sensitive
    to frequency perturbations

OutlierMagnitudeRelation :=
    ExtremeNumericValue
    occurring rarely
    generally does_not alter
    empirical mode

FrequencyPerturbation :=
    SmallCountChanges
    may alter
    mode when top frequencies are close

ModeForNominalData :=
    Mode
    is central-tendency statistic
    directly meaningful
    without numeric ordering

ModeForOrdinalData :=
    Mode
    identifies most common category
    independent_of category spacing

ModeForContinuousRawData :=
    ExactValueMode
    may be unstable_or_uninformative
    when repeated exact values are rare

ContinuousEmpiricalModeEstimation :=
    Histogram
    ∨ KernelDensityEstimate
    ∨ ParametricDensityModel

KernelDensityEstimate :=
    f_hat_h(x)
    =
    (1/(nh))
    Σ_i
    K(
        (x-x_i)/h
    )

KDEMode :=
    argmax_x
    f_hat_h(x)

BandwidthEffect :=
    KDEBandwidth
    affects
    number_and_location
    of estimated modes

HistogramBinEffect :=
    BinWidthAndOrigin
    affect
    modal class

ModeEstimationConstraint :=
    ContinuousModeEstimate
    must record
    smoothing_or_binning method

Multimodality :=
    MultipleModes
    may indicate
    heterogeneous populations,
    mixtures,
    or complex generating structure

MixtureDistribution :=
    f(x)
    =
    Σ_jπ_jf_j(x)

MixtureModes :=
    NeedNotEqual
    component means_or_modes
    exactly

ModeClusteringRelation :=
    DensityModes
    can define
    high-density cluster centres
    under mode-based clustering methods

ModeAsMAPRelation :=
    PosteriorMode
    =
    MaximumAPosterioriEstimate

MAPEstimate :=
    argmax_θ
    p(θ|Data)

LikelihoodMode :=
    ParameterValue
    maximising likelihood
    =
    MaximumLikelihoodEstimate
    when likelihood treated_as function of parameter

ModeVsMLE :=
    DistributionMode
    describes most probable_or_dense value
    whereas
    MLE
    maximises likelihood over parameter

ConditionalMode :=
    argmax_y
    P(Y=y|X=x)
    for discrete conditional distribution

ConditionalDensityMode :=
    argmax_y
    f(y|x)
    for continuous conditional density

PredictionByMode :=
    Classification
    often selects
    most probable class

BayesClassifier :=
    Predict
    argmax_c
    P(C=c|X=x)
    under zero-one loss

ModeLossRelation :=
    PosteriorModeDecision
    associated_with
    zero-one type decision structure
    in discrete settings

MissingDataMode :=
    Mode
    computed_from
    selected nonmissing observations
    under explicit missingness rule

ModeImputation :=
    MissingCategoricalValues
    replaced_with
    observed mode

ModeImputationRisk :=
    Can distort
    frequency distribution
    and underestimate uncertainty

ModeConstraint :=
    ConstraintOn(
        VariableType,
        FrequencyDefinition,
        Weighting,
        BinningOrSmoothing,
        Missingness,
        TieConvention
    )

ModeConsistency :=
    Values
    ∧ FrequencyRule
    ∧ WeightingRule
    ∧ TieRule
    ∧ MissingnessRule
    jointly_compatible

InvalidMode :=
    EmptyEffectiveDataset
    ∨ InvalidWeights
    ∨ UndefinedFrequencyRule
    ∨ HiddenTieHandling
    ∨ UndocumentedBinningOrSmoothing
    ∨ MissingCodesTreatedAsCategoriesWithoutIntent

ModeValidation :=
    ResolveVariable
    → ResolveVariableType
    → ResolveObservations
    → ResolveMissingness
    → ResolveWeights
    → DetermineDiscreteCategoricalOrContinuousMode
    → ConstructFrequencyOrDensityRepresentation
    → FindMaximumFrequencyOrDensity
    → ResolveTies
    → ValidateMode

ModeState := {
    Variable,
    VariableType,
    Observations,
    EffectiveCount,
    FrequencyRepresentation,
    WeightingRule,
    MissingnessRule,
    TieConvention,
    ModeSet,
    Modality,
    Evidence,
    Confidence,
    Provenance
}

SEMANTIC_EQUIVALENCE(ModeA,ModeB) :=
    same(DataScope)
    ∧ same(VariableSemantics)
    ∧ same(FrequencyOrDensityDefinition)
    ∧ same(WeightingRule)
    ∧ same(TieConvention)
    ∧ same(MissingnessRule)

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

CoreClasses := {
    Mode,
    SampleMode,
    PopulationMode,
    EmpiricalMode,
    DensityMode,
    WeightedMode,
    ModalClass,
    LocalMode,
    GlobalMode,
    UnimodalDistribution,
    BimodalDistribution,
    MultimodalDistribution,
    FrequencyDistribution,
    KernelDensityEstimate,
    StatisticalVariable,
    StatisticalObservation,
    ModeConstraint
}

CoreRelations := {
    computedFrom,
    summarises,
    maximises,
    hasFrequency,
    hasDensity,
    hasWeight,
    hasModality,
    belongsTo,
    estimatedBy,
    conditionedOn,
    constrainedBy,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    Mode --computedFrom--> Observations
    Mode --summarises--> StatisticalVariable
    EmpiricalMode --maximises--> Frequency
    DensityMode --maximises--> ProbabilityDensity
    FrequencyDistribution --hasFrequency--> Frequency
    WeightedMode --hasWeight--> Weight
    Distribution --hasModality--> Modality
    ModalClass --belongsTo--> GroupedDistribution
    ContinuousMode --estimatedBy--> KernelDensityEstimate
    ConditionalMode --conditionedOn--> VariableOrInformation
    Mode --tracesTo--> Provenance

InferenceRules := {
    Frequency(v)
        ∧ f(v)=MaximumFrequency
        ⇒
        v∈ModeSet,

    |ModeSet|=1
        ⇒
        Unimodal,

    |ModeSet|=2
        ⇒
        Bimodal,

    |ModeSet|>2
        ⇒
        Multimodal,

    NominalVariable
        ⇒
        ModeEligible,

    RelativeFrequency(v)=Frequency(v)/n
        ∧ n>0
        ⇒
        argmax(RelativeFrequency)
        =
        argmax(Frequency),

    ContinuousDistribution
        ⇒
        ModeDefinedByDensityMaximum
        when maximum exists,

    MultipleMaximumValues
        ⇒
        PreserveAllModes
        unless tie convention explicitly selects otherwise
}

CanonicalModeRepresentation :=
    ParseModeRequest
    → ResolveVariable
    → ResolveDataScope
    → ResolveVariableType
    → ResolveObservations
    → ResolveMissingness
    → ResolveWeights
    → ResolveFrequencyOrDensityDefinition
    → ComputeFrequencyOrDensityRepresentation
    → IdentifyMaximum
    → ResolveModeSetAndModality
    → ValidateMode

ModeGraph :=
    G=(V,E)

V := {
    Modes,
    SampleModes,
    PopulationModes,
    EmpiricalModes,
    DensityModes,
    WeightedModes,
    ModalClasses,
    LocalModes,
    GlobalModes,
    Variables,
    Observations,
    Frequencies,
    DensityFunctions,
    KernelDensityEstimates,
    ModalityNodes,
    Evidence,
    ProvenanceNodes
}

E := {
    computedFrom,
    summarises,
    maximises,
    hasFrequency,
    hasDensity,
    hasWeight,
    hasModality,
    belongsTo,
    estimatedBy,
    conditionedOn,
    constrainedBy,
    equivalentTo,
    tracesTo
}

CONFIDENCE(ModeResolution) :=
    weighted_mean(
        VariableResolution,
        DataScopeResolution,
        VariableTypeResolution,
        FrequencyOrDensityResolution,
        WeightingValidity,
        TieResolution,
        MissingnessHandling,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectModeIntent
    → IdentifyVariableAndDataScope
    → DetermineCategoricalDiscreteOrContinuousContext
    → ResolveFrequencyWeightingOrDensityMethod
    → IdentifyRequestedModeSetModalityOrComparison

AI_REASONING_FLOW :=
    Query
    → ParseModeProblem
    → ResolveDatasetSamplePopulationOrDistribution
    → ResolveVariable
    → ResolveVariableType
    → ResolveObservationsOrProbabilityModel
    → ResolveMissingness
    → ResolveWeights
    → BuildFrequencyDistributionOrDensity
    → IdentifyMaximumFrequencyOrDensity
    → ResolveTies
    → DetermineUnimodalBimodalOrMultimodalStructure
    → ValidateModeResult
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseModeEntities,
    ParseTypedRelations,
    ResolveVariables,
    ResolveObservations,
    ResolveDatasets,
    ResolveSamples,
    ResolvePopulations,
    ResolveProbabilityDistributions,
    ComputeFrequencies,
    ComputeRelativeFrequencies,
    ComputeWeightedFrequencies,
    ResolveModalClasses,
    EvaluateProbabilityMassFunctions,
    EvaluateProbabilityDensities,
    EstimateKernelDensities,
    ResolveLocalModes,
    ResolveGlobalModes,
    DetectMultimodality,
    ResolveConditionalModes,
    ValidateModeSemantics,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewObservationWeightDensityMethodOrTieConvention
    → ValidateInput
    → IdentifyAffectedModeClaims
    → UpdateModeState
    → RecomputeFrequencyOrDensityRepresentation
    → RecomputeMaximum
    → RecomputeModeSet
    → RecomputeModality
    → RevalidateConstraints
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

ObservationUpdate :=
    AddedRemovedOrCorrectedObservation
    ⇒ recompute(
        Frequencies,
        ModeSet,
        Modality
    )

WeightUpdate :=
    ChangedWeight
    ⇒ recompute(
        WeightedFrequencies,
        WeightedModeSet
    )

DensityMethodUpdate :=
    ChangedBinningBandwidthOrKernel
    ⇒ recompute(
        DensityEstimate,
        LocalModes,
        GlobalModes
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        Mode,
        ModeValidation,
        ModeConstraint,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    ModeEntityResolution,
    Variable,
    DataScope,
    VariableType,
    ObservationCount,
    EffectiveObservationCount,
    FrequencyOrDensityRepresentation,
    WeightingRule,
    MissingnessRule,
    TieConvention,
    ModeSet,
    Modality,
    ModalClass,
    DensityModeEstimate,
    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