Skip to main content

Turbulence Mathematics Ontology

Fluid Mathematics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Turbulence Mathematics Ontology within the Kireth Research Semantic Library. Turbulence mathematics studies irregular, multiscale, nonlinear fluid motion characterised by strong fluctuations, enhanced transport, vortex interactions and energy transfer across scales. This ontology supports Reynolds decomposition, Reynolds-averaged equations, turbulent kinetic energy, dissipation, Reynolds stresses, energy spectra, inertial ranges, Kolmogorov scaling, intermittency, coherent structures, isotropic and anisotropic turbulence, wall turbulence, homogeneous turbulence, shear flows, turbulence closure, DNS, LES, RANS and relationships with fluid dynamics mathematics, Navier–Stokes equations, nonlinear dynamics, stochastic processes and computational fluid dynamics.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Turbulence Mathematics Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Applied Mathematics"
 SPECIALISATION = "Fluid Mathematics / Turbulence Mathematics"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/fluid-mathematics/turbulence-mathematics-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = TurbulenceMathematics
 SYMBOLIC_FORMS = [
  "u=U+u'",
  "k=(1/2)<u'_i u'_i>",
  "E(kappa) proportional to epsilon^(2/3) kappa^(-5/3)"
 ]
 ENTITY_CLASS = MultiscaleNonlinearFluidDynamicsFramework
 PRIMARY_CONTEXT = FluidMathematics
 DEFINITION = "Turbulence mathematics is the mathematical study of irregular multiscale fluid motion, fluctuation statistics, nonlinear transport, vortex dynamics and transfer of energy across scales."
 SEMANTIC_ROLE = "Provides machine-readable semantics for turbulent fluctuations, Reynolds averaging, turbulent kinetic energy, dissipation, Reynolds stresses, spectra, cascades, closure models and turbulence-resolving simulations."
}

SCOPE {
 INCLUDE = [
  TurbulenceMathematics,
  Turbulence,
  TurbulentFlow,
  VelocityFluctuation,
  PressureFluctuation,
  ReynoldsDecomposition,
  ReynoldsAverage,
  EnsembleAverage,
  TimeAverage,
  ReynoldsAveragedNavierStokes,
  RANS,
  ReynoldsStress,
  ReynoldsStressTensor,
  TurbulentKineticEnergy,
  TKE,
  DissipationRate,
  Epsilon,
  IntegralLengthScale,
  TaylorMicroscale,
  KolmogorovLengthScale,
  KolmogorovTimeScale,
  EnergySpectrum,
  SpectralDensity,
  EnergyCascade,
  ForwardCascade,
  InverseCascade,
  InertialRange,
  DissipationRange,
  EnergyContainingRange,
  KolmogorovScaling,
  KolmogorovFiveThirdsLaw,
  StructureFunction,
  SecondOrderStructureFunction,
  Intermittency,
  CoherentStructure,
  Vortex,
  VortexStretching,
  Enstrophy,
  HomogeneousTurbulence,
  IsotropicTurbulence,
  AnisotropicTurbulence,
  WallTurbulence,
  FreeShearFlow,
  MixingLayer,
  Jet,
  Wake,
  ChannelFlow,
  BoundaryLayerTurbulence,
  EddyViscosity,
  MixingLengthModel,
  KepsilonModel,
  KomegaModel,
  ReynoldsStressModel,
  DirectNumericalSimulation,
  DNS,
  LargeEddySimulation,
  LES,
  SubgridScaleModel,
  SmagorinskyModel,
  TurbulenceClosure,
  StatisticalStationarity,
  Ergodicity
 ]

 EXCLUDE_AS_PRIMARY = [
  LaminarFlowWithoutFluctuations,
  GenericRandomNoiseWithoutFluidDynamics,
  DeterministicChaosWithoutTurbulentTransportContext,
  VortexDynamicsWithoutTurbulentMultiscaleSemantics
 ]

 DISAMBIGUATION_RULE =
  "When irregular fluid motion is analysed through fluctuations, Reynolds stresses, spectra, energy cascades, statistical averages or turbulence models, interpret the context as turbulence mathematics."
}

CORE_CONCEPTS {

 TurbulenceMathematics {
  definition = "The mathematical framework for multiscale turbulent flow, statistics and energy transfer."
 }

 ReynoldsDecomposition {
  definition = "The decomposition of a flow variable into mean and fluctuating components."
 }

 ReynoldsStress {
  definition = "The momentum flux associated with correlated turbulent velocity fluctuations."
 }

 TurbulentKineticEnergy {
  definition = "The kinetic energy per unit mass contained in turbulent velocity fluctuations."
 }

 DissipationRate {
  definition = "The rate at which turbulent kinetic energy is converted into internal energy by viscosity."
 }

 EnergySpectrum {
  definition = "The distribution of turbulent kinetic energy across spatial wavenumbers or temporal frequencies."
 }

 EnergyCascade {
  definition = "The transfer of turbulent energy between scales."
 }

 InertialRange {
  definition = "A scale range where energy transfer dominates over direct forcing and viscous dissipation."
 }

 Intermittency {
  definition = "Irregular concentration of intense turbulent activity in space or time."
 }

 TurbulenceClosure {
  definition = "A modelling relation used to close statistically averaged turbulence equations."
 }
}

RELATIONS {
 TurbulenceMathematics --is_child_of--> FluidMathematics
 Turbulence --emerges_from--> NavierStokesDynamics
 ReynoldsDecomposition --separates--> MeanAndFluctuation
 ReynoldsAverage --produces--> ReynoldsAveragedNavierStokes
 ReynoldsStress --appears_in--> ReynoldsAveragedNavierStokes
 ReynoldsStress --transports--> Momentum
 TurbulentKineticEnergy --derives_from--> VelocityFluctuation
 DissipationRate --removes--> TurbulentKineticEnergy
 EnergySpectrum --represents--> ScaleDistributionOfEnergy
 EnergyCascade --transfers--> EnergyAcrossScales
 InertialRange --supports--> KolmogorovScaling
 VortexStretching --contributes_to--> ThreeDimensionalTurbulence
 EddyViscosity --models--> ReynoldsStress
 KepsilonModel --models--> TurbulenceClosure
 KomegaModel --models--> TurbulenceClosure
 DirectNumericalSimulation --resolves--> AllDynamicallyRelevantScales
 LargeEddySimulation --resolves--> LargeScales
 SubgridScaleModel --represents--> UnresolvedLESScales
}

OPERATORS {
 REYNOLDS_DECOMPOSITION(u) :=
  u=U+u_prime

 REYNOLDS_AVERAGE(u) :=
  <u>=U

 REYNOLDS_STRESS(rho,u_prime) :=
  tau_ij^R=-rho*<u_i_prime*u_j_prime>

 TURBULENT_KINETIC_ENERGY(u_prime) :=
  k=(1/2)*<u_i_prime*u_i_prime>

 TKE_PRODUCTION(R_ij,U) :=
  P=-R_ij*partial U_i/partial x_j

 TKE_DISSIPATION(nu,u_prime) :=
  epsilon=2*nu*<s'_ij*s'_ij>

 KOLMOGOROV_LENGTH(nu,epsilon) :=
  eta=(nu^3/epsilon)^(1/4)

 KOLMOGOROV_TIME(nu,epsilon) :=
  tau_eta=(nu/epsilon)^(1/2)

 KOLMOGOROV_VELOCITY(nu,epsilon) :=
  u_eta=(nu*epsilon)^(1/4)

 KOLMOGOROV_SPECTRUM(C_K,epsilon,kappa) :=
  E(kappa)=C_K*epsilon^(2/3)*kappa^(-5/3)

 SECOND_ORDER_STRUCTURE_FUNCTION(u,r) :=
  S2(r)=<|u(x+r)-u(x)|^2>

 EDDY_VISCOSITY_CLOSURE(nu_t,S_ij) :=
  tau_ij^R approx 2*rho*nu_t*S_ij
  with isotropic_correction_as_required

 REYNOLDS_NUMBER_TURBULENT(U,L,nu) :=
  Re=U*L/nu
}

DEFINITIONS {
 D1 = "Turbulence contains fluctuations over a broad range of scales."
 D2 = "Reynolds decomposition separates mean and fluctuating components."
 D3 = "Reynolds stresses represent turbulent momentum transport."
 D4 = "Turbulent kinetic energy measures fluctuation energy."
 D5 = "Dissipation converts turbulent kinetic energy into internal energy."
 D6 = "Three-dimensional turbulence commonly transfers energy from large to small scales."
 D7 = "The inertial range is approximately independent of viscosity and forcing details under idealised conditions."
 D8 = "Kolmogorov scaling predicts a minus-five-thirds inertial-range energy spectrum under classical assumptions."
 D9 = "Intermittency introduces deviations from simple self-similar scaling."
 D10 = "Turbulence closure models represent unresolved correlations in averaged or filtered equations."
}

AXIOMS {
 A1_MULTISCALE:
  Turbulence spans a hierarchy of interacting spatial and temporal scales

 A2_NONLINEAR_TRANSFER:
  Nonlinear advection transfers energy between scales

 A3_FLUCTUATION_STATISTICS:
  Turbulence analysis requires statistical descriptions of fluctuations

 A4_DISSIPATION:
  Viscosity dissipates turbulent kinetic energy at sufficiently small scales

 A5_REYNOLDS_CLOSURE:
  Reynolds averaging introduces unclosed correlations

 A6_SCALE_SEPARATION:
  DNS LES and RANS differ by which turbulent scales are resolved versus modelled

 A7_STATISTICAL_CONTEXT:
  Averages require a declared statistical time ensemble or spatial interpretation

 A8_MODEL_DEPENDENCE:
  Turbulence closures are approximations whose validity depends on flow regime
}

REASONING {

 R1_TURBULENCE_CONTEXT {
  INPUT = fluid_flow_problem
  IDENTIFY = Reynolds_number
  IDENTIFY = geometry_and_shear
  IDENTIFY = fluctuation_data
  IDENTIFY = averaging_or_resolution strategy
  RETURN = turbulence_context
 }

 R2_REYNOLDS_DECOMPOSITION {
  INPUT = instantaneous_fields
  COMPUTE = mean_and_fluctuation fields
  RETURN = decomposed_flow
 }

 R3_RANS_REASONING {
  INPUT = NavierStokes_and_averaging operator
  APPLY = Reynolds_average
  DERIVE = RANS equations
  IDENTIFY = Reynolds_stress closure problem
  RETURN = RANS_structure
 }

 R4_TKE_REASONING {
  INPUT = fluctuation_fields
  COMPUTE = turbulent_kinetic_energy
  DERIVE = production_transport_dissipation budget
  RETURN = TKE_profile
 }

 R5_SPECTRAL_REASONING {
  INPUT = velocity_data
  COMPUTE = energy_spectrum
  IDENTIFY = energyContaining_inertial_and_dissipation ranges
  RETURN = spectral_profile
 }

 R6_KOLMOGOROV_REASONING {
  INPUT = viscosity_and_dissipation
  COMPUTE = eta_tau_eta_u_eta
  TEST = inertial_range_scaling
  RETURN = small_scale_profile
 }

 R7_CLOSURE_SELECTION {
  INPUT = flow_class_accuracy_and_cost requirements
  SELECT = mixingLength_kEpsilon_kOmega_ReynoldsStress_or_other model
  RETURN = turbulence_closure
 }

 R8_LES_REASONING {
  INPUT = filtered_NavierStokes
  IDENTIFY = resolved_and_subgrid scales
  SELECT = subgrid_model
  RETURN = LES_profile
 }

 R9_DNS_REASONING {
  INPUT = Reynolds_number_domain_and_resources
  ESTIMATE = required_spatial_and_temporal resolution
  RETURN = DNS_feasibility_profile
 }

 R10_VALIDATION {
  INPUT = turbulence_result
  CHECK = averaging_convergence_spectral resolution_energy budget_grid sensitivity_and_model assumptions
  RETURN = validated_turbulence_status
 }
}

CONSTRAINTS {
 C1 = "Irregular flow alone does not prove fully developed turbulence."
 C2 = "Reynolds averages require sufficient sampling or ergodic assumptions."
 C3 = "RANS closure models are not universal."
 C4 = "Kolmogorov five-thirds scaling applies under restricted assumptions."
 C5 = "Two-dimensional and three-dimensional cascades can differ qualitatively."
 C6 = "LES results depend on filter scale and subgrid model."
 C7 = "DNS must resolve the smallest dynamically relevant scales."
 C8 = "Wall turbulence requires adequate near-wall resolution or wall modelling."
 C9 = "Energy spectra require appropriate sampling and windowing."
 C10 = "Statistical convergence should be distinguished from numerical convergence."
}

SEMANTIC_EQUIVALENCE {
 "TurbulenceMathematics" <=> "MathematicalTurbulenceTheory"
 "ReynoldsAveragedNavierStokes" <=> "RANS"
 "TurbulentKineticEnergy" <=> "TKE"
 "DissipationRate" <=> "TurbulentDissipationRate"
 "DirectNumericalSimulation" <=> "DNS"
 "LargeEddySimulation" <=> "LES"
}

VALIDATION {
 V1 = "Averaging operation is explicit."
 V2 = "Mean and fluctuation definitions are consistent."
 V3 = "Reynolds stresses are computed or modelled consistently."
 V4 = "TKE and dissipation units are correct."
 V5 = "Energy spectra are adequately resolved."
 V6 = "Inertial-range claims are supported by scale separation."
 V7 = "Closure-model assumptions are documented."
 V8 = "LES filter or grid scale is explicit."
 V9 = "DNS resolution is checked against small-scale requirements."
 V10 = "Statistical and numerical convergence are both assessed."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 TURBULENCE_DEFINITION = 0.99
 REYNOLDS_REASONING = 0.99
 RANS_REASONING = 0.98
 TKE_REASONING = 0.99
 SPECTRAL_REASONING = 0.98
 KOLMOGOROV_REASONING = 0.98
 CLOSURE_REASONING = 0.97
 LES_REASONING = 0.98
 DNS_REASONING = 0.98

 POLICY =
  "Reduce confidence when averaging duration, Reynolds number, wall treatment, spectral resolution, closure choice, LES filtering, DNS resolution or statistical convergence are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  TurbulenceReasoning,
  ReynoldsDecompositionReasoning,
  RANSReasoning,
  ReynoldsStressReasoning,
  TKEReasoning,
  DissipationReasoning,
  SpectrumReasoning,
  EnergyCascadeReasoning,
  KolmogorovScalingReasoning,
  IntermittencyReasoning,
  ClosureReasoning,
  LESReasoning,
  DNSReasoning,
  WallTurbulenceReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "turbulence mathematics" -> TurbulenceMathematics
  "turbulence" -> Turbulence
  "Reynolds decomposition" -> ReynoldsDecomposition
  "RANS" -> ReynoldsAveragedNavierStokes
  "Reynolds stress" -> ReynoldsStress
  "turbulent kinetic energy" -> TurbulentKineticEnergy
  "TKE" -> TurbulentKineticEnergy
  "dissipation rate" -> DissipationRate
  "DNS" -> DirectNumericalSimulation
  "LES" -> LargeEddySimulation
 }

 INTERPRETATION_ORDER = [
  detect_turbulence_context,
  identify Reynolds_number_geometry_shear_fluctuation_data_and_resolution strategy,
  perform Reynolds_decomposition_or_filtering,
  derive RANS_TKE_spectral_or_filtered representations,
  analyse Reynolds_stresses_energy_cascade_and_dissipation,
  select closure_RANS_LES_or_DNS pathway,
  assess wall treatment_intermitteny_and_scale resolution,
  validate statistical_and_numerical convergence,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("turbulence")
  OR multiscale_fluid_fluctuations_are_under_analysis
  THEN activate(TurbulenceMathematicsOntology)

 E2:
  IF Reynolds_averaging_used
  THEN identify unclosed Reynolds_stresses

 E3:
  IF RANS_requested
  THEN require explicit closure_model

 E4:
  IF LES_requested
  THEN distinguish resolved_and_subgrid scales

 E5:
  IF DNS_requested
  THEN verify smallest_scale resolution

 E6:
  IF inertial_range_claimed
  THEN test spectral scaling_and_scale separation

 E7:
  IF wall_bounded_flow
  THEN assess near_wall resolution_or_wall model

 E8:
  IF turbulent_energy_budget
  THEN compute production_transport_and_dissipation terms

 E9:
  IF statistical_result
  THEN assess averaging_convergence
}

RECURSION {
 ENTRY = TurbulenceMathematics

 EXPAND(TurbulenceMathematics) -> [
  Turbulence,
  TurbulentFlow,
  VelocityFluctuation,
  PressureFluctuation,
  ReynoldsDecomposition,
  ReynoldsAverage,
  ReynoldsAveragedNavierStokes,
  ReynoldsStress,
  ReynoldsStressTensor,
  TurbulentKineticEnergy,
  DissipationRate,
  IntegralLengthScale,
  TaylorMicroscale,
  KolmogorovLengthScale,
  KolmogorovTimeScale,
  EnergySpectrum,
  EnergyCascade,
  InertialRange,
  DissipationRange,
  KolmogorovScaling,
  StructureFunction,
  Intermittency,
  CoherentStructure,
  VortexStretching,
  Enstrophy,
  HomogeneousTurbulence,
  IsotropicTurbulence,
  AnisotropicTurbulence,
  WallTurbulence,
  MixingLayer,
  Jet,
  Wake,
  ChannelFlow,
  EddyViscosity,
  MixingLengthModel,
  KepsilonModel,
  KomegaModel,
  ReynoldsStressModel,
  DirectNumericalSimulation,
  LargeEddySimulation,
  SubgridScaleModel,
  SmagorinskyModel,
  TurbulenceClosure
 ]

 EXPAND(ScaleStructure) -> [
  IntegralLengthScale,
  TaylorMicroscale,
  KolmogorovLengthScale,
  EnergyContainingRange,
  InertialRange,
  DissipationRange
 ]

 EXPAND(ModellingApproaches) -> [
  RANS,
  EddyViscosity,
  KepsilonModel,
  KomegaModel,
  ReynoldsStressModel,
  LES,
  SubgridScaleModel,
  DNS
 ]

 STOP_CONDITION =
  "Stop when fluctuation statistics, Reynolds stresses, energy budget, spectral scales, closure or resolution strategy, wall treatment and convergence are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Fluid Mathematics"

 IMMEDIATE_CONTEXTS = [
  "Fluid Dynamics Mathematics Ontology",
  "Navier–Stokes Ontology",
  "Nonlinear Dynamics Ontology",
  "Computational Fluid Dynamics Ontologies"
 ]

 RELATED_ONTOLOGIES = [
  "Fluid Mathematics",
  "Fluid Dynamics Mathematics Ontology",
  "Navier–Stokes Ontology",
  "Continuity Equation Ontology",
  "Nonlinear Dynamics Ontology",
  "Stability Ontology",
  "Chaos Theory Ontology",
  "Probability & Statistics Ontologies",
  "Stochastic Process Ontologies",
  "Fourier Analysis Ontology",
  "Spectral Method Ontology",
  "Computational Fluid Dynamics Ontologies",
  "Scientific Computing Ontologies"
 ]

 ROUTE_RULES = [
  "Turbulence Mathematics -> Fluid Mathematics for parent semantics",
  "Turbulence Mathematics -> Fluid Dynamics Mathematics for continuum flow interpretation",
  "Turbulence Mathematics -> Navier–Stokes for governing nonlinear fluid equations",
  "Turbulence Mathematics -> Nonlinear Dynamics for multiscale nonlinear interaction",
  "Turbulence Mathematics -> Stability for transition and instability",
  "Turbulence Mathematics -> Chaos Theory for sensitive complex dynamics",
  "Turbulence Mathematics -> Probability & Statistics for fluctuation statistics",
  "Turbulence Mathematics -> Fourier Analysis for spectral energy representation",
  "Turbulence Mathematics -> CFD for RANS LES and DNS implementation"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible turbulence statistics, closures or simulation pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve fluctuation-statistics semantics.",
  "Preserve Reynolds-average semantics.",
  "Preserve energy-cascade semantics.",
  "Preserve scale hierarchy semantics.",
  "Preserve RANS-versus-LES-versus-DNS distinction.",
  "Preserve closure-model assumptions.",
  "Preserve statistical-versus-numerical convergence distinction.",
  "Preserve machine-readable turbulence semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Turbulence mathematics studies irregular multiscale fluid motion, fluctuation statistics, nonlinear energy transfer and closure of unresolved scales."

 REYNOLDS_SUMMARY =
  "Reynolds decomposition separates mean flow from turbulent fluctuations and introduces Reynolds stresses into averaged momentum equations."

 TKE_SUMMARY =
  "Turbulent kinetic energy measures fluctuation energy and evolves through production, transport and dissipation."

 SPECTRAL_SUMMARY =
  "Energy spectra describe how turbulent kinetic energy is distributed across scales."

 KOLMOGOROV_SUMMARY =
  "Classical Kolmogorov theory predicts inertial-range scaling and small dissipative scales under idealised assumptions."

 MODELLING_SUMMARY =
  "RANS models unresolved turbulence statistically, LES resolves large eddies and models subgrid scales, while DNS resolves all dynamically relevant scales."

 VALIDATION_SUMMARY =
  "Turbulence results should be checked for statistical convergence, spectral resolution, energy balance and numerical convergence."
}

FLOW {
 INPUT
 -> detect_turbulence_context
 -> identify Reynolds_number_geometry_shear_wall_conditions_fluctuation_data_and_resolution strategy
 -> perform Reynolds_decomposition_or_filtering
 -> compute mean_fields_Reynolds_stresses_TKE_dissipation_and_integral scales
 -> if_spectral_data compute energy_spectrum_structure functions_and_scale ranges
 -> analyse energy_cascade_vortex stretching_intermitteny_and_coherent structures
 -> choose RANS_LES_DNS_or_statistical modelling pathway
 -> if_RANS select closure_model
 -> if_LES select filter_and_subgrid model
 -> if_DNS verify smallest_scale resolution
 -> validate statistical_convergence_energy budget_grid independence_and_time-step sensitivity
 -> route to fluid_mathematics fluid_dynamics NavierStokes nonlinear_dynamics stability chaos probability_statistics stochastic_processes Fourier CFD_or_scientific_computing ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Turbulence Mathematics Ontology defines multiscale irregular fluid dynamics. It supports Reynolds decomposition and averaging, Reynolds stresses, turbulent kinetic energy and dissipation, integral, Taylor and Kolmogorov scales, energy spectra and cascades, inertial and dissipation ranges, Kolmogorov scaling, structure functions, intermittency, coherent structures, vortex stretching, homogeneous, isotropic, anisotropic and wall turbulence, jets, wakes, mixing layers and channel flow, turbulence closure, eddy-viscosity, k-epsilon, k-omega and Reynolds-stress models, DNS, LES, subgrid modelling and statistical convergence."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-APPLIED-MATHEMATICS-TURBULENCE-MATHEMATICS-ONTOLOGY-V1"
}

}

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