Skip to main content

Sampling Ontology

Instrumentation
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Sampling Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/instrumentation/sampling-ontology.html

FLOW SamplingOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Instrumentation
    -> Sampling Ontology

  PURPOSE:
    Represent sampling as the process of selecting, observing or acquiring discrete values, events, specimens or subsets from a continuous signal, temporal process, spatial field, population or material system. The ontology models temporal sampling, spatial sampling, statistical sampling, physical specimen sampling, sampling frequency and interval, Nyquist-Shannon conditions, aliasing, sample-and-hold behaviour, aperture, jitter, multiplexing, synchronous and asynchronous sampling, random and stratified sampling, representativeness, sampling bias, sample size, uncertainty, provenance, metadata and machine-consumable reasoning while strictly distinguishing sampling from measurement, quantisation, interpolation, averaging and complete population observation.

  ENTITY Sampling {
    TYPE: ObservationSelectionProcess

    DEFINITION:
      process_of_selecting_or_acquiring_discrete_observations
      from_a_signal_process_field_population_or_material
      according_to_declared_sampling_design

    PROPERTIES:
      has_sampling_domain
      has_sampling_unit
      has_sampling_design
      has_sampling_interval_or_selection_rule
      has_sample_size
      may_be_temporal
      may_be_spatial
      may_be_statistical
      may_be_physical
      may_introduce_sampling_uncertainty
      may_introduce_sampling_bias
      has_provenance
  }

  ENTITY Sample {
    TYPE: SelectedObservationOrSubset

    COMPONENTS:
      sample_identifier
      source_population_or_process
      sampling_time_or_location
      observed_value_or_specimen
      selection_probability_when_relevant
      metadata
      provenance
  }

  ENTITY SamplingFrame {
    TYPE: CandidateUnitSet

    DEFINITION:
      operational_representation_of_population_or_domain
      from_which_sampling_units_are_selected

    RULE:
      frame_coverage_errors MAY create_sampling_bias
  }

  ENTITY SamplingUnit {
    TYPE: SelectableElement

    POSSIBLE:
      time_point
      time_interval
      spatial_point
      pixel
      specimen
      person
      object
      event
      batch
      volume
      area
  }

  SAMPLING_DOMAIN_MODEL {
    possible:
      temporal_signal
      spatial_field
      population
      material
      event_stream
      image
      spectrum
      distributed_sensor_network

    RULE:
      sampling_semantics MUST identify_domain
  }

  TEMPORAL_SAMPLING_MODEL {
    continuous_signal:
      x(t)

    uniform_samples:
      x[n] =
        x(n*T_s)

    sampling_interval:
      T_s

    sampling_frequency:
      f_s =
        1/T_s
      WHEN T_s > 0

    RULE:
      time_reference_and_sample_timestamps SHOULD be preserved
  }

  UNIFORM_SAMPLING_MODEL {
    sample_times:
      t_n =
        t_0+n*T_s

    RULE:
      clock_jitter_and_missing_samples_create_deviation_from_ideal_uniform_grid
  }

  NONUNIFORM_SAMPLING_MODEL {
    sample_times:
      t_n
      not_equally_spaced

    REQUIRE:
      explicit_timestamps

    RULE:
      algorithms_assuming_uniform_sampling MUST NOT be_applied_without_resampling_or_nonuniform_method
  }

  SAMPLING_FREQUENCY_MODEL {
    symbol:
      f_s

    dimension:
      T^-1

    SI_unit:
      Hz

    inverse:
      T_s =
        1/f_s
      WHEN f_s > 0
  }

  NYQUIST_FREQUENCY_MODEL {
    f_N =
      f_s/2

    RULE:
      Nyquist_frequency_is_property_of_sampling_rate
      not_necessarily_highest_recoverable_signal_frequency_in_practical_system
  }

  NYQUIST_SHANNON_MODEL {
    ideal_condition:
      bandlimited_signal_with_max_frequency_B

    sufficient_uniform_sampling:
      f_s > 2*B

    reconstruction:
      ideal_sinc_interpolation
      under_theorem_conditions

    RULE:
      practical_sampling_requires_anti_alias_transition_margin
  }

  ALIASING_MODEL {
    continuous_frequency:
      f

    sampled_equivalence:
      frequencies_differing_by_integer_multiples_of_f_s
      may_map_to_same_discrete_frequency

    RULE:
      aliasing_is_information_loss_and_cannot_generally_be_reversed_after_sampling
  }

  ANTI_ALIAS_MODEL {
    analogue_filter:
      attenuates_frequencies_that_would_alias

    REQUIRE:
      passband
      stopband
      transition_band
      sampling_frequency

    RULE:
      anti_alias_filter MUST precede_or_be_intrinsic_to_rate_reduction
  }

  BANDPASS_SAMPLING_MODEL {
    narrow_band_signal:
      may_be_sampled_below_twice_highest_absolute_frequency
      under_specific_bandpass_sampling_conditions

    RULE:
      valid_sampling_rate_ranges_depend_on_band_edges
      and_alias_mapping_must_be_unambiguous
  }

  COMPLEX_SAMPLING_MODEL {
    analytic_or_IQ_signal:
      complex_samples

    RULE:
      Nyquist_interpretation_differs_from_real_signal_sampling
      and_representation_must_be_declared
  }

  SAMPLE_HOLD_MODEL {
    sample_and_hold:
      captures_signal_over_finite_aperture
      then_holds_value_for_conversion

    parameters:
      acquisition_time
      aperture_time
      hold_time
      droop

    RULE:
      sample_is_not_mathematically_instantaneous_in_real_hardware
  }

  APERTURE_MODEL {
    aperture_time:
      finite_integration_or_capture_window

    effect:
      frequency_response_may_include_sinc_like_attenuation

    RULE:
      aperture_definition SHOULD be preserved_for_high_frequency_measurement
  }

  JITTER_MODEL {
    actual_time:
      t_n =
        ideal_t_n+delta_t_n

    timing_error:
      delta_t_n

    RULE:
      sampling_jitter_converts_signal_slope_into_amplitude_error
  }

  JITTER_ERROR_MODEL {
    first_order:
      delta_x approximately_equals
        dx/dt * delta_t

    sinusoidal_jitter_limited_SNR:
      SNR_dB approximately_equals
        -20*log10(2*pi*f_in*sigma_t)

    RULE:
      approximation_requires_small_timing_error
  }

  CLOCK_MODEL {
    sampling_clock:
      defines_sample_times

    characteristics:
      frequency_accuracy
      stability
      drift
      phase_noise
      jitter

    RULE:
      clock_reference MUST be preserved_when_timing_accuracy_is_material
  }

  SYNCHRONOUS_SAMPLING_MODEL {
    multiple_channels_or_systems:
      share_clock_or_known_phase_relation

    RULE:
      synchronous_does_not_imply_zero_channel_skew
  }

  ASYNCHRONOUS_SAMPLING_MODEL {
    channels:
      independent_clocks_or_uncoordinated_times

    REQUIRE:
      timestamps
      clock_models
      alignment_method

    RULE:
      asynchronous_data_require_time_alignment_before_direct_phase_comparison
  }

  MULTIPLEXED_SAMPLING_MODEL {
    channels:
      sampled_sequentially

    channel_time:
      t_(n,c)

    RULE:
      channel_samples_in_same_scan_are_not_simultaneous
  }

  SIMULTANEOUS_SAMPLING_MODEL {
    channels:
      independent_sample_hold_or_ADC_paths

    RULE:
      residual_skew_and_clock_distribution_delay MAY remain
  }

  CHANNEL_SKEW_MODEL {
    channel_delay:
      delta_t_c

    sinusoidal_phase_shift:
      delta_phi =
        2*pi*f*delta_t_c

    RULE:
      skew_correction_requires_known_time_offset
  }

  OVERSAMPLING_MODEL {
    sampling_frequency:
      greater_than_minimum_required_for_signal_band

    possible_benefits:
      relaxed_filter_transition
      digital_decimation
      noise_reduction_under_specific_noise_models

    RULE:
      oversampling_does_not_remove_systematic_measurement_error
  }

  UNDERSAMPLING_MODEL {
    sampling_frequency:
      below_required_rate_for_unambiguous_baseband_reconstruction

    RULE:
      undersampling_causes_aliasing_unless_valid_bandpass_sampling_design_applies
  }

  DECIMATION_MODEL {
    input_rate:
      f_s

    factor:
      M

    output_rate:
      f_s_out =
        f_s/M

    REQUIRE:
      low_pass_or_band_appropriate_filter

    RULE:
      decimation_without_anti_alias_filter_can_destroy_information
  }

  INTERPOLATION_MODEL {
    input_samples:
      x[n]

    output:
      estimates_between_original_sample_times

    RULE:
      interpolation_does_not_create_new_measured_information
  }

  RESAMPLING_MODEL {
    original:
      sample_times_or_rate

    target:
      new_times_or_rate

    process:
      reconstruction_or_interpolation_plus_sampling

    RULE:
      resampling_filter_and_timestamp_mapping MUST be preserved
  }

  DOWNsampling_MODEL {
    reduce_rate:
      keep_subset_or_resample

    RULE:
      downsampling_requires_anti_alias_control
  }

  UPSAMPLING_MODEL {
    increase_discrete_rate:
      insert_intermediate_samples_then_filter

    RULE:
      upsampling_does_not_increase_original_signal_information_content
  }

  INTEGRATING_SAMPLE_MODEL {
    sample:
      average_or_integral_over_interval

    example:
      x_n =
        (1/T_int)*integral_window(x(t)dt)

    RULE:
      integration_time_is_part_of_sampling_kernel
  }

  SAMPLING_KERNEL_MODEL {
    observed_sample:
      weighted_integral_of_signal_around_sample_location_or_time

    kernel:
      h_s

    RULE:
      real_sampling_may_be_spatiotemporal_convolution_then_discretisation
  }

  SPATIAL_SAMPLING_MODEL {
    field:
      X(r)

    samples:
      X(r_i)

    patterns:
      regular_grid
      random
      stratified
      adaptive
      transect

    RULE:
      spatial_coordinates_and_coordinate_reference_system MUST be preserved
  }

  SPATIAL_NYQUIST_MODEL {
    spatial_frequency:
      cycles_per_unit_distance

    regular_spacing:
      delta_x

    spatial_Nyquist:
      1/(2*delta_x)

    RULE:
      point_spread_function_and_sensor_footprint_also_limit_spatial_resolution
  }

  PIXEL_SAMPLING_MODEL {
    image:
      sampled_on_pixel_grid

    pixel_pitch:
      delta_x
      delta_y

    RULE:
      pixel_pitch != optical_resolution
  }

  SENSOR_FOOTPRINT_MODEL {
    sample:
      spatial_average_over_footprint

    RULE:
      footprint_size_and_shape MUST be distinguished_from_sample_spacing
  }

  REMOTE_SENSING_MODEL {
    sampling:
      ground_sample_distance
      swath
      revisit_time
      integration_time

    RULE:
      spatial_temporal_and_spectral_sampling_are_distinct_dimensions
  }

  SPECTRAL_SAMPLING_MODEL {
    spectral_coordinate:
      wavelength
      frequency
      energy
      mass_to_charge

    sample_spacing:
      delta_lambda_or_equivalent

    RULE:
      spectral_sample_spacing != spectral_resolution
  }

  EVENT_SAMPLING_MODEL {
    events:
      irregular_occurrences

    record:
      event_time
      type
      magnitude

    RULE:
      event_stream_is_not_uniformly_sampled_signal
  }

  TRIGGERED_SAMPLING_MODEL {
    trigger:
      defines_acquisition_start_or_alignment

    possible:
      level
      edge
      event
      external
      software

    RULE:
      trigger_latency_and_jitter SHOULD be preserved
  }

  ADAPTIVE_SAMPLING_MODEL {
    sampling_design:
      changes_based_on_observed_data_or_state

    examples:
      higher_rate_near_event
      denser_spatial_sampling_near_gradient

    RULE:
      adaptation_rule MUST be preserved_to_avoid_selection_bias
  }

  RANDOM_SAMPLING_MODEL {
    selection:
      sampling_units_selected_by_random_mechanism

    REQUIRE:
      selection_probability_or_design

    RULE:
      random_sampling != arbitrary_or_convenience_sampling
  }

  SIMPLE_RANDOM_SAMPLE_MODEL {
    population:
      N_units

    sample:
      n_units

    equal_probability:
      under_declared_without_or_with_replacement_design

    RULE:
      replacement_status MUST be declared
  }

  SYSTEMATIC_STATISTICAL_SAMPLING_MODEL {
    population_order:
      choose_random_start
      then_every_kth_unit

    RULE:
      periodicity_in_population_order_can_bias_systematic_sample
  }

  STRATIFIED_SAMPLING_MODEL {
    population:
      divided_into_strata

    sample:
      selected_within_each_stratum

    allocation:
      proportional
      equal
      optimal
      custom

    RULE:
      stratum_weights MUST be preserved
  }

  CLUSTER_SAMPLING_MODEL {
    population:
      grouped_into_clusters

    process:
      sample_clusters
      then_all_or_subset_of_units

    RULE:
      intracluster_correlation_changes_variance
  }

  MULTISTAGE_SAMPLING_MODEL {
    stages:
      hierarchical_selection

    RULE:
      inclusion_probabilities_and_stage_design MUST be preserved
  }

  CONVENIENCE_SAMPLING_MODEL {
    selection:
      based_on_availability

    RULE:
      convenience_sample_should_not_be_labelled_probability_sample
  }

  PURPOSIVE_SAMPLING_MODEL {
    selection:
      based_on_declared_expert_or_target_criteria

    RULE:
      inferential_scope_requires_explicit_limit
  }

  REPRESENTATIVENESS_MODEL {
    sample:
      adequately_reflects_target_population_or_field_for_intended_inference

    RULE:
      representativeness_is_not_guaranteed_by_sample_size_alone
  }

  SAMPLING_BIAS_MODEL {
    causes:
      incomplete_frame
      nonresponse
      convenience_selection
      spatial_access
      temporal_window
      adaptive_rule
      specimen_loss

    RULE:
      repeated_measurement_of_biased_sample_does_not_remove_sampling_bias
  }

  COVERAGE_ERROR_MODEL {
    sampling_frame:
      misses_or_duplicates_target_units

    RULE:
      frame_error MUST be distinguished_from_measurement_error
  }

  NONRESPONSE_MODEL {
    selected_unit:
      no_observation

    mechanisms:
      random
      conditionally_random
      nonrandom

    RULE:
      nonresponse_adjustment_requires_model_or_weighting
  }

  SAMPLE_SIZE_MODEL {
    symbol:
      n

    RULE:
      larger_n_reduces_some_sampling_variance
      but_does_not_automatically_reduce_bias
  }

  FINITE_POPULATION_MODEL {
    population_size:
      N

    sampling_fraction:
      n/N

    finite_population_correction:
      sqrt((N-n)/(N-1))
      under_simple_random_sampling_without_replacement

    RULE:
      correction_relevant_when_sampling_fraction_not_negligible
  }

  SAMPLE_MEAN_MODEL {
    x_bar =
      sum(x_i)/n

    simple_random_sampling:
      estimates_population_mean_under_design

    RULE:
      weighting_required_for_unequal_selection_probabilities
  }

  SAMPLE_VARIANCE_MODEL {
    s^2 =
      sum((x_i-x_bar)^2)/(n-1)
    WHEN n > 1

    RULE:
      variance_estimator_depends_on_sampling_design
  }

  STANDARD_ERROR_MODEL {
    simple_iid_mean:
      SE =
        s/sqrt(n)

    RULE:
      clustered_stratified_weighted_or_correlated_designs_require_design_appropriate_SE
  }

  DESIGN_EFFECT_MODEL {
    DEFF =
      variance_under_actual_design/
      variance_under_simple_random_sample_of_same_size

    RULE:
      design_effect_definition_and_reference_design MUST be declared
  }

  EFFECTIVE_SAMPLE_SIZE_MODEL {
    n_eff:
      information_equivalent_under_reference_independent_design

    RULE:
      effective_sample_size_depends_on_weights_clustering_and_correlation
  }

  WEIGHTING_MODEL {
    design_weight:
      w_i =
        1/pi_i
      where_pi_i_is_inclusion_probability

    RULE:
      weights_MAY require_nonresponse_or_calibration_adjustment
  }

  PHYSICAL_SAMPLE_MODEL {
    sample:
      material_portion_removed_or_selected_for_measurement

    examples:
      soil
      water
      air
      blood
      rock
      food
      chemical_batch

    RULE:
      physical_sample_identity_and_chain_of_custody SHOULD be preserved
  }

  INCREMENT_MODEL {
    increment:
      individual_portion_collected_by_single_sampling_action

    composite_sample:
      combination_of_increments

    RULE:
      increment_locations_times_and_masses_or_volumes SHOULD be preserved
  }

  COMPOSITE_SAMPLE_MODEL {
    composite:
      mixture_of_multiple_increments

    purpose:
      estimate_average_property

    RULE:
      compositing_loses_information_about_between_increment_variability
  }

  HOMOGENISATION_MODEL {
    process:
      mix_or_reduce_heterogeneity_before_subsampling

    RULE:
      homogenisation_method MAY alter_measurand_and_must_be documented
  }

  SUBSAMPLING_MODEL {
    parent_sample:
      sample_A

    child:
      aliquot_or_subsample

    RULE:
      subsampling_adds_additional_sampling_variance
  }

  SAMPLE_PRESERVATION_MODEL {
    possible:
      cooling
      freezing
      chemical_preservative
      darkness
      inert_atmosphere

    RULE:
      preservation_conditions MUST match_measurand_stability_requirements
  }

  SAMPLE_TRANSPORT_MODEL {
    metadata:
      collection_time
      receipt_time
      temperature
      container
      handling

    RULE:
      transport_can_change_sample_state
  }

  CHAIN_OF_CUSTODY_MODEL {
    events:
      collection
      transfer
      receipt
      storage
      preparation
      analysis

    RULE:
      sample_chain_of_custody != metrological_traceability
  }

  TEMPORAL_REPRESENTATIVENESS_MODEL {
    sample_times:
      may_over_or_underrepresent_cycles_trends_or_events

    RULE:
      temporal_sampling_window MUST match_inference_target
  }

  SPATIAL_REPRESENTATIVENESS_MODEL {
    locations:
      may_be_clustered_or_access_biased

    RULE:
      spatial_sampling_design MUST match_field_inference
  }

  ALIASING_STATISTICAL_MODEL {
    periodic_process:
      systematic_sampling_interval_can_sync_with_cycle

    RULE:
      sampling_schedule_can_bias_estimate_even_without_signal_processing_aliasing
  }

  MEASUREMENT_ERROR_DISTINCTION_MODEL {
    sampling_error:
      difference_due_to_observing_subset_or_discrete representation

    measurement_error:
      error_in_measuring_selected_unit    RULE:
      sampling_error != measurement_error
  }

  QUANTISATION_DISTINCTION_MODEL {
    sampling:
      discretises_independent_variable_or_selects_observations

    quantisation:
      discretises_amplitude_or_value

    RULE:
      sampling != quantisation
  }

  AVERAGING_DISTINCTION_MODEL {
    averaging:
      combines_multiple_values

    sampling:
      selects_or_acquires_values

    RULE:
      averaging != sampling
  }

  INTERPOLATION_DISTINCTION_MODEL {
    interpolation:
      estimates_between_samples

    RULE:
      interpolated_points_are_not_new_measurements
  }

  CENSUS_DISTINCTION_MODEL {
    census:
      attempts_observation_of_entire_target_population

    sample:
      subset

    RULE:
      census_can_still_have_measurement_and_coverage_errors
  }

  SAMPLING_UNCERTAINTY_MODEL {
    sources:
      finite_sample
      spatial_heterogeneity
      temporal_variability
      selection_design
      subsampling
      sample_preparation
      clustering
      weighting

    RULE:
      sampling_uncertainty MAY be_separate_from_analytical_measurement_uncertainty
      but_both_contribute_to_final_inference_when_relevant
  }

  COVARIANCE_MODEL {
    sampled_values:
      may_be_correlated

    sources:
      temporal_autocorrelation
      spatial_correlation
      cluster_membership
      shared_processing

    RULE:
      covariance MUST be considered_in_variance_estimation
  }

  AUTOCORRELATION_MODEL {
    time_series:
      rho(k)

    RULE:
      positive_autocorrelation_reduces_effective_independent_information
  }

  SPATIAL_CORRELATION_MODEL {
    field:
      covariance_depends_on_separation

    possible:
      variogram
      covariance_function

    RULE:
      spatial_sampling_variance_depends_on_correlation_structure
  }

  MISSING_SAMPLE_MODEL {
    missing:
      expected_sample_not_observed

    metadata:
      index
      time_or_location
      reason

    RULE:
      missing_samples MUST be_explicit
  }

  DUPLICATE_SAMPLE_MODEL {
    duplicate:
      repeated_selection_or_record_of_same_sampling_unit

    RULE:
      duplicates_must_not_be_treated_as_independent_without_model
  }

  QUALITY_FLAG_MODEL {
    possible:
      valid
      missing
      duplicate
      contaminated
      out_of_range
      interpolated
      timing_uncertain
      location_uncertain
      preservation_failure

    RULE:
      flags MUST remain_linked_to_sample
  }

  METADATA_MODEL {
    fields:
      sampling_identifier
      sampling_domain
      source_population_or_process
      sampling_unit
      sampling_frame
      design
      selection_probability
      sample_time
      sample_location
      coordinate_reference
      sampling_rate
      integration_time
      sample_size
      operator_or_system
      instrument
      preservation
      transport
      quality_flags
      processing
      provenance

    RULE:
      sampling_metadata MUST support_reconstruction_of_sampling_design
  }

  RELATIONSHIPS {
    Sampling -> SELECTS -> SamplingUnit
    Sampling -> PRODUCES -> Sample
    SamplingFrame -> CONTAINS_OR_REPRESENTS -> CandidateSamplingUnits
    SamplingDesign -> DETERMINES -> SelectionRule
    TemporalSampling -> HAS -> SamplingFrequency
    SamplingFrequency -> DEFINES -> NyquistFrequency
    AntiAliasFilter -> SUPPORTS -> TemporalSampling
    SpatialSampling -> HAS -> SampleLocations
    StatisticalSampling -> MAY_HAVE -> InclusionProbability
    PhysicalSampling -> PRODUCES -> Specimen
    SamplingDesign -> CONTRIBUTES_TO -> SamplingUncertainty
    SamplingBias -> AFFECTS -> Representativeness
  }

  SEMANTIC_EQUIVALENCE {
    "sampling" ~= discrete_observation_selection_process
    "sample rate" ~= sampling_frequency WHEN temporal_signal_context

    sampling != measurement
    sampling != quantisation
    sampling != averaging
    sampling != interpolation
    sampling != census
    sample_spacing != physical_resolution
    spectral_sampling != spectral_resolution
    pixel_pitch != optical_resolution
    sample_chain_of_custody != metrological_traceability
    random_sampling != convenience_sampling
  }

  CONSTRAINTS {
    sampling_domain_must_be_defined = true
    sampling_unit_must_be_defined = true
    sampling_design_must_be_defined = true
    timestamps_required_for_nonuniform_temporal_sampling = true
    coordinates_required_for_spatial_sampling_when_location_is_material = true
    sampling_rate_required_for_uniform_temporal_sampling = true
    anti_alias_strategy_should_be_defined_for_bandlimited_signal_sampling = true
    inclusion_probabilities_should_be_preserved_for_probability_sampling = true
    missing_and_duplicate_samples_must_be_identified = true
    sample_size_alone_does_not_establish_representativeness = true
    sampling_and_measurement_uncertainty_should_be_distinguished = true
    provenance_must_be_preserved = true
  }

  MEASUREMENT_MODEL {
    RECORD:
      sampling_identifier
      sample_identifier
      sampling_domain
      source_population_process_or_material
      sampling_frame
      sampling_unit
      sampling_design
      selection_probability
      sample_index
      sample_value_or_specimen_identifier
      unit
      sample_time
      timestamp_uncertainty
      sampling_frequency
      sampling_interval
      aperture_or_integration_time
      clock_identifier
      trigger
      spatial_coordinates
      coordinate_reference_system
      sensor_footprint
      sample_size
      weight
      stratum
      cluster
      preservation
      transport
      chain_of_custody
      quality_flags
      sampling_uncertainty
      processing_history
      provenance

    RULE:
      each_sample MUST remain_linked_to_selection_or_acquisition_context
  }

  REASONING_RULES {
    IF sampling_interval > 0
      THEN sampling_frequency =
        1/sampling_interval

    IF sampling_frequency > 0
      THEN Nyquist_frequency =
        sampling_frequency/2

    IF ideal_bandlimited_signal_max_frequency_known
      THEN require_sampling_frequency >
        2*max_frequency
      for_standard_uniform_reconstruction_context

    IF downsampling_or_decimation_applied
      THEN require_appropriate_anti_alias_filter_before_rate_reduction

    IF nonuniform_sample_times
      THEN preserve_explicit_timestamps
      and_use_nonuniform_or_resampling_aware_analysis

    IF jitter_and_signal_slope_known
      THEN first_order_sample_error approximately_equals
        signal_slope*jitter

    IF simple_random_sample_without_replacement
      AND population_size_known
      THEN MAY apply_finite_population_correction

    IF unequal_inclusion_probabilities
      THEN use_design_weights_or_declared_weighted_estimator

    IF cluster_sampling
      THEN account_for_intracluster_correlation

    IF sample_is_composite
      THEN do_not_infer_between_increment_variability_from_composite_value_alone

    IF interpolated_values_created
      THEN label_as_derived_not_measured_samples

    IF sample_selection_is_convenience_or_purposive
      THEN restrict_probability_based_population_inference_unless_additional_model_supports_it

    IF missing_samples_detected
      THEN preserve_gap_and_missingness_reason
      rather_than_silent_replacement
  }

  VALIDATION {
    CHECK sampling_domain
    CHECK source_population_process_or_material
    CHECK sampling_frame
    CHECK sampling_unit
    CHECK sampling_design
    CHECK sample_size
    CHECK selection_probability_when_probability_sample
    CHECK temporal_sampling_rate_and_timestamps
    CHECK clock_and_jitter
    CHECK Nyquist_and_aliasing_context
    CHECK anti_alias_filter
    CHECK multiplexing_or_simultaneous_sampling
    CHECK spatial_coordinates_and_footprint
    CHECK spectral_spacing_vs_resolution
    CHECK representativeness
    CHECK sampling_bias
    CHECK clustering_stratification_and_weights
    CHECK physical_sample_preservation_and_transport
    CHECK subsampling
    CHECK missing_and_duplicate_samples
    CHECK sampling_vs_measurement_error
    CHECK sampling_uncertainty
    CHECK quality_flags
    CHECK provenance
  }

  CONFIDENCE {
    definition_confidence: 1.00
    temporal_sampling_confidence: 1.00
    Nyquist_aliasing_confidence: 1.00
    statistical_sampling_confidence: 1.00
    spatial_sampling_confidence: 0.99
    physical_sampling_confidence: 0.99
    sampling_uncertainty_confidence: 0.99
    semantic_distinction_confidence: 1.00

    RULE:
      confidence decreases when sampling domain, frame, unit, design,
      timestamps, coordinates, inclusion probabilities, anti_alias strategy,
      preservation, uncertainty or provenance is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_sampling_design:
      identify_domain_and_source
      define_sampling_frame_and_unit
      define_selection_or_acquisition_rule
      attach_rate_spacing_or_probabilities
      establish_metadata_and_provenance

    ON new_sample:
      assign_sample_identifier
      preserve_value_or_specimen_identity
      attach_time_or_location
      attach_selection_probability_or_channel_context
      attach_quality_flags
      update_sample_size
      preserve_provenance

    ON sampling_rate_revision:
      preserve_previous_rate
      update_sampling_interval_and_Nyquist_frequency
      reassess_anti_alias_filter
      mark_effective_time

    ON design_revision:
      preserve_previous_design
      update_strata_clusters_weights_locations_or_schedule
      create_new_design_version
      reassess_inferential_scope

    ON missing_or_duplicate_detection:
      preserve_original_record
      attach_quality_flag_and_reason
      update_effective_sample_size_or_analysis_metadata

    ON physical_sample_transfer:
      append_chain_of_custody
      record_storage_transport_and_preservation
      update_sample_state

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: Sampling
    canonical_output_entity: Sample

    interpretation_order:
      identify_sampling_domain
      identify_source_population_process_field_or_material
      identify_sampling_frame
      identify_sampling_unit
      identify_sampling_design
      identify_temporal_rate_or_spatial_pattern
      identify_sample_times_locations_or_selection_probabilities
      identify_aperture_footprint_or_integration_kernel
      identify_aliasing_or_dependence
      identify_strata_clusters_weights_or_adaptation
      identify_physical_sample_preservation_when_relevant
      identify_missing_duplicate_and_quality_flags
      identify_sampling_uncertainty
      identify_provenance
      validate_sampling_semantics
      infer_design_appropriate_relationships

    ambiguity_controls:
      distinguish_sampling_from_measurement
      distinguish_sampling_from_quantisation
      distinguish_sampling_from_averaging
      distinguish_sampling_from_interpolation
      distinguish_sampling_from_census
      distinguish_sample_spacing_from_physical_resolution
      distinguish_spectral_sampling_from_spectral_resolution
      distinguish_pixel_pitch_from_optical_resolution
      distinguish_sample_chain_of_custody_from_metrological_traceability
      distinguish_random_sampling_from_convenience_sampling
      preserve_domain_frame_unit_design_time_location_probability_quality_and_provenance_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_units_instrumentation_and_sampling_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Instrumentation
      -> Sampling Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      sampling_domain_model
      temporal_sampling_model
      uniform_sampling_model
      nonuniform_sampling_model
      sampling_frequency_model
      Nyquist_frequency_model
      Nyquist_Shannon_model
      aliasing_model
      anti_alias_model
      bandpass_sampling_model
      complex_sampling_model
      sample_hold_model
      aperture_model
      jitter_model
      jitter_error_model
      clock_model
      synchronous_sampling_model
      asynchronous_sampling_model
      multiplexed_sampling_model
      simultaneous_sampling_model
      channel_skew_model
      oversampling_model
      undersampling_model
      decimation_model
      interpolation_model
      resampling_model
      downsampling_model
      upsampling_model
      integrating_sample_model
      sampling_kernel_model
      spatial_sampling_model
      spatial_Nyquist_model
      pixel_sampling_model
      sensor_footprint_model
      remote_sensing_model
      spectral_sampling_model
      event_sampling_model
      triggered_sampling_model
      adaptive_sampling_model
      random_sampling_model
      simple_random_sample_model
      systematic_statistical_sampling_model
      stratified_sampling_model
      cluster_sampling_model
      multistage_sampling_model
      convenience_sampling_model
      purposive_sampling_model
      representativeness_model
      sampling_bias_model
      coverage_error_model
      nonresponse_model
      sample_size_model
      finite_population_model
      sample_mean_model
      sample_variance_model
      standard_error_model
      design_effect_model
      effective_sample_size_model
      weighting_model
      physical_sample_model
      increment_model
      composite_sample_model
      homogenisation_model
      subsampling_model
      sample_preservation_model
      sample_transport_model
      chain_of_custody_model
      temporal_representativeness_model
      spatial_representativeness_model
      aliasing_statistical_model
      measurement_error_distinction_model
      quantisation_distinction_model
      averaging_distinction_model
      interpolation_distinction_model
      census_distinction_model
      sampling_uncertainty_model
      covariance_model
      autocorrelation_model
      spatial_correlation_model
      missing_sample_model
      duplicate_sample_model
      quality_flag_model
      metadata_model
      relationships
      constraints
      measurement_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      sampling_domain_frame_or_unit_changes
      temporal_rate_clock_or_aliasing_model_changes
      spatial_spectral_or_event_sampling_changes
      statistical_sampling_design_changes
      inclusion_probability_weighting_or_cluster_changes
      physical_sampling_preservation_or_subsampling_changes
      sampling_bias_or_uncertainty_model_changes
      missing_duplicate_or_quality_state_changes
      measurement_record_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

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