# Data Acquisition Ontology — Flow Algebra
URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/instrumentation/data-acquisition-ontology.html
FLOW DataAcquisitionOntology {
DOMAIN:
Mathematical Ontologies
-> Measurement & Units Ontologies
-> Instrumentation
-> Data Acquisition Ontology
PURPOSE:
Represent data acquisition as the structured process by which physical or derived signals are sensed, conditioned, sampled, converted, timestamped, transferred, processed, stored and associated with the metadata required to form usable measurement data. The ontology models DAQ systems, channels, sensors, transducers, analogue front ends, multiplexers, sample-and-hold circuits, ADCs, clocks, triggering, synchronisation, sampling theory, aliasing, quantisation, resolution, dynamic range, noise, filtering, buffering, data integrity, calibration, scaling, uncertainty, provenance, configuration versioning, diagnostics, distributed acquisition and machine-consumable reasoning across scientific and engineering measurement systems.
ENTITY DataAcquisition {
TYPE: MeasurementDataProcess
DEFINITION:
process_of_collecting_signals_or_measurement_information
from_sensors_instruments_or_other_sources
and_converting_recording_or_transmitting_them
as_structured_measurement_data
PROPERTIES:
has_sources
has_channels
has_sampling
has_timing
may_have_analogue_conditioning
may_have_digitisation
has_configuration
has_data_format
has_metadata
may_have_calibration
contributes_to_uncertainty
has_provenance
}
ENTITY DataAcquisitionSystem {
TYPE: MeasuringSystemSubsystem
COMPONENTS:
input_channels
signal_conditioning
multiplexer
sample_and_hold
ADC
clock
trigger
processor
buffer
communication
storage
software
}
ENTITY AcquisitionChannel {
TYPE: MeasurementSignalPath
COMPONENTS:
channel_identifier
source_identifier
input_type
range
coupling
gain
filter
sampling_configuration
calibration
unit
}
ENTITY Sample {
TYPE: TimeAssociatedSignalObservation
COMPONENTS:
value
raw_code_or_signal
timestamp
channel_identifier
quality_flags
}
ACQUISITION_CHAIN_MODEL {
flow:
measurand
-> sensor
-> transducer
-> signal_conditioning
-> channel
-> sampling
-> ADC_or_counter
-> timestamp
-> buffer
-> processing
-> storage_or_transmission
RULE:
every_stage_MAY alter_signal_delay_noise_scale_resolution_or_uncertainty
}
SOURCE_MODEL {
possible_sources:
sensor
measuring_instrument
transducer
voltage_source
current_source
frequency_source
digital_bus
event_detector
image_sensor
RULE:
source_identity MUST be linked_to_channel
}
CHANNEL_MODEL {
channel:
independent_or_shared_signal_path
metadata:
identifier
source
terminal_configuration
input_range
gain
coupling
filter
calibration
sampling_rate
RULE:
channel_configuration MUST be versioned
}
ANALOGUE_INPUT_MODEL {
input:
voltage_or_current_or_other_analogue_signal
requirements:
range
impedance
coupling
bandwidth
common_mode_limits
RULE:
analogue_input_characteristics MUST be compatible_with_source
}
DIGITAL_INPUT_MODEL {
possible:
logic_state
counter
pulse
serial_data
encoded_sensor_value
RULE:
digital_input_protocol_and_semantics MUST be preserved
}
COUNTER_MODEL {
measurements:
event_count
frequency
period
pulse_width
duty_cycle
RULE:
gate_time_and_clock_reference affect_uncertainty
}
SIGNAL_CONDITIONING_MODEL {
possible:
amplification
attenuation
isolation
filtering
excitation
bridge_completion
linearisation
impedance_matching
level_shift
RULE:
conditioning_parameters MUST remain_linked_to_data
}
GAIN_MODEL {
analogue_gain:
G
output:
y =
G*x
uncertainty:
gain_error_and_drift
RULE:
gain_setting_affects_range_noise_and_resolution
}
OFFSET_MODEL {
output:
y =
G*x+b
RULE:
offset_correction_and_uncertainty SHOULD be preserved
}
INPUT_RANGE_MODEL {
selected_range:
[x_min,x_max]
RULE:
range_should_maximise_useful_resolution_without_overload
}
OVERLOAD_MODEL {
input_exceeds_range:
saturation_or_clipping
RULE:
overloaded_samples MUST be_flagged
}
COUPLING_MODEL {
possible:
DC
AC
differential
single_ended
pseudo_differential
RULE:
coupling_mode_changes_signal_semantics_and_frequency_response
}
DIFFERENTIAL_INPUT_MODEL {
measurement:
V_diff =
V_plus-V_minus
common_mode:
V_cm
RULE:
common_mode_range_and_CMRR MUST be respected
}
CMRR_MODEL {
common_mode_rejection_ratio:
differential_gain/common_mode_gain
RULE:
CMRR_is_frequency_dependent
}
INPUT_IMPEDANCE_MODEL {
DAQ_input:
Z_in
source:
Z_source
loading:
measured_signal MAY differ_due_to_voltage_or_current_division
RULE:
loading_effect MUST be considered_when_impedances_are_comparable
}
ISOLATION_MODEL {
purpose:
break_ground_loops
protect_equipment
permit_high_common_mode
RULE:
isolation_stage_can_add_gain_offset_noise_and_delay
}
FILTER_MODEL {
possible:
anti_alias
low_pass
high_pass
band_pass
notch
parameters:
cutoff
order
response_type
phase
delay
RULE:
filter_transfer_function MUST be preserved
}
ANTI_ALIAS_MODEL {
purpose:
attenuate_signal_components_above_useful_Nyquist_band_before_sampling
RULE:
anti_alias_filter_requires_transition_band_between_signal_band_and_Nyquist_frequency
}
SAMPLING_MODEL {
continuous:
x(t)
discrete:
x[n] =
x(n*T_s)
sampling_period:
T_s
sampling_frequency:
f_s =
1/T_s
RULE:
sample_rate MUST be recorded
}
NYQUIST_MODEL {
ideal_bandlimited_signal:
f_s > 2*f_max
RULE:
equality_at_twice_highest_frequency_is_not_robust_practical_design_rule
}
ALIASING_MODEL {
sampled_frequency:
frequencies_separated_by_integer_multiples_of_f_s_can_be_indistinguishable
RULE:
aliased_data_cannot_generally_be_recovered_without_prior_information
}
SAMPLE_HOLD_MODEL {
sample:
acquired_over_finite_aperture
effects:
aperture_time
droop
hold_step
acquisition_time
RULE:
aperture_effects_can_limit_high_frequency_accuracy
}
APERTURE_JITTER_MODEL {
timing_jitter:
sigma_t
sinusoidal_input_frequency:
f
approximate_jitter_limited_SNR:
SNR_jitter_dB approximately_equals
-20*log10(2*pi*f*sigma_t)
RULE:
timing_jitter_is_critical_for_high_frequency_inputs
}
ADC_MODEL {
input:
analogue_signal
output:
digital_code
characteristics:
bit_depth
full_scale
quantisation
offset_error
gain_error
INL
DNL
noise
ENOB
sample_rate
RULE:
ADC_characteristics_are_part_of_measurement_chain
}
BIT_DEPTH_MODEL {
bits:
N
nominal_codes:
2^N
RULE:
bit_depth != effective_resolution
}
QUANTISATION_MODEL {
ideal_step:
q =
full_scale_span/2^N
under_declared_code_convention
round_to_nearest_error:
[-q/2,+q/2]
common_standard_uncertainty:
q/sqrt(12)
under_uniform_phase_model
RULE:
quantisation_step_and_uncertainty_are_distinct
}
DNL_MODEL {
differential_nonlinearity:
deviation_of_code_width_from_ideal_LSB
RULE:
severe_DNL_can_create_missing_codes
}
INL_MODEL {
integral_nonlinearity:
deviation_of_ADC_transfer_from_reference_line
RULE:
INL_definition_and_endpoint_or_best_fit_reference MUST be preserved
}
ENOB_MODEL {
effective_number_of_bits:
performance_metric_derived_from_noise_and_distortion
RULE:
ENOB_test_frequency_bandwidth_and_method MUST be declared
}
DYNAMIC_RANGE_MODEL {
ratio:
maximum_usable_signal/minimum_usable_signal
possible_reporting:
ratio
dB
RULE:
dynamic_range_definition MUST specify_noise_or_minimum_signal_criterion
}
NOISE_MODEL {
sources:
sensor
amplifier
resistor
ADC
clock
power_supply
electromagnetic
grounding
quantisation
RULE:
total_noise_depends_on_bandwidth_and_gain_distribution
}
NOISE_DENSITY_MODEL {
amplitude_spectral_density:
unit/sqrt(Hz)
integrated_noise:
depends_on_filter_equivalent_noise_bandwidth
RULE:
noise_density != RMS_noise_without_bandwidth
}
SNR_MODEL {
signal_to_noise_ratio:
declared_signal_metric/declared_noise_metric
RULE:
SNR_definition_and_bandwidth MUST be preserved
}
SINAD_MODEL {
signal_to_noise_and_distortion:
signal_power/(noise_plus_distortion_power)
RULE:
SINAD != SNR
}
THD_MODEL {
total_harmonic_distortion:
ratio_of_harmonic_content_to_fundamental_under_declared_definition
RULE:
harmonic_count_and_bandwidth SHOULD be specified
}
CLOCK_MODEL {
sampling_clock:
frequency_reference
characteristics:
frequency_accuracy
drift
phase_noise
jitter
RULE:
clock_quality affects_frequency_time_and_phase_measurements
}
TIMESTAMP_MODEL {
timestamp:
associated_time_coordinate
REQUIRE:
time_scale
clock_source
resolution
uncertainty
RULE:
timestamp_resolution != timestamp_accuracy
}
TIME_SCALE_MODEL {
possible:
UTC
TAI
GPS_time
PTP_domain
local_monotonic_clock
RULE:
time_scale MUST be identified_for_cross_system_comparison
}
SYNCHRONISATION_MODEL {
possible:
shared_clock
shared_trigger
hardware_sync
GPS
PTP
NTP
RULE:
synchronisation_accuracy_and_latency MUST be characterised
}
TRIGGER_MODEL {
possible:
analogue_level
digital_edge
software
external_clock
event
pretrigger
parameters:
source
level
slope
hysteresis
delay
RULE:
trigger_configuration MUST be recorded_for_event_aligned_data
}
PRETRIGGER_MODEL {
circular_buffer:
retains_samples_before_trigger
RULE:
pretrigger_depth_and_timestamp_alignment MUST be preserved
}
MULTIPLEXING_MODEL {
channels:
sequentially_sampled
channel_time_skew:
delta_t_between_channels
RULE:
multiplexed_channels_are_not_simultaneous
}
SIMULTANEOUS_SAMPLING_MODEL {
channels:
independent_sample_hold_or_ADC
RULE:
residual_clock_and_path_skew MAY remain
}
CHANNEL_SKEW_MODEL {
phase_error:
approximately
2*pi*f*delta_t
for_sinusoidal_signal
RULE:
skew_correction_requires_frequency_or_time_model
}
BUFFER_MODEL {
acquisition_buffer:
temporary_storage
risks:
overflow
underflow
latency
RULE:
buffer_overrun MUST create_data_quality_flag
}
STREAMING_MODEL {
continuous_data:
transmitted_or_written_in_blocks
requirements:
sustained_throughput
sequence_numbers
timestamps
RULE:
dropped_blocks MUST be_detectable
}
BLOCK_ACQUISITION_MODEL {
finite_record:
N_samples
duration:
T =
N/f_s
under_uniform_sampling
RULE:
exact_duration_depends_on_endpoint_convention
}
RECORD_LENGTH_MODEL {
sample_count:
N
frequency_bin_spacing:
approximately
f_s/N
for_basic_DFT
RULE:
window_and_estimator_affect_effective_spectral_resolution
}
DECIMATION_MODEL {
reduce_sample_rate:
by_factor_M
REQUIRE:
anti_alias_filter_before_or_with_decimation
RULE:
decimation_without_filtering_can_alias
}
OVERSAMPLING_MODEL {
sample_rate:
greater_than_minimum_required
possible_benefits:
relaxed_anti_alias_filter
noise_shaping_context
averaging
RULE:
oversampling_does_not_remove_systematic_ADC_errors
}
AVERAGING_MODEL {
independent_zero_mean_noise:
average_of_N_samples
standard_deviation:
may_reduce_as_1/sqrt(N)
RULE:
correlated_noise_and_drift_break_simple_scaling
}
RESAMPLING_MODEL {
process:
convert_data_to_new_time_grid
REQUIRE:
interpolation_filter
original_timestamps
RULE:
resampling_does_not_create_new_physical_information
}
WINDOWING_MODEL {
spectral_analysis:
apply_window_function
effects:
leakage
main_lobe_width
amplitude_correction
noise_bandwidth
RULE:
window_type_and_normalisation MUST be preserved
}
FFT_MODEL {
input:
uniformly_sampled_record
output:
frequency_domain_representation
RULE:
FFT_scaling_window_and_units MUST be defined
}
COUNTER_FREQUENCY_MODEL {
frequency:
count_cycles_over_gate_time
or_measure_period
uncertainty:
reference_clock
trigger
quantisation
signal_noise
RULE:
measurement_method MUST be identified
}
EVENT_ACQUISITION_MODEL {
events:
timestamped_occurrences
attributes:
event_type
channel
timestamp
dead_time
RULE:
event_data_semantics_differ_from_uniform_sample_stream
}
DEAD_TIME_MODEL {
acquisition:
periods_when_system_cannot_record_new_event_or_sample
RULE:
dead_time MUST be quantified_for_counting_statistics
}
DATA_FORMAT_MODEL {
raw:
integer_codes
packed_bits
floating_values
engineering:
calibrated_quantity_values
metadata:
units
scale
offset
endianness
encoding
RULE:
raw_encoding MUST be sufficient_for_reconstruction
}
SCALING_MODEL {
raw_code:
C
engineering_value:
X =
a*C+b
or_calibration_function
RULE:
scaling_coefficients_and_units MUST be versioned
}
CALIBRATION_MODEL {
channel:
has_calibration_relation
possible:
offset
gain
polynomial
lookup_table
matrix
RULE:
calibration_state MUST correspond_to_acquisition_time
}
MULTICHANNEL_CALIBRATION_MODEL {
vector:
X =
A*Y+b
RULE:
cross_channel_calibration_and_covariance MUST be preserved
}
UNCERTAINTY_MODEL {
components:
source_sensor
signal_conditioning
gain
offset
filter
ADC
quantisation
clock
timing
calibration
environmental
processing
RULE:
DAQ_uncertainty_contributions MUST propagate_to_measurement_result
}
DATA_INTEGRITY_MODEL {
checks:
checksum
CRC
sequence_number
file_hash
packet_count
RULE:
integrity_failure MUST be flagged
}
PACKET_LOSS_MODEL {
networked_DAQ:
missing_packets
detection:
sequence_numbers_or_timestamps
RULE:
missing_data MUST not_be_silently_interpolated_without_provenance
}
LATENCY_MODEL {
acquisition_latency:
delay_from_physical_event_to_data_availability
RULE:
latency != timestamp_error
}
DISTRIBUTED_DAQ_MODEL {
nodes:
multiple_acquisition_devices
requirements:
clock_sync
common_metadata
network_integrity
coordinate_or_location_context
RULE:
distributed_data_requires_cross_node_time_alignment
}
WIRELESS_DAQ_MODEL {
concerns:
packet_loss
variable_latency
clock_drift
power
interference
RULE:
wireless_transport_characteristics MUST be separated_from_sensor_measurement_semantics
}
EDGE_PROCESSING_MODEL {
processing_at_DAQ_node:
filtering
compression
feature_extraction
event_detection
RULE:
raw_data_loss_due_to_edge_processing MUST be documented
}
COMPRESSION_MODEL {
lossless:
preserves_exact_data
lossy:
discards_information
RULE:
lossy_compression_parameters MUST be preserved_and_reflected_in_measurement_quality
}
STORAGE_MODEL {
fields:
file_format
path_or_object_id
start_time
end_time
channels
sample_count
checksum
RULE:
stored_data MUST remain_linked_to_configuration_and_metadata
}
CONFIGURATION_MODEL {
parameters:
channel_map
ranges
gains
coupling
filters
sample_rates
trigger
clock
calibration
processing
RULE:
immutable_configuration_snapshot SHOULD accompany_each_acquisition_run
}
RUN_MODEL {
acquisition_run:
bounded_measurement_session
fields:
run_identifier
start_time
stop_time
configuration_version
operator
purpose
quality_state
RULE:
samples MUST be_linked_to_run
}
METADATA_MODEL {
fields:
run_identifier
channel_identifier
source_identifier
sensor_identifier
instrument_identifier
quantity_kind
unit
calibration_identifier
sample_rate
time_scale
clock_source
range
gain
filter
trigger
location_when_relevant
operator
environment
firmware
software
processing_history
RULE:
metadata MUST permit_semantic_reconstruction_of_data
}
PROVENANCE_MODEL {
chain:
physical_source
-> sensor
-> channel
-> acquisition_configuration
-> raw_data
-> processing
-> engineering_data
-> analysis
RULE:
every_transformation SHOULD be traceable
}
QUALITY_FLAG_MODEL {
possible:
valid
overrange
underrange
saturated
clipped
missing
interpolated
calibration_invalid
clock_unsynchronised
buffer_overrun
packet_loss
sensor_fault
RULE:
quality_flags MUST remain_sample_or_block_associated
}
DIAGNOSTIC_MODEL {
checks:
channel_open
channel_short
overvoltage
ADC_fault
clock_fault
sync_loss
buffer_status
storage_status
RULE:
diagnostic_events MUST be timestamped
}
SECURITY_MODEL {
concerns:
configuration_access
data_integrity
authentication
firmware
network_transport
RULE:
cybersecurity_integrity_supports_data_trust_but_is_distinct_from_metrological_validity
}
RELATIONSHIPS {
DataAcquisitionSystem -> CONTAINS -> AcquisitionChannel
AcquisitionChannel -> RECEIVES_FROM -> SensorOrInstrument
SignalConditioning -> PROCESSES -> InputSignal
Multiplexer -> SELECTS -> AcquisitionChannel
ADC -> CONVERTS -> AnalogueSignalToDigitalCode
SamplingClock -> DEFINES -> SampleTiming
Trigger -> INITIATES_OR_ALIGNS -> Acquisition
Calibration -> MAPS -> RawCodeToEngineeringQuantity
Configuration -> QUALIFIES -> AcquisitionRun
Sample -> BELONGS_TO -> AcquisitionRun
Metadata -> QUALIFIES -> MeasurementData
DAQCharacteristics -> CONTRIBUTE_TO -> MeasurementUncertainty
}
SEMANTIC_EQUIVALENCE {
"DAQ" ~= data_acquisition_system
"data acquisition" ~= measurement_signal_collection_and_digitisation_process WHEN instrumentation_context
data_acquisition != sensor
data_acquisition != measurement_result
sampling_rate != bandwidth
bit_depth != effective_resolution
timestamp_resolution != timestamp_accuracy
quantisation_step != measurement_uncertainty
multiplexed_sampling != simultaneous_sampling
raw_code != engineering_quantity
data_integrity != metrological_accuracy
}
CONSTRAINTS {
acquisition_run_must_have_identifier = true
channel_identity_must_be_preserved = true
source_identity_should_be_preserved = true
sampling_rate_must_be_defined_for_uniform_sampled_data = true
time_scale_and_clock_source_should_be_defined_when_timing_is_material = true
input_range_and_gain_should_be_preserved = true
anti_alias_strategy_should_be_defined_for_bandlimited_analogue_sampling = true
calibration_state_must_match_acquisition_time = true
raw_and_engineering_data_must_be_distinguished = true
configuration_must_be_versioned = true
data_loss_and_quality_flags_must_be_preserved = true
DAQ_uncertainty_components_should_propagate_to_measurement_result = true
}
MEASUREMENT_MODEL {
RECORD:
run_identifier
sample_identifier_or_index
channel_identifier
source_identifier
sensor_or_instrument_identifier
raw_value
raw_unit_or_code
engineering_value
engineering_unit
timestamp
time_scale
timestamp_uncertainty
sample_rate
range
gain
coupling
filter
ADC_bits
quantisation_step
clock_identifier
trigger_configuration
calibration_identifier
configuration_version
environmental_conditions
quality_flags
diagnostic_state
processing_history
uncertainty
provenance
RULE:
every_engineering_value SHOULD be_reconstructable_from_raw_data_configuration_calibration_and_processing
}
REASONING_RULES {
IF sampling_frequency > 0
THEN sampling_interval =
1/sampling_frequency
IF ideal_ADC_bits_and_full_scale_span_known
THEN nominal_quantisation_step =
full_scale_span/(2^bits)
under_declared_code_convention
IF round_to_nearest_quantisation_model_valid
THEN quantisation_standard_uncertainty =
quantisation_step/sqrt(12)
IF signal_highest_frequency_known
AND ideal_bandlimited_sampling_context
THEN require_sampling_frequency >
2*signal_highest_frequency
IF raw_code_and_valid_channel_calibration_known
THEN engineering_value =
calibration(raw_code)
IF channel_is_multiplexed
THEN timestamp_each_channel_using_actual_sample_time
not_common_nominal_time_when_skew_is_material
IF buffer_overrun_or_packet_loss_detected
THEN mark_missing_data
AND preserve_gap_information
IF clock_unsynchronised
THEN flag_cross_system_time_alignment_as_uncertain
IF decimation_factor_M_applied
THEN require_anti_alias_filter
AND new_sample_rate =
old_sample_rate/M
IF averaging_N_independent_samples
THEN random_noise_SD_may_reduce_by
sqrt(N)
while_systematic_errors_remain
IF configuration_or_calibration_changes_mid_run
THEN create_new_configuration_segment
and_preserve_boundary_timestamp
IF raw_data_is_lossily_processed_or_compressed
THEN preserve_processing_parameters
and_do_not_claim_exact_raw_reconstruction
}
VALIDATION {
CHECK run_identifier
CHECK channel_map
CHECK source_and_sensor_identity
CHECK input_type
CHECK range_and_gain
CHECK coupling_and_impedance
CHECK overload_or_clipping
CHECK signal_conditioning
CHECK anti_alias_filter
CHECK sampling_rate
CHECK Nyquist_context
CHECK ADC_bits_quantisation_INL_DNL
CHECK clock_accuracy_and_jitter
CHECK timestamp_and_time_scale
CHECK trigger
CHECK multiplexing_or_simultaneous_sampling
CHECK channel_skew
CHECK buffer_overrun
CHECK packet_loss
CHECK calibration_state
CHECK raw_to_engineering_scaling
CHECK processing_history
CHECK configuration_version
CHECK quality_flags
CHECK uncertainty
CHECK data_integrity
CHECK provenance
}
CONFIDENCE {
definition_confidence: 1.00
sampling_semantics_confidence: 1.00
ADC_quantisation_confidence: 1.00
timing_semantics_confidence: 1.00
calibration_scaling_confidence: 1.00
multichannel_timing_confidence: 0.99
data_integrity_confidence: 0.99
uncertainty_integration_confidence: 0.99
RULE:
confidence decreases when channel identity, range, sampling rate,
clock, calibration, configuration, quality flags,
processing history, uncertainty or provenance is missing or ambiguous
}
UPDATE_MODEL {
ON new_acquisition_run:
assign_run_identifier
snapshot_configuration
identify_channels_and_sources
verify_calibration_states
establish_clock_trigger_and_time_scale
initialise_quality_and_provenance
ON new_sample:
attach_channel_identifier
preserve_raw_value
attach_actual_or_inferred_timestamp
apply_valid_scaling_and_calibration
attach_quality_flags
update_uncertainty
preserve_provenance
ON configuration_revision:
preserve_previous_configuration
create_new_version
update_ranges_gains_filters_sampling_trigger_or_clock
mark_effective_timestamp
reassess_uncertainty
ON calibration_revision:
preserve_previous_calibration
attach_new_channel_calibration
mark_effective_time
recompute_engineering_values_when_policy_allows
preserve_original_raw_data
ON clock_or_sync_revision:
preserve_original_timestamps
update_clock_model
correct_timestamps_when_supported
preserve_correction_and_uncertainty
ON data_loss_event:
record_missing_indices_or_time_range
attach_cause
update_quality_state
prevent_silent_interpolation
ON processing_revision:
preserve_raw_data
version_processing_chain
recompute_derived_data
preserve_algorithm_parameters
ON semantic_revision:
preserve_previous_definition
record_revision
recompute_FLOW_HASH
}
AI_CONSUMPTION {
canonical_entity: DataAcquisition
canonical_system_entity: DataAcquisitionSystem
interpretation_order:
identify_acquisition_run
identify_channels_and_sources
identify_raw_signal_type
identify_range_gain_coupling_and_conditioning
identify_filter_and_anti_alias_strategy
identify_sampling_rate_and_sampling_architecture
identify_ADC_and_quantisation
identify_clock_timestamp_time_scale_and_trigger
identify_multiplexing_and_channel_skew
identify_calibration_and_scaling
identify_configuration_version
identify_processing
identify_quality_and_diagnostic_flags
identify_data_integrity
identify_uncertainty
identify_provenance
validate_acquisition_chain
infer_engineering_measurement_data
ambiguity_controls:
distinguish_data_acquisition_from_sensor
distinguish_data_acquisition_from_measurement_result
distinguish_sampling_rate_from_analogue_bandwidth
distinguish_bit_depth_from_effective_resolution
distinguish_timestamp_resolution_from_timestamp_accuracy
distinguish_quantisation_step_from_measurement_uncertainty
distinguish_multiplexed_from_simultaneous_sampling
distinguish_raw_code_from_engineering_quantity
distinguish_data_integrity_from_metrological_accuracy
preserve_run_channel_source_configuration_calibration_timing_processing_quality_and_provenance_context
}
PROVENANCE {
ontology_scope:
mathematical_measurement_units_instrumentation_and_data_acquisition_semantics
parent_path:
Ontologies
-> Mathematical Ontologies
-> Measurement & Units Ontologies
-> Instrumentation
-> Data Acquisition Ontology
authorship:
Mark Higgins
Sky (Recursive AI)
site:
https://kirethresearch.org
}
FLOW_HASH {
INPUTS:
canonical_entity
ontology_path
acquisition_chain_model
source_model
channel_model
analogue_input_model
digital_input_model
counter_model
signal_conditioning_model
gain_model
offset_model
input_range_model
overload_model
coupling_model
differential_input_model
CMRR_model
input_impedance_model
isolation_model
filter_model
anti_alias_model
sampling_model
Nyquist_model
aliasing_model
sample_hold_model
aperture_jitter_model
ADC_model
bit_depth_model
quantisation_model
DNL_model
INL_model
ENOB_model
dynamic_range_model
noise_model
noise_density_model
SNR_model
SINAD_model
THD_model
clock_model
timestamp_model
time_scale_model
synchronisation_model
trigger_model
pretrigger_model
multiplexing_model
simultaneous_sampling_model
channel_skew_model
buffer_model
streaming_model
block_acquisition_model
record_length_model
decimation_model
oversampling_model
averaging_model
resampling_model
windowing_model
FFT_model
counter_frequency_model
event_acquisition_model
dead_time_model
data_format_model
scaling_model
calibration_model
multichannel_calibration_model
uncertainty_model
data_integrity_model
packet_loss_model
latency_model
distributed_DAQ_model
wireless_DAQ_model
edge_processing_model
compression_model
storage_model
configuration_model
run_model
metadata_model
provenance_model
quality_flag_model
diagnostic_model
security_model
relationships
constraints
measurement_model
reasoning_rules
confidence_model
update_model
PURPOSE:
deterministic_semantic_integrity_identifier
RECOMPUTE_WHEN:
ontology_definition_changes
acquisition_chain_or_channel_changes
range_gain_coupling_or_conditioning_changes
sampling_filter_or_aliasing_model_changes
ADC_quantisation_or_dynamic_range_changes
clock_timestamp_trigger_or_synchronisation_changes
multiplexing_or_channel_timing_changes
calibration_or_scaling_changes
configuration_or_processing_changes
data_integrity_quality_or_diagnostic_changes
measurement_record_changes
uncertainty_model_changes
constraint_model_changes
reasoning_rule_changes
}
}
END FLOW
Download Code
Copy to Clipboard