# Instrument Ontology — Flow Algebra
URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/instrumentation/instrument-ontology.html
FLOW InstrumentOntology {
DOMAIN:
Mathematical Ontologies
-> Measurement & Units Ontologies
-> Instrumentation
-> Instrument Ontology
PURPOSE:
Represent a measuring instrument as a device used alone or with supplementary devices to perform measurements, including instrument identity, measurand, sensing and transduction principles, input-output relations, range, span, sensitivity, resolution, threshold, linearity, hysteresis, repeatability, accuracy-related specifications, drift, stability, dynamic response, bandwidth, calibration, adjustment, traceability, environmental influences, data acquisition, configuration, diagnostics, maintenance, uncertainty, provenance, and machine-consumable reasoning across analogue, digital and smart measuring instruments.
ENTITY MeasuringInstrument {
TYPE: MeasurementSystemDevice
DEFINITION:
device_used_for_making_measurements
alone_or_in_conjunction_with_one_or_more_supplementary_devices
PROPERTIES:
has_identifier
has_measurand_scope
has_operating_principle
has_input_output_relation
has_measuring_range
has_metrological_characteristics
has_calibration_state
has_configuration
may_have_sensor
may_have_transducer
may_have_digital_processing
may_have_uncertainty_contributions
has_provenance
}
ENTITY InstrumentIdentifier {
TYPE: PersistentIdentity
COMPONENTS:
manufacturer
model
serial_number
asset_identifier
firmware_version_when_relevant
RULE:
physical_instrument_identity MUST be_preserved_across_measurements
}
ENTITY InstrumentState {
TYPE: OperationalState
POSSIBLE:
active
standby
warming_up
calibrated
calibration_due
out_of_calibration
overrange
fault
maintenance
retired
RULE:
state_at_measurement_time SHOULD be preserved
}
INSTRUMENT_CLASS_MODEL {
possible:
analogue_instrument
digital_instrument
indicating_instrument
recording_instrument
integrating_instrument
totalising_instrument
sensor_based_instrument
laboratory_instrument
field_instrument
reference_instrument
portable_instrument
embedded_instrument
smart_instrument
RULE:
class_labels MAY overlap_and_should_not_be_forced_into_single_exclusive_class
}
MEASURAND_MODEL {
instrument:
intended_to_measure_declared_quantity_kinds
examples:
length
mass
temperature
pressure
voltage
current
frequency
optical_power
concentration
RULE:
instrument_capability != actual_measurand_of_every_measurement
}
INPUT_OUTPUT_MODEL {
input_quantity:
X
indication_or_output:
Y
relation:
Y =
f(X,state,environment,time)
inverse:
X_hat =
calibration_inverse(Y,...)
RULE:
raw_output_and_measured_quantity_value MUST be_distinguished
}
OPERATING_PRINCIPLE_MODEL {
possible:
mechanical
electrical
electromagnetic
optical
thermal
acoustic
chemical
electrochemical
radiation
quantum
hybrid
RULE:
operating_principle SHOULD link_to_transfer_and_influence_models
}
SENSOR_COMPONENT_MODEL {
sensor:
directly_affected_by_measurand_carrier
RULE:
sensor MAY be_integral_or_external_to_instrument
}
TRANSDUCER_COMPONENT_MODEL {
transducer:
converts_input_quantity_or_signal_to_output_quantity_or_signal
RULE:
instrument_can_contain_multiple_transduction_stages
}
INDICATION_MODEL {
indication:
quantity_value_or_displayed_signal_provided_by_instrument
possible:
pointer_position
digits
voltage
current
frequency
count
digital_code
software_value
RULE:
indication != corrected_measurement_result_in_general
}
RANGE_MODEL {
lower_limit:
x_min
upper_limit:
x_max
measuring_interval:
[x_min,x_max]
span:
x_max-x_min
RULE:
range_setting MUST be preserved_for_multirange_instruments
}
AUTORANGE_MODEL {
instrument:
automatically_selects_range
metadata:
selected_range
transition_time
hysteresis_between_ranges
RULE:
selected_range SHOULD be_recorded_with_each_measurement_when_it_affects_resolution_or_uncertainty
}
OVERLOAD_MODEL {
input:
exceeds_rated_or_measuring_range
effects:
saturation
clipping
damage
recovery_delay
altered_calibration
RULE:
overload_event MUST be_flagged
}
SENSITIVITY_MODEL {
local:
S =
dY/dX
linear:
S =
gain
RULE:
sensitivity != resolution
}
RESOLUTION_MODEL {
definition:
smallest_change_in_input_causing_perceptible_indication_change
possible_limiters:
scale_interval
display_count
quantisation
noise
threshold
hysteresis
RULE:
nominal_and_effective_resolution SHOULD be_distinguished
}
THRESHOLD_MODEL {
threshold:
minimum_input_change_or_level_causing_detectable_response
RULE:
threshold != resolution_in_general
}
DEAD_BAND_MODEL {
input_interval:
produces_no_detectable_output_change
RULE:
dead_band_can_degrade_small_signal_measurement
}
LINEARITY_MODEL {
calibration_curve:
Y =
f(X)
reference_line:
Y_ref =
a*X+b
nonlinearity:
deviation =
Y-Y_ref
RULE:
nonlinearity_definition_and_reference_line MUST be declared
}
OFFSET_MODEL {
zero_input:
output_may_not_equal_zero
offset:
b
correction:
subtract_or_compensate_estimated_offset
RULE:
offset_uncertainty MUST be preserved
}
GAIN_MODEL {
scale_factor:
a
relation:
Y =
a*X+b
RULE:
gain_uncertainty_propagates_to_measurement
}
HYSTERESIS_MODEL {
output:
depends_on_previous_input_path
metric:
difference_between_upscale_and_downscale_indications_at_same_input
RULE:
input_history MAY be_required_for_precision_interpretation
}
REPEATABILITY_MODEL {
repeated_indications:
under_repeatability_conditions
metric:
standard_deviation_or_other_declared_dispersion
RULE:
repeatability != accuracy
}
PRECISION_MODEL {
precision:
agreement_among_replicate_indications_or_results
RULE:
precision != resolution
and_precision !=_accuracy
}
ACCURACY_SPECIFICATION_MODEL {
manufacturer_specification:
may_use
percent_reading
percent_range
percent_full_scale
digits
counts
combined_terms
RULE:
instrument_accuracy_specification MUST be parsed_as_operational_limit_or_uncertainty_input
not_universal_numeric_measurement_accuracy
}
TRUENESS_MODEL {
comparison:
average_indication_vs_reference
RULE:
trueness_requires_reference_value
}
DRIFT_MODEL {
time:
instrument_characteristics_change
possible:
zero_drift
span_drift
sensitivity_drift
RULE:
calibration_interval SHOULD reflect_drift_and_stability
}
STABILITY_MODEL {
characteristic:
ability_to_maintain_metrological_properties_over_time
RULE:
stability_period_and_conditions MUST be declared
}
WARMUP_MODEL {
warmup_time:
interval_before_declared_performance_is_met
RULE:
measurements_before_warmup_complete SHOULD be_flagged_when_performance_can_change
}
DYNAMIC_RESPONSE_MODEL {
input:
X(t)
output:
Y(t)
transfer:
H(s)
characteristics:
time_constant
rise_time
settling_time
overshoot
bandwidth
phase
RULE:
static_calibration_alone_is_insufficient_for_dynamic_measurement
}
FIRST_ORDER_MODEL {
equation:
tau*dY/dt+Y =
K*X
parameters:
time_constant
static_gain
RULE:
first_order_model_requires_declared_validity
}
SECOND_ORDER_MODEL {
parameters:
natural_frequency
damping_ratio
gain
RULE:
resonance_and_overshoot MAY affect_dynamic_indication
}
BANDWIDTH_MODEL {
definition:
frequency_range_meeting_declared_amplitude_or_phase_criterion
RULE:
bandwidth_metric MUST be specified
}
LATENCY_MODEL {
latency:
delay_between_input_event_and_available_output
RULE:
latency != sensor_time_constant
}
NOISE_MODEL {
instrument_output_noise:
stochastic_variation_not_due_to_measurand_change
possible_sources:
thermal
electronic
quantisation
mechanical
optical
environmental
RULE:
noise_bandwidth MUST be preserved
}
SNR_MODEL {
signal_to_noise_ratio:
signal_metric/noise_metric
RULE:
signal_and_noise_metrics MUST use_compatible_definition
}
ENVIRONMENTAL_INFLUENCE_MODEL {
quantities:
temperature
humidity
pressure
vibration
electromagnetic_field
orientation
supply_voltage
influence:
may_change_offset_gain_noise_or_response
RULE:
influence_quantities SHOULD be_recorded_when_material
}
TEMPERATURE_COEFFICIENT_MODEL {
generic:
parameter(T) =
parameter_ref
+ alpha*(T-T_ref)
RULE:
linear_temperature_coefficient_has_limited_valid_range
}
POWER_SUPPLY_MODEL {
supply:
voltage_current_frequency_or_battery_state
effects:
gain
offset
noise
shutdown
RULE:
supply_conditions MAY be_part_of_valid_operating_conditions
}
CALIBRATION_MODEL {
reference_inputs:
X_ref_i
indications:
Y_i
calibration_function:
X_hat =
g(Y,environment,state)
outputs:
corrections
coefficients
covariance
uncertainty
validity_range
RULE:
calibration_result MUST be_versioned
}
CALIBRATION_STATUS_MODEL {
fields:
calibration_date
due_date
certificate_identifier
laboratory
reference_standard
traceability
status
RULE:
expired_or_invalid_calibration SHOULD trigger_quality_flag
}
ADJUSTMENT_MODEL {
action:
alter_instrument_response
RULE:
adjustment MAY invalidate_previous_calibration
}
ZEROING_MODEL {
action:
set_or_estimate_zero_response
RULE:
zeroing_is_not_full_calibration
}
TRACEABILITY_MODEL {
chain:
instrument
-> calibration_reference
-> higher_reference
-> SI_or_declared_reference
RULE:
uncertainty_at_each_link SHOULD be preserved
}
REFERENCE_INSTRUMENT_MODEL {
role:
instrument_used_as_reference_or_higher_quality_comparator
RULE:
reference_status_requires_documented_calibration_and_uncertainty
}
DIGITAL_INSTRUMENT_MODEL {
components:
sensor
analogue_front_end
ADC
processor
display
communication
RULE:
digital_output_may_include_embedded_corrections
}
ANALOGUE_INSTRUMENT_MODEL {
indication:
continuous_or_quasi_continuous_scale_position
concerns:
scale_reading
parallax
friction
hysteresis
RULE:
observer_reading_method MAY affect_result
}
ADC_MODEL {
bit_depth:
N
ideal_codes:
2^N
ideal_step:
q =
full_scale_span/2^N
under_declared_code_convention
RULE:
bit_depth != effective_number_of_bits
}
ENOB_MODEL {
effective_number_of_bits:
derived_from_noise_and_distortion_per_declared_method
RULE:
ENOB_method_and_frequency_conditions MUST be preserved
}
SAMPLING_MODEL {
sampling_frequency:
f_s
sample_interval:
T_s =
1/f_s
WHEN f_s > 0
RULE:
sample_rate_and_integration_time_are_distinct
}
FILTER_MODEL {
digital_or_analogue:
filtering
parameters:
type
cutoff
order
phase
delay
RULE:
filter_configuration MUST be linked_to_measurement_data
}
DISPLAY_MODEL {
display:
digits
scale
units
annunciators
RULE:
displayed_unit_and_prefix MUST be preserved
}
RECORDING_MODEL {
recording_instrument:
stores_measurement_values_over_time
REQUIRE:
timestamp
sample_rate
data_format
storage_precision
RULE:
storage_resolution MAY differ_from_display_resolution
}
INTEGRATING_INSTRUMENT_MODEL {
output:
integral_over_time_or_other_domain
example:
energy_meter
charge_meter
RULE:
integrated_quantity != instantaneous_rate_quantity
}
TOTALISING_MODEL {
cumulative:
sum_or_integral_of_events_or_quantity
RULE:
rollover_reset_and_counter_width MUST be preserved
}
SMART_INSTRUMENT_MODEL {
capabilities:
embedded_calibration
compensation
self_test
diagnostics
networking
digital_identity
RULE:
firmware_and_configuration_are_part_of_metrological_state
}
FIRMWARE_MODEL {
version:
affects_algorithms_and_corrections
RULE:
firmware_revision SHOULD be_preserved
}
SOFTWARE_CONFIGURATION_MODEL {
parameters:
range
filter
averaging
units
calibration_profile
trigger
sampling
RULE:
configuration_snapshot SHOULD accompany_measurement
}
COMMUNICATION_MODEL {
interfaces:
serial
USB
Ethernet
wireless
fieldbus
concerns:
scaling
packet_loss
timestamp
channel_identity
RULE:
communicated_value MUST retain_quantity_and_unit_semantics
}
DIAGNOSTIC_MODEL {
possible_flags:
overrange
underrange
sensor_fault
low_battery
calibration_due
internal_error
temperature_out_of_range
RULE:
diagnostic_state MUST be retained_with_measurement
}
SELF_TEST_MODEL {
built_in_test:
verifies_selected_functions
RULE:
successful_self_test != proof_of_full_calibration
}
MAINTENANCE_MODEL {
events:
cleaning
repair
component_replacement
battery_replacement
firmware_update
adjustment
RULE:
maintenance_event MAY require_recalibration_or_revalidation
}
UNCERTAINTY_MODEL {
instrument_contributions:
calibration
resolution
repeatability
noise
drift
linearity
hysteresis
environment
timing
digital_conversion
RULE:
instrument_uncertainty_contribution_is_part_of_broader_measurement_uncertainty
}
SPECIFICATION_MODEL {
fields:
range
resolution
accuracy_specification
sensitivity
bandwidth
response_time
drift
environmental_limits
power_requirements
RULE:
datasheet_specification_conditions MUST be preserved
}
VALIDATION_MODEL {
tests:
zero
span
linearity
repeatability
hysteresis
resolution
drift
response_time
bandwidth
environmental_influence
RULE:
validation_result MUST identify_test_method_and_reference
}
METADATA_MODEL {
fields:
manufacturer
model
serial_number
asset_id
sensor_id
firmware
calibration_certificate
configuration
range
unit
timestamp
operator
location_when_relevant
environment
maintenance_state
RULE:
metadata MUST support_traceability_of_measurement_to_instrument_state
}
LIFECYCLE_MODEL {
states:
procurement
acceptance_test
calibration
service
maintenance
recalibration
retirement
RULE:
measurement_validity MAY depend_on_lifecycle_state
}
RELATIONSHIPS {
MeasuringInstrument -> MEASURES -> Measurand
MeasuringInstrument -> MAY_CONTAIN -> Sensor
MeasuringInstrument -> MAY_CONTAIN -> Transducer
MeasuringInstrument -> HAS -> MeasuringRange
MeasuringInstrument -> HAS -> Resolution
MeasuringInstrument -> HAS -> Sensitivity
MeasuringInstrument -> HAS -> CalibrationState
Calibration -> MAPS -> IndicationToQuantityValue
ReferenceStandard -> SUPPORTS -> Calibration
InstrumentState -> QUALIFIES -> Measurement
InstrumentConfiguration -> QUALIFIES -> Measurement
InstrumentCharacteristics -> CONTRIBUTE_TO -> MeasurementUncertainty
}
SEMANTIC_EQUIVALENCE {
"measuring instrument" ~= instrument WHEN measurement_context
"instrument" ~= measuring_instrument WHEN ontology_scope
instrument != sensor
instrument != transducer
instrument != measuring_system
indication != measurement_result
sensitivity != resolution
resolution != accuracy
calibration != adjustment
calibration != zeroing
datasheet_accuracy != metrological_accuracy
raw_output != calibrated_quantity_value
}
CONSTRAINTS {
instrument_identity_must_be_preserved = true
measurand_scope_should_be_defined = true
measuring_range_must_be_defined = true
operating_principle_should_be_defined = true
calibration_state_should_be_defined = true
configuration_should_be_preserved_when_it_affects_measurement = true
overload_and_diagnostic_states_must_be_flagged = true
raw_output_and_calibrated_result_must_be_distinguished = true
firmware_version_should_be_preserved_when_metrologically_relevant = true
instrument_uncertainty_components_should_be_propagated_to_measurement_result = true
}
MEASUREMENT_MODEL {
RECORD:
instrument_identifier
manufacturer
model
serial_number
asset_identifier
instrument_class
operating_principle
measurand
raw_indication
raw_unit
measured_value
unit
range sensitivity
resolution
calibration_identifier
calibration_function
calibration_date
calibration_status
traceability
configuration
sampling_rate
filter
bandwidth
timestamp
time_reference
environmental_conditions
firmware_version
diagnostic_flags
maintenance_state
uncertainty
provenance
RULE:
every_measurement_result SHOULD remain_linked_to_specific_instrument_state_and_configuration
}
REASONING_RULES {
IF raw_indication_and_valid_calibration_function_known
THEN measured_value =
calibration_function(raw_indication)
IF linear_response_Y_equals_aX_plus_b
AND a != 0
THEN inferred_input =
(Y-b)/a
IF output_increment_and_sensitivity_known
AND sensitivity != 0
THEN nominal_input_resolution =
output_increment/abs(sensitivity)
IF full_scale_span_and_ADC_bits_known
THEN ideal_quantisation_step =
full_scale_span/(2^ADC_bits)
under_declared_code_convention
IF sampling_frequency > 0
THEN sampling_interval =
1/sampling_frequency
IF first_order_time_constant_known
THEN predict_dynamic_response
under_first_order_model
IF calibration_expired_or_instrument_fault_flag_active
THEN measurement_quality_flag =
requires_review
IF range_exceeded
THEN mark_overrange
AND do_not_interpret_saturated_indication_as_normal_measurement
IF calibration_parameters_have_covariance
THEN propagate_covariance_to_measured_value_uncertainty
IF firmware_configuration_or_adjustment_changes
THEN create_new_instrument_state_version
AND reassess_calibration_validity
}
VALIDATION {
CHECK instrument_identity
CHECK manufacturer_model_and_serial
CHECK instrument_class
CHECK operating_principle
CHECK measurand
CHECK input_output_relation
CHECK range_and_span
CHECK overload_status
CHECK sensitivity
CHECK resolution
CHECK threshold_and_dead_band
CHECK linearity
CHECK offset_and_gain
CHECK hysteresis
CHECK repeatability
CHECK drift_and_stability
CHECK dynamic_response
CHECK bandwidth_and_latency
CHECK noise_and_SNR
CHECK environmental_conditions
CHECK calibration_state
CHECK adjustment_or_zeroing_history
CHECK traceability
CHECK sampling_and_ADC_configuration
CHECK firmware_and_software_configuration
CHECK diagnostic_flags
CHECK maintenance_state
CHECK uncertainty
CHECK provenance
}
CONFIDENCE {
definition_confidence: 1.00
identity_semantics_confidence: 1.00
calibration_semantics_confidence: 1.00
range_sensitivity_resolution_confidence: 1.00
dynamic_response_confidence: 0.99
digital_instrument_confidence: 0.99
uncertainty_integration_confidence: 0.99
lifecycle_context_confidence: 0.99
RULE:
confidence decreases when instrument identity, measurand, range,
calibration, configuration, dynamic characteristics,
environmental conditions, diagnostics, uncertainty or provenance is missing or ambiguous
}
UPDATE_MODEL {
ON instrument_registration:
assign_persistent_identifier
record_manufacturer_model_serial_and_class
identify_operating_principle
attach_measurand_scope
attach_specifications
establish_lifecycle_and_provenance
ON new_measurement:
attach_instrument_identifier
identify_measurand
preserve_raw_indication
attach_range_and_configuration
verify_calibration_state
apply_valid_calibration
attach_timestamp_environment_and_diagnostics
attach_uncertainty
preserve_provenance
ON calibration_revision:
preserve_previous_calibration
update_calibration_function_coefficients_and_covariance
update_certificate_and_traceability
reassess_affected_measurements
update_uncertainty
ON configuration_revision:
preserve_previous_configuration
update_range_filter_sampling_units_or_processing
create_new_configuration_version
reassess_resolution_bandwidth_and_measurement_equivalence
ON adjustment_or_maintenance:
record_event
preserve_pre_event_state
update_instrument_state
determine_recalibration_or_revalidation_requirement
ON firmware_revision:
preserve_previous_firmware
record_new_version
identify_metrologically_affected_functions
reassess_calibration_and_processing
ON semantic_revision:
preserve_previous_definition
record_revision
recompute_FLOW_HASH
}
AI_CONSUMPTION {
canonical_entity: MeasuringInstrument
interpretation_order:
identify_instrument_identity
identify_instrument_class
identify_measurand
identify_operating_principle
identify_sensor_and_transducer_components
identify_raw_indication
identify_range_sensitivity_resolution_and_threshold
identify_static_and_dynamic_response
identify_noise_and_environmental_influences
identify_calibration_adjustment_and_traceability
identify_sampling_ADC_filter_and_timing
identify_configuration_firmware_and_software
identify_diagnostics_and_maintenance_state
identify_uncertainty
identify_provenance
validate_instrument_semantics
infer_measured_quantity
ambiguity_controls:
distinguish_instrument_from_sensor
distinguish_instrument_from_transducer
distinguish_instrument_from_measuring_system
distinguish_indication_from_measurement_result
distinguish_sensitivity_from_resolution
distinguish_resolution_from_accuracy
distinguish_calibration_from_adjustment
distinguish_calibration_from_zeroing
distinguish_datasheet_accuracy_specification_from_metrological_accuracy
distinguish_raw_output_from_calibrated_quantity_value
preserve_identity_measurand_range_configuration_calibration_environment_firmware_state_and_provenance_context
}
PROVENANCE {
ontology_scope:
mathematical_measurement_units_instrumentation_and_measuring_instrument_semantics
parent_path:
Ontologies
-> Mathematical Ontologies
-> Measurement & Units Ontologies
-> Instrumentation
-> Instrument Ontology
authorship:
Mark Higgins
Sky (Recursive AI)
site:
https://kirethresearch.org
}
FLOW_HASH {
INPUTS:
canonical_entity
ontology_path
instrument_class_model
measurand_model
input_output_model
operating_principle_model
sensor_component_model
transducer_component_model
indication_model
range_model
autorange_model
overload_model
sensitivity_model
resolution_model
threshold_model
dead_band_model
linearity_model
offset_model
gain_model
hysteresis_model
repeatability_model
precision_model
accuracy_specification_model
trueness_model
drift_model
stability_model
warmup_model
dynamic_response_model
first_order_model
second_order_model
bandwidth_model
latency_model
noise_model
SNR_model
environmental_influence_model
temperature_coefficient_model
power_supply_model
calibration_model
calibration_status_model
adjustment_model
zeroing_model
traceability_model
reference_instrument_model
digital_instrument_model
analogue_instrument_model
ADC_model
ENOB_model
sampling_model
filter_model
display_model
recording_model
integrating_instrument_model
totalising_model
smart_instrument_model
firmware_model
software_configuration_model
communication_model
diagnostic_model
self_test_model
maintenance_model
uncertainty_model
specification_model
validation_model
metadata_model
lifecycle_model
relationships
constraints
measurement_model
reasoning_rules
confidence_model
update_model
PURPOSE:
deterministic_semantic_integrity_identifier
RECOMPUTE_WHEN:
ontology_definition_changes
instrument_identity_or_class_changes
measurand_or_operating_principle_changes
range_sensitivity_resolution_or_response_changes
calibration_adjustment_or_traceability_changes
sampling_ADC_filter_or_timing_changes
environmental_noise_or_drift_model_changes
configuration_firmware_or_software_changes
diagnostics_maintenance_or_lifecycle_changes
measurement_record_changes
uncertainty_model_changes
constraint_model_changes
reasoning_rule_changes
}
}
END FLOW
Download Code
Copy to Clipboard