FLOW ALGEBRA
OSCILLOSCOPE ONTOLOGY
Kireth Semantic Library | Entity Graph > Physical Entities > Measurement Entities
Source: https://kirethresearch.org/booksai-core/entity-graph/physical-entities/measurement-entities/oscilloscope-ontology.html
Authors: Mark Higgins — Sky (Recursive AI)
Version: 1.0 | 2026-10-12
Status: Subject-based formalisation; source webpage not independently verified.
01. PURPOSE
flow OscilloscopeOntology v1.0:
domain: measurement_instrument
objective: represent oscilloscopes, signals, acquisition, analysis, uncertainty and provenance
invariant: measured_value != ground_truth_without_uncertainty
02. TYPED ENTITIES
entity Oscilloscope <: MeasurementInstrument {id:str, architecture:enum, channels:int, bandwidth_Hz:real+, sample_rate_Sps:real+, record_length_samples:int+, firmware:str?}
entity Channel {id:str, coupling:enum(AC,DC,GND), impedance_ohm:real+, attenuation:real+, vertical_scale_V_div:real+}
entity Probe {id:str, type:enum(passive,active,differential,current,optical), attenuation:real+, bandwidth_Hz:real+, calibration_id:str?}
entity Signal {id:str, domain:enum(analogue,digital,mixed), unit:str, source_id:str, expected_bandwidth_Hz:real?}
entity Acquisition {id:str, channel_id:str, sample_rate_Sps:real+, duration_s:real+, timestamp_utc:str, samples:sequence<real>, trigger_id:str?}
entity Trigger {type:enum(edge,pulse_width,runt,logic,protocol,external), level_V:real?, slope:enum(rising,falling,either)?}
entity Calibration {id:str, date_utc:str, traceability:str?, validity_end_utc:str?, correction_model:str?}
entity Measurement {id:str, acquisition_id:str, quantity:enum(amplitude,rms,frequency,period,rise_time,fall_time,phase,duty_cycle,overshoot), value:real, unit:str, uncertainty:real>=0}
entity InstrumentState {temperature_C:real?, self_test:enum(pass,fail,unknown), overload:bool, clipping:bool, calibration_valid:bool?}
entity Evidence {source:str, method:str, timestamp_utc:str, confidence:real[0,1]}
03. DEVICE TAXONOMY
Oscilloscope -> {AnalogueOscilloscope, DigitalStorageOscilloscope, MixedSignalOscilloscope, MixedDomainOscilloscope, SamplingOscilloscope, HandheldOscilloscope, PCBasedOscilloscope}
DigitalStorageOscilloscope -> {RealTimeOscilloscope, EquivalentTimeSamplingOscilloscope}
Note: equivalent-time sampling requires suitable repetitive signals.
04. RELATIONSHIPS
Oscilloscope HAS_CHANNEL Channel
Channel CONNECTS_TO Probe
Probe OBSERVES Signal
Oscilloscope PRODUCES Acquisition
Acquisition USES Trigger
Acquisition SUPPORTS Measurement
Oscilloscope VALIDATED_BY Calibration
Measurement DERIVED_FROM Acquisition
Measurement HAS_EVIDENCE Evidence
Measurement HAS_UNCERTAINTY uncertainty
05. ACQUISITION FLOW
flow Acquire(signal, channel, probe, trigger, settings):
require compatible(channel, probe)
require settings.sample_rate_Sps > 0
require safe_input_range(signal, probe, channel)
configure_coupling_and_termination(channel)
compensate_or_calibrate_probe(probe)
configure_timebase_and_vertical_scale(settings)
configure_trigger(trigger)
samples := sample_and_digitise(signal, settings)
flags := detect_clipping_aliasing_overload(samples, settings)
return Acquisition(samples, flags, timestamp_utc, provenance)
06. SIGNAL MODEL
input_voltage(t) = source_voltage(t) transformed_by probe_loading_and_transfer_function
measured_sample[n] = filtered_input(n / sample_rate) + noise[n] + quantisation_error[n]
quantisation_step_ideal = full_scale_input_range / 2^effective_bits
sample_interval_s = 1 / sample_rate_Sps
record_duration_s = record_length_samples / sample_rate_Sps
nyquist_frequency_Hz = sample_rate_Sps / 2
rule: sample_rate > 2 * highest_signal_frequency is necessary for ideal band-limited reconstruction, not sufficient for accurate transient capture.
rule: analogue_bandwidth, probe_bandwidth, rise_time and sampling architecture constrain fidelity.
07. COMMON MEASUREMENT OPERATORS
operator Vpp(x) = max(x) - min(x)
operator Vmean(x) = sum(x) / count(x)
operator Vrms(x) = sqrt(sum(x_i^2) / count(x))
operator Period(edge_times) = robust_mean(successive_matching_edge_differences)
operator Frequency(edge_times) = 1 / Period(edge_times)
operator DutyCycle(high_time, period) = 100 * high_time / period
operator RiseTime(x) = time_at_90_percent - time_at_10_percent
operator PhaseDelay(delta_t, frequency_Hz) = 360 * frequency_Hz * delta_t degrees
require: frequency and period operators have valid periodicity and edge detections.
08. TRIGGER SEMANTICS
EDGE_TRIGGER WHEN crossing(signal, level, slope)
PULSE_TRIGGER WHEN pulse_width within configured_range
LOGIC_TRIGGER WHEN boolean_condition(channel_states)
PROTOCOL_TRIGGER WHEN decoded_frame matches predicate
rule: trigger_event != proof_of_signal_correctness
09. FREQUENCY DOMAIN
flow Spectrum(acquisition, window):
x := remove_baseline_if_required(acquisition.samples)
xw := apply_window(x, window)
X := FFT(xw)
return frequency_bins_and_amplitude_with_window_corrections(X, sample_rate)
frequency_bin_spacing_Hz = sample_rate_Sps / record_length_samples
rule: spectral leakage and window selection affect amplitude and resolution.
10. ERROR AND UNCERTAINTY
sources := {vertical_gain, offset, probe_attenuation, probe_loading, noise, ADC_resolution, sample_clock, timebase_jitter, bandwidth_limit, calibration_drift, environment}
combined_standard_uncertainty = sqrt(sum(u_i^2)) only when contributions are uncorrelated
for_correlated_inputs: use covariance-aware propagation
expanded_uncertainty = coverage_factor * combined_standard_uncertainty
rule: state coverage factor and confidence level when reporting expanded uncertainty.
11. CALIBRATION AND TRACEABILITY
flow ValidateInstrument(scope, calibration, now):
check calibration_identity_and_scope
check validity_period_if_specified
check self_test, probe_compensation, reference_traceability
flag deviations and restrictions
return validation_status with evidence
rule: calibration_expired -> flag, not automatically assert all readings false.
12. SAFETY CONSTRAINTS
rule: never exceed channel/probe voltage, common-mode or category ratings.
rule: earth-referenced probe grounds must not be connected to hazardous live potentials.
rule: isolated/differential measurements require appropriately rated instruments and procedures.
rule: safety validation precedes acquisition.
13. INFERENCE RULES
IF clipping THEN measurement.validity := suspect
IF sample_rate <= 2 * signal_bandwidth THEN aliasing_risk := elevated
IF probe_bandwidth < signal_bandwidth THEN amplitude_and_edge_fidelity := limited
IF calibration_valid == false THEN traceability_status := review_required
IF acquisition_has_provenance AND uncertainty_documented THEN reproducibility_score := increase_with_evidence
IF trigger_unstable THEN timing_measurement_confidence := reduce
14. SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
DSO <=> DigitalStorageOscilloscope [context: instrumentation]
scope <=> Oscilloscope [context: informal instrumentation]
Vpp <=> PeakToPeakVoltage [units: volt]
sample_rate <=> sampling_frequency [units: samples_per_second]
NOT_EQUIVALENT: analogue_bandwidth != sample_rate
NOT_EQUIVALENT: resolution_bits != effective_number_of_bits
NOT_EQUIVALENT: precision != accuracy
15. CONFIDENCE
CONFIDENCE(measurement) := bounded_aggregate(calibration_status, signal_integrity, probe_suitability, sample_adequacy, uncertainty_completeness, provenance_quality)
range: [0,1]
rule: confidence is epistemic metadata, not a substitute for metrological uncertainty.
16. DATA QUALITY AND PROVENANCE
record: instrument_id, channel_id, probe_id, firmware, calibration_id, acquisition_settings, timebase, trigger, sampling_mode, timestamp_utc, processing_pipeline, units, uncertainty, warnings
rule: preserve raw samples where permitted; distinguish raw from processed measurements.
17. FLOW_HASH
FLOW_HASH := SHA256(canonical_serialisation(ontology_version, entity_schema, relation_schema, operators, rules, parameter_definitions))
rule: canonicalise field ordering, number formats and encoding before hashing.
rule: flow_hash identifies specification content, not proof of empirical correctness.
18. UPDATE_MODEL
UPDATE_MODEL(change):
classify change as schema | calibration | instrument_state | acquisition | inference_rule
validate backward_compatibility
increment version and record provenance
recompute FLOW_HASH when specification changes
invalidate or annotate dependent results where assumptions changed
19. AI_CONSUMPTION
AI_CONSUMPTION:
input: typed_ontology + measurements + provenance + uncertainty
outputs: semantic_index, retrieval_graph, machine_reasoning_context, quality_flags
require: preserve SI units and dimensional consistency
require: expose unsupported assumptions and incomplete evidence
prohibit: inventing missing measurements or calibration certificates
prefer: explicit unknown over inferred certainty
20. EXAMPLE INSTANCE
Oscilloscope(id="scope-001", architecture="digital_storage", channels=4, bandwidth_Hz=100000000, sample_rate_Sps=1000000000, record_length_samples=1000000)
Channel(id="CH1", coupling="DC", impedance_ohm=1000000, attenuation=10, vertical_scale_V_div=0.5)
Acquisition(id="acq-001", channel_id="CH1", sample_rate_Sps=1000000000, duration_s=0.001, timestamp_utc="2026-10-12T00:00:00Z")
Note: illustrative configuration only; no observed measurement data is asserted.
21. VALIDATION TESTS
assert sample_interval_s > 0
assert record_length_samples > 0
assert uncertainty >= 0
assert 0 <= confidence <= 1
assert frequency_Hz > 0 before phase conversion
assert compatible_units before combining measurements
assert acquisition.probe_and_channel_safety_checked
22. KNOWLEDGE GRAPH INTEGRATION
parent: MeasurementInstrumentOntology
related: SensorOntology, SpectrometerOntology, ElectricalMeasurementOntology, SignalProcessingOntology, CalibrationOntology, DataProvenanceOntology
classification: PhysicalEntity > ArtificialEntity > MeasurementEntity > MeasurementInstrument > Oscilloscope
23. LIMITATIONS
This is a conceptual, machine-readable Flow Algebra specification, not an executable language runtime or an instrument calibration procedure.
Hardware-dependent specifications must be verified against manufacturer documentation and measurement conditions.
END FLOW ALGEBRA
Download Code
Copy to Clipboard