Skip to main content

Quartile 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 — QUARTILE ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/descriptive-statistics/quartile-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Descriptive Statistics"
ONTOLOGY := "Quartile Ontology"
PRIMARY_ENTITY := Quartile
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

Quartile := QuantileMeasure ∧ PositionalStatistic ∧ OrderedDataSummary
RandomVariable := X
CDF := F(x)=P(X≤x)

QuartileSet := {FirstQuartile,SecondQuartile,ThirdQuartile}
FirstQuartile := Q1=Q(0.25)
SecondQuartile := Q2=Q(0.50)
ThirdQuartile := Q3=Q(0.75)
MedianRelation := Q2=Median
PercentileRelations := {Q1=P25,Q2=P50,Q3=P75}
QuartileOrdering := Q1≤Q2≤Q3

PopulationQuartile :=
    Q(q)=inf{x:F(x)≥q}
    where q∈{0.25,0.50,0.75}

Dataset := {x_1,...,x_n}
OrderedDataset := x_(1)≤x_(2)≤...≤x_(n)
OrderStatistic := x_(k)

SampleQuartile :=
    EstimateOfPopulationQuartile
    computed_from ordered sample

QuartileAlgorithm :=
    OrderedData
    ∧ QuartileProbability
    ∧ PositionRule
    ∧ InterpolationRule
    → SampleQuartile

QuartileConventionConstraint :=
    MultipleSampleQuartileAlgorithmsExist
    ⇒ AlgorithmMustBeRecorded

QuartileProbability := {q1=0.25,q2=0.50,q3=0.75}
NearestRankQuartile := x_(ceil(qn))
LinearInterpolationQuartile := QuantilePosition → InterpolatedQuartile

GenericQuantileIndex :=
    h=a+(n+b)q
    under selected quantile convention

Interpolation :=
    Q_hat(q)=(1-γ)x_(j)+γx_(j+1)

MedianOfHalvesMethod :=
    Q1=Median(LowerHalf)
    ∧ Q3=Median(UpperHalf)
    under specified inclusion convention

MedianInclusionConvention :=
    OddSampleMedian
    may be included_or_excluded
    from halves
    depending quartile algorithm

QuartileUnit := SameMeasurementUnitAsSourceVariable
TranslationEquivariance := Qk(X+c)=Qk(X)+c
PositiveScalingEquivariance := a>0 ⇒ Qk(aX)=aQk(X)

IncreasingTransformation :=
    StrictlyIncreasing(g)
    ⇒ Q_(g(X))(q)=g(Q_X(q))
    under compatible convention

InterquartileRange := IQR=Q3-Q1
SemiInterquartileRange := IQR/2
QuartileDeviation := SemiInterquartileRange
Midhinge := (Q1+Q3)/2
Trimean := (Q1+2Q2+Q3)/4

FiveNumberSummary := {Minimum,Q1,Median,Q3,Maximum}

BoxPlot :=
    FiveNumberSummary
    ∧ IQR
    ∧ WhiskerRule
    → DistributionVisualisation

LowerInnerFence := Q1-1.5IQR
UpperInnerFence := Q3+1.5IQR
LowerOuterFence := Q1-3IQR
UpperOuterFence := Q3+3IQR

PotentialOutlier :=
    X<LowerInnerFence
    ∨ X>UpperInnerFence

OutlierFenceConstraint :=
    FenceRule
    identifies potential outliers
    but ↛ InvalidObservation

QuartileCoefficientOfDispersion :=
    (Q3-Q1)/(Q3+Q1)
    where denominator valid

BowleySkewness :=
    (Q3+Q1-2Q2)/(Q3-Q1)
    where IQR>0

QuartileAsymmetry :=
    Compare(Q2-Q1,Q3-Q2)

QuartileRobustness :=
    Quartiles
    less sensitive to extreme observations
    than mean_or_range

EmpiricalCDF :=
    F_n(x)=(1/n)Σ_i1_(x_i≤x)

EmpiricalQuartiles :=
    GeneralisedInverseOfEmpiricalCDF
    at {0.25,0.50,0.75}
    under selected convention

DiscreteDistributionQuartile :=
    SmallestValue x such_that F(x)≥q

ContinuousDistributionQuartile :=
    Solve F(x)=q
    when CDF continuous_and_strictly_increasing

UniformQuartiles :=
    X~Uniform(a,b)
    ⇒ {
        Q1=a+0.25(b-a),
        Q2=a+0.50(b-a),
        Q3=a+0.75(b-a)
    }

NormalQuartiles :=
    X~N(μ,σ²)
    ⇒ {
        Q1=μ+σΦ^(-1)(0.25),
        Q2=μ,
        Q3=μ+σΦ^(-1)(0.75)
    }

StandardNormalQuartiles :=
    Q1≈-0.67448975
    ∧ Q2=0
    ∧ Q3≈0.67448975

NormalIQR := IQR≈1.3489795σ

RobustNormalScaleEstimate :=
    σ_hat≈IQR/1.3489795
    under normality

ExponentialQuartiles :=
    X~Exponential(λ)
    ⇒ Q(q)=-ln(1-q)/λ

LogisticQuartiles :=
    X~Logistic(μ,s)
    ⇒ Q(q)=μ+sln(q/(1-q))

CauchyQuartiles :=
    X~Cauchy(x0,γ)
    ⇒ Q(q)=x0+γtan[π(q-1/2)]

CauchyIQR := 2γ

WeibullQuartiles :=
    X~Weibull(k,λ)
    ⇒ Q(q)=λ[-ln(1-q)]^(1/k)

LognormalQuartiles :=
    X~LogNormal(μ,σ²)
    ⇒ Q(q)=exp(μ+σΦ^(-1)(q))

GammaQuartiles := InverseGammaCDF(q;α,β)
BetaQuartiles := InverseBetaCDF(q;α,β)

GroupedDataQuartile :=
    EstimatedQuartile
    from cumulative class frequencies
    under interpolation assumption

GroupedQuartileApproximation :=
    L+[(TargetPosition-CF_prev)/f_class]h

Q1GroupedPosition := n/4
Q2GroupedPosition := n/2
Q3GroupedPosition := 3n/4

WeightedQuartile :=
    Quartile computed_from cumulative weights

WeightedQuartileProcedure :=
    SortValues
    → AccumulateWeights
    → NormaliseCumulativeWeight
    → Locate(0.25,0.50,0.75)
    → ApplySpecifiedInterpolation

WeightConstraint := w_i≥0 ∧ Σ_iw_i>0

SurveyWeightedQuartile :=
    WeightedQuartile
    using survey weights
    under design-aware method

MissingDataQuartile :=
    Quartile
    computed_from selected nonmissing observations
    under explicit missingness rule

EmptyDatasetQuartile := Undefined

SingleObservationQuartiles :=
    n=1
    ⇒ Q1=Q2=Q3=x_1
    under common conventions

NominalQuartileInvalid :=
    NominalVariable
    ⇒ QuartileNotMeaningful

OrdinalQuartile :=
    Meaningful under ordered-category quantile convention

MeasurementScaleConstraint :=
    Quartile requires at least ordinal ordering

QuartileSamplingDistribution :=
    DistributionOfSampleQuartile
    across repeated samples

AsymptoticQuartileDistribution :=
    IIDContinuousSample
    ∧ f(Q(q))>0
    ⇒
    sqrt(n)(Q_hat(q)-Q(q))
    →
    N(0,q(1-q)/f(Q(q))²)

QuartileEstimationUncertainty :=
    DependsOn(
        SampleSize,
        DensityNearQuartile,
        SamplingDesign,
        QuantileConvention
    )

BootstrapQuartiles :=
    ObservedSample
    → BootstrapSamples
    → ComputeQuartileReplicates
    → ApproximateSamplingDistribution

QuartileConfidenceInterval :=
    SamplingDistribution
    ∨ OrderStatisticMethod
    ∨ BootstrapMethod
    → IntervalForPopulationQuartile

QuartileConstraint :=
    ConstraintOn(
        Ordering,
        QuartileLevel,
        QuantileConvention,
        Interpolation,
        Missingness,
        Weighting,
        SamplingDesign
    )

QuartileConsistency :=
    DataScope
    ∧ Ordering
    ∧ QuartileConvention
    ∧ InterpolationRule
    ∧ MissingnessRule
    ∧ WeightingRule
    jointly_compatible

InvalidQuartile :=
    NonOrderableVariable
    ∨ EmptyEffectiveDataset
    ∨ InvalidWeights
    ∨ UndefinedQuartileConvention
    ∨ UndocumentedMissingness
    ∨ InconsistentInterpolationRule

QuartileValidation :=
    ResolveVariable
    → ResolveVariableType
    → ValidateOrdering
    → ResolveDataScope
    → ResolveObservationsOrDistribution
    → ResolveMissingness
    → ResolveWeights
    → ResolveQuartileConvention
    → SortOrResolveCDF
    → ComputeQ1
    → ComputeQ2
    → ComputeQ3
    → ValidateOrdering
    → ComputeIQR
    → ValidateResult

QuartileState := {
    Variable,
    DataScope,
    Observations,
    EffectiveCount,
    Ordering,
    QuartileConvention,
    InterpolationRule,
    Weights,
    MissingnessRule,
    Q1,
    Q2,
    Q3,
    IQR,
    SamplingContext,
    Evidence,
    Confidence,
    Provenance
}

SEMANTIC_EQUIVALENCE(QuartileA,QuartileB) :=
    same(DataScope)
    ∧ same(VariableSemantics)
    ∧ same(QuartileLevel)
    ∧ same(QuantileConvention)
    ∧ same(InterpolationRule)
    ∧ same(MissingnessRule)
    ∧ same(WeightingRule)

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

CoreClasses := {
    Quartile,
    FirstQuartile,
    SecondQuartile,
    ThirdQuartile,
    PopulationQuartile,
    SampleQuartile,
    WeightedQuartile,
    GroupedQuartile,
    InterquartileRange,
    SemiInterquartileRange,
    Midhinge,
    Trimean,
    OrderStatistic,
    StatisticalVariable,
    StatisticalObservation,
    Dataset,
    Sample,
    Population,
    QuartileConstraint
}

CoreRelations := {
    computedFrom,
    summarises,
    equalsPercentile,
    equalsQuantile,
    hasLevel,
    orderedBefore,
    defines,
    interpolatedFrom,
    weightedBy,
    estimatedBy,
    transformedBy,
    constrainedBy,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    Quartile --computedFrom--> OrderedObservations
    Quartile --summarises--> StatisticalVariable
    FirstQuartile --equalsPercentile--> Percentile25
    SecondQuartile --equalsPercentile--> Percentile50
    ThirdQuartile --equalsPercentile--> Percentile75
    Quartile --equalsQuantile--> Quantile
    FirstQuartile --orderedBefore--> SecondQuartile
    SecondQuartile --orderedBefore--> ThirdQuartile
    FirstQuartile --defines--> InterquartileRange
    ThirdQuartile --defines--> InterquartileRange
    SampleQuartile --interpolatedFrom--> OrderStatistic
    WeightedQuartile --weightedBy--> Weight
    PopulationQuartile --estimatedBy--> SampleQuartile
    Quartile --tracesTo--> Provenance

InferenceRules := {
    Q1=Q(0.25),
    Q2=Q(0.50),
    Q3=Q(0.75),
    Q2=Median,
    Q1≤Q2≤Q3,
    IQR=Q3-Q1,
    SemiInterquartileRange=IQR/2,

    StrictlyIncreasing(g)
        ⇒
        Q_gX(q)=g(Q_X(q))
        under compatible convention,

    NominalVariable
        ⇒
        FlagQuartileAsSemanticallyInvalid,

    InvalidQuartileConvention
        ⇒
        RejectQuartileComputation
}

CanonicalQuartileRepresentation :=
    ParseQuartileRequest
    → ResolveVariable
    → ResolveDatasetSamplePopulationOrDistribution
    → ResolveVariableTypeAndOrdering
    → ResolveQuartileLevelOrQuartileSet
    → ResolveObservationsOrCDF
    → ResolveMissingness
    → ResolveWeights
    → ResolveQuartileConventionAndInterpolation
    → ComputeQ1Q2Q3
    → ComputeIQRAndRelatedMeasures
    → ResolveSamplingPropertiesIfRequested
    → ValidateQuartiles

QuartileGraph :=
    G=(V,E)

V := {
    Quartiles,
    FirstQuartiles,
    SecondQuartiles,
    ThirdQuartiles,
    PopulationQuartiles,
    SampleQuartiles,
    WeightedQuartiles,
    GroupedQuartiles,
    InterquartileRanges,
    SemiInterquartileRanges,
    Midhinges,
    Trimeans,
    OrderStatistics,
    Variables,
    Observations,
    Datasets,
    Samples,
    Populations,
    Evidence,
    ProvenanceNodes
}

E := {
    computedFrom,
    summarises,
    equalsPercentile,
    equalsQuantile,
    hasLevel,
    orderedBefore,
    defines,
    interpolatedFrom,
    weightedBy,
    estimatedBy,
    transformedBy,
    constrainedBy,
    equivalentTo,
    tracesTo
}

CONFIDENCE(QuartileResolution) :=
    weighted_mean(
        VariableResolution,
        DataScopeResolution,
        OrderingValidity,
        QuartileConventionResolution,
        InterpolationResolution,
        MissingnessHandling,
        WeightingValidity,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectQuartileIntent
    → IdentifyVariableAndDataScope
    → ResolveQ1Q2Q3OrQuartileSet
    → DetermineSamplePopulationOrDistributionContext
    → ResolveConventionWeightingAndMissingness
    → IdentifyRequestedIQRBoxPlotComparisonOrInference

AI_REASONING_FLOW :=
    Query
    → ParseQuartileProblem
    → ResolveDatasetSamplePopulationOrDistribution
    → ResolveVariable
    → ValidateOrdering
    → ResolveObservationsOrCDF
    → ResolveMissingValues
    → ResolveWeights
    → ResolveQuartileConventionAndInterpolation
    → ComputeFirstQuartile
    → ComputeSecondQuartile
    → ComputeThirdQuartile
    → ValidateQuartileOrdering
    → ComputeInterquartileRange
    → ComputeRelatedRobustMeasuresIfRequested
    → ResolveSamplingPropertiesIfRequested
    → ValidateQuartileResult
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseQuartileEntities,
    ParseTypedRelations,
    ResolveVariables,
    ResolveObservations,
    ResolveDatasets,
    ResolveSamples,
    ResolvePopulations,
    ResolveProbabilityDistributions,
    ValidateOrdering,
    ResolveQuartileConventions,
    ResolveInterpolationRules,
    ResolveMissingness,
    ResolveWeights,
    ComputeFirstQuartiles,
    ComputeSecondQuartiles,
    ComputeThirdQuartiles,
    ComputeInterquartileRanges,
    ComputeSemiInterquartileRanges,
    ComputeMidhinges,
    ComputeTrimeans,
    ComputeBowleySkewness,
    ComputeQuartileCoefficientsOfDispersion,
    ComputeWeightedQuartiles,
    ComputeGroupedQuartiles,
    ResolveDistributionQuartiles,
    ResolveSamplingDistributions,
    ComputeBootstrapQuartiles,
    ValidateQuartileSemantics,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewObservationConventionWeightOrDistributionEvidence
    → ValidateInput
    → IdentifyAffectedQuartileClaims
    → UpdateQuartileState
    → RecomputeEffectiveObservationSet
    → RecomputeOrdering
    → RecomputeQ1Q2Q3
    → RecomputeIQRAndRelatedMeasures
    → ReevaluateSamplingProperties
    → RevalidateConstraints
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

ObservationUpdate :=
    AddedRemovedOrCorrectedObservation
    ⇒ recompute(
        EffectiveCount,
        OrderStatistics,
        Q1,
        Q2,
        Q3,
        IQR
    )

ConventionUpdate :=
    ChangedQuartileOrInterpolationConvention
    ⇒ recompute(
        Q1,
        Q2,
        Q3,
        IQR,
        SemanticEquivalence
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        Quartile,
        QuartileValidation,
        QuartileConstraint,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    QuartileEntityResolution,
    Variable,
    DataScope,
    VariableType,
    ObservationCount,
    EffectiveObservationCount,
    QuartileConvention,
    InterpolationRule,
    Weights,
    MissingnessRule,
    FirstQuartile,
    SecondQuartile,
    ThirdQuartile,
    InterquartileRange,
    SemiInterquartileRange,
    Midhinge,
    Trimean,
    SamplingProperties,
    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