@oimlsmart/primmel-packages 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/oiml-r129/model/promises.prl +97 -0
- package/oiml-r144/model/promises.prl +118 -0
- package/oiml-r60/model/promises.prl +220 -0
- package/oiml-r91/model/promises.prl +150 -0
- package/package.json +2 -2
- package/oiml-r129/payload/promises.yaml +0 -102
- package/oiml-r144/payload/promises.yaml +0 -118
- package/oiml-r60/payload/promises.yaml +0 -224
- package/oiml-r91/payload/promises.yaml +0 -142
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# OIML R 129 — the manufacturer promise register (TODO.model-content/03):
|
|
2
|
+
# claims on characteristics and behavior that evaluation verifies and the
|
|
3
|
+
# certificate prints as promises-as-verified (the same doctrine as R 60's
|
|
4
|
+
# set — 02-subjects.md §2.3; 15-model-supply-chain.md §15.2). The
|
|
5
|
+
# certificate's characteristic list GENERATES from this set
|
|
6
|
+
# (browser/src/services/certificate.service.ts certificateCharacteristics()).
|
|
7
|
+
#
|
|
8
|
+
# PROVENANCE (the content-provenance rule): every promise cites the clause
|
|
9
|
+
# its claimed characteristic is defined at: the classification at R 129-2,
|
|
10
|
+
# Annex A (measurement principle) and R 129-1, 2.1 (instrument category),
|
|
11
|
+
# the dimension/scale-interval quantities at R 129-1, 2.2.5 / 2.2.6 /
|
|
12
|
+
# 2.2.9, the rated temperature conditions at R 129-1, 4.2.1, and the
|
|
13
|
+
# measuring-speed bounds at R 129-1, 2.1.10 / 2.1.11. No R 129 clause
|
|
14
|
+
# makes a certificate indication mandatory, so every row prints when
|
|
15
|
+
# available (obligation: optional). Composite range rows bind their
|
|
16
|
+
# boundary attribute pair (`attributes`) and target the response behavior
|
|
17
|
+
# the range conditions (R 60's temperature_range pattern — the composite
|
|
18
|
+
# row targets the concept, never one boundary).
|
|
19
|
+
promise_set MultiDimensionalMeasuringInstrument {
|
|
20
|
+
promise measurement_principle {
|
|
21
|
+
target measurement_principle
|
|
22
|
+
statement "The measurement principle the instrument measures dimensions by."
|
|
23
|
+
source { doc "urn:oiml:pub:r:129-2:2020" clause "A" }
|
|
24
|
+
certificate {
|
|
25
|
+
dimension measurement_principle
|
|
26
|
+
type string
|
|
27
|
+
label "Measurement principle"
|
|
28
|
+
obligation optional
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
promise instrument_category {
|
|
32
|
+
target instrument_category
|
|
33
|
+
statement "The instrument's declared category (automatic / semi-automatic)."
|
|
34
|
+
source { doc "urn:oiml:pub:r:129-1:2020" clause "2.1" }
|
|
35
|
+
certificate {
|
|
36
|
+
dimension instrument_category
|
|
37
|
+
type string
|
|
38
|
+
label "Instrument category"
|
|
39
|
+
obligation optional
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
promise max_dimension {
|
|
43
|
+
target max_dimension
|
|
44
|
+
statement "Maximum dimension per axis the instrument measures up to."
|
|
45
|
+
source { doc "urn:oiml:pub:r:129-1:2020" clause "2.2.5" }
|
|
46
|
+
certificate {
|
|
47
|
+
attribute max_dimension
|
|
48
|
+
type string
|
|
49
|
+
label "Max dimension per axis"
|
|
50
|
+
obligation optional
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
promise min_dimension {
|
|
54
|
+
target min_dimension
|
|
55
|
+
statement "Minimum dimension per axis the instrument measures down to."
|
|
56
|
+
source { doc "urn:oiml:pub:r:129-1:2020" clause "2.2.6" }
|
|
57
|
+
certificate {
|
|
58
|
+
attribute min_dimension
|
|
59
|
+
type string
|
|
60
|
+
label "Min dimension per axis"
|
|
61
|
+
obligation optional
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
promise scale_interval {
|
|
65
|
+
target scale_interval
|
|
66
|
+
statement "Scale interval (d) of the instrument's indications."
|
|
67
|
+
source { doc "urn:oiml:pub:r:129-1:2020" clause "2.2.9" }
|
|
68
|
+
certificate {
|
|
69
|
+
attribute scale_interval
|
|
70
|
+
type string
|
|
71
|
+
label "Scale interval (d)"
|
|
72
|
+
obligation optional
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
promise temperature_range {
|
|
76
|
+
target temperature-response
|
|
77
|
+
statement "The type holds its metrological performance across the rated temperature range."
|
|
78
|
+
source { doc "urn:oiml:pub:r:129-1:2020" clause "4.2.1" }
|
|
79
|
+
certificate {
|
|
80
|
+
attributes { temperature_min temperature_max }
|
|
81
|
+
type string
|
|
82
|
+
label "Temperature range"
|
|
83
|
+
obligation optional
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
promise speed_range {
|
|
87
|
+
target speed-response
|
|
88
|
+
statement "The measuring speed range the conveyor runs within (V_min…V_max)."
|
|
89
|
+
source { doc "urn:oiml:pub:r:129-1:2020" clause "2.1.10" }
|
|
90
|
+
certificate {
|
|
91
|
+
attributes { speed_min speed_max }
|
|
92
|
+
type string
|
|
93
|
+
label "Measuring speed range"
|
|
94
|
+
obligation optional
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# OIML R 144 — the manufacturer promise register (TODO.model-content/03):
|
|
2
|
+
# claims on characteristics and behavior that evaluation verifies and the
|
|
3
|
+
# certificate prints as promises-as-verified (the same doctrine as R 60's
|
|
4
|
+
# set — 02-subjects.md §2.3; 15-model-supply-chain.md §15.2). The
|
|
5
|
+
# certificate's characteristic list GENERATES from this set
|
|
6
|
+
# (browser/src/services/certificate.service.ts certificateCharacteristics()).
|
|
7
|
+
#
|
|
8
|
+
# PROVENANCE (the content-provenance rule): every promise cites the clause
|
|
9
|
+
# its claimed characteristic is defined at (R 144-1:2013): the channel
|
|
10
|
+
# classification at 1.1 (scope) / 2.1 (terminology), the per-component
|
|
11
|
+
# measuring ranges at 4.2, the rated operating conditions at 4.5.1, and
|
|
12
|
+
# the response/warm-up quantities at 2.12 / 2.11. No R 144 clause makes a
|
|
13
|
+
# certificate indication mandatory, so every row prints when available
|
|
14
|
+
# (obligation: optional). Composite range rows bind their boundary
|
|
15
|
+
# attribute pair (`attributes`) and target the measurand channel set the
|
|
16
|
+
# range is a facet of (R 60's temperature_range pattern — the composite
|
|
17
|
+
# row targets the concept, never one boundary).
|
|
18
|
+
promise_set GasAnalyticalSystem {
|
|
19
|
+
promise measurand_components {
|
|
20
|
+
target measurand_components
|
|
21
|
+
statement "The measurand components the analyzer determines — the certified channel set."
|
|
22
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "1.1" }
|
|
23
|
+
certificate {
|
|
24
|
+
dimension measurand_components
|
|
25
|
+
type string
|
|
26
|
+
label "Measured components"
|
|
27
|
+
obligation optional
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
promise measuring_principle {
|
|
31
|
+
target measuring_principle
|
|
32
|
+
statement "The measuring principle the analyzer's channels operate on."
|
|
33
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "1.1" }
|
|
34
|
+
certificate {
|
|
35
|
+
dimension measuring_principle
|
|
36
|
+
type string
|
|
37
|
+
label "Measuring principle"
|
|
38
|
+
obligation optional
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
promise sampling_approach {
|
|
42
|
+
target sampling_approach
|
|
43
|
+
statement "The sampling approach the analyzer draws the gas stream by."
|
|
44
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "2.1" }
|
|
45
|
+
certificate {
|
|
46
|
+
dimension sampling_approach
|
|
47
|
+
type string
|
|
48
|
+
label "Sampling approach"
|
|
49
|
+
obligation optional
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
promise co_range {
|
|
53
|
+
target measurand_components
|
|
54
|
+
statement "The CO measuring range the analyzer is certified over (volume fraction, ppm)."
|
|
55
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.2" }
|
|
56
|
+
certificate {
|
|
57
|
+
attributes { co_range_min co_range_max }
|
|
58
|
+
type string
|
|
59
|
+
label "CO measuring range (ppm)"
|
|
60
|
+
obligation optional
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
promise no_range {
|
|
64
|
+
target measurand_components
|
|
65
|
+
statement "The NO measuring range the analyzer is certified over (volume fraction, ppm)."
|
|
66
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.2" }
|
|
67
|
+
certificate {
|
|
68
|
+
attributes { no_range_min no_range_max }
|
|
69
|
+
type string
|
|
70
|
+
label "NO measuring range (ppm)"
|
|
71
|
+
obligation optional
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
promise no2_range {
|
|
75
|
+
target measurand_components
|
|
76
|
+
statement "The NO2 measuring range the analyzer is certified over (volume fraction, ppm)."
|
|
77
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.2" }
|
|
78
|
+
certificate {
|
|
79
|
+
attributes { no2_range_min no2_range_max }
|
|
80
|
+
type string
|
|
81
|
+
label "NO2 measuring range (ppm)"
|
|
82
|
+
obligation optional
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
promise response_time {
|
|
86
|
+
target response_time
|
|
87
|
+
statement "Response time t_90 the analyzer settles within after a step change of the measurand."
|
|
88
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "2.12" }
|
|
89
|
+
certificate {
|
|
90
|
+
attribute response_time
|
|
91
|
+
type string
|
|
92
|
+
label "Response time t_90"
|
|
93
|
+
obligation optional
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
promise warm_up_time {
|
|
97
|
+
target warm_up_time
|
|
98
|
+
statement "Warm-up time the analyzer requires before its indications hold."
|
|
99
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "2.11" }
|
|
100
|
+
certificate {
|
|
101
|
+
attribute warm_up_time
|
|
102
|
+
type string
|
|
103
|
+
label "Warm-up time"
|
|
104
|
+
obligation optional
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
promise rated_conditions {
|
|
108
|
+
target temperature-effect
|
|
109
|
+
statement "The type holds its metrological performance across the rated temperature range (t_min…t_max)."
|
|
110
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.5.1" }
|
|
111
|
+
certificate {
|
|
112
|
+
attributes { t_min t_max }
|
|
113
|
+
type string
|
|
114
|
+
label "Rated temperature range"
|
|
115
|
+
obligation optional
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# OIML R 60 — the manufacturer promise register (TODO.roadmap/08 +
|
|
2
|
+
# TODO.model-content/03): first-class claims on characteristics and
|
|
3
|
+
# behavior — possibly envelope-shaped, possibly conditional — that
|
|
4
|
+
# evaluation verifies and the certificate prints as promises-as-verified
|
|
5
|
+
# (doctrine 02-subjects.md §2.3; 15-model-supply-chain.md §15.2). The
|
|
6
|
+
# certificate's characteristic list GENERATES from this set
|
|
7
|
+
# (browser/src/services/certificate.service.ts); each entry's
|
|
8
|
+
# `certificate` block is the print projection (R 60-4, Annex B).
|
|
9
|
+
#
|
|
10
|
+
# A promise is NOT a declared attribute value: a claim stated as one bare
|
|
11
|
+
# parameter value ("t_min = −10 °C") stays an `origin: declared` attribute
|
|
12
|
+
# (linter C44 promise-not-bare-value, NARROWED semantics: only a bare
|
|
13
|
+
# restatement — attribute target + bare quantity level, no conditions, no
|
|
14
|
+
# verification linkage — is rejected; a genuine claim ABOUT an attribute/
|
|
15
|
+
# dimension, conditioned or envelope/range or symbolic-level or verified,
|
|
16
|
+
# is legal and is exactly what this register does).
|
|
17
|
+
#
|
|
18
|
+
# TYPE ALIGNMENT (TODO.roadmap/08 deliverable 1): the smart-side
|
|
19
|
+
# `PromiseDecl` (browser/src/data/standards.ts) ≡ the kernel's
|
|
20
|
+
# SubjectPromise — id, target, level, conditions, statement, verified_by,
|
|
21
|
+
# source { doc, clause }, certificate { … }.
|
|
22
|
+
#
|
|
23
|
+
# APPLICATION-SIDE MAPPING (deliverable 4): an application's SOUGHT
|
|
24
|
+
# CLASSIFICATION reads as a promise set — the subject-chain classification
|
|
25
|
+
# maps the applicant declares are shape-compatible with the
|
|
26
|
+
# dimension-target/symbolic-level entries below, which evaluation verifies
|
|
27
|
+
# and the certificate prints as promises-as-verified.
|
|
28
|
+
promise_set LoadCell {
|
|
29
|
+
promise e_max_values {
|
|
30
|
+
target e_max
|
|
31
|
+
statement "Maximum capacity E_max per model — the rated capacities the family offers."
|
|
32
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.5" }
|
|
33
|
+
certificate {
|
|
34
|
+
attribute e_max
|
|
35
|
+
type string
|
|
36
|
+
label "E_max values"
|
|
37
|
+
obligation mandatory
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
promise accuracy_class {
|
|
41
|
+
target accuracy_class
|
|
42
|
+
statement "The type holds its declared accuracy class — the error characteristic stays within the class MPE."
|
|
43
|
+
verified_by { /req/metrological/mpe /conf/metrological-tests/measurement-error-repeatability-mdlo }
|
|
44
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "5.1.1" }
|
|
45
|
+
certificate {
|
|
46
|
+
dimension accuracy_class
|
|
47
|
+
type string
|
|
48
|
+
label "Accuracy class"
|
|
49
|
+
obligation mandatory
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
promise n_lc {
|
|
53
|
+
target n_lc
|
|
54
|
+
statement "Maximum number of load cell verification intervals into which the measuring range is divided."
|
|
55
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.8" }
|
|
56
|
+
certificate {
|
|
57
|
+
attribute n_lc
|
|
58
|
+
type integer
|
|
59
|
+
label "Number of verification intervals (n_LC)"
|
|
60
|
+
obligation mandatory
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
promise v_min {
|
|
64
|
+
target v_min
|
|
65
|
+
statement "Minimum load cell verification interval the type is certified down to."
|
|
66
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.11" }
|
|
67
|
+
certificate {
|
|
68
|
+
attribute v_min
|
|
69
|
+
type string
|
|
70
|
+
label "Minimum load cell verification interval (v_min)"
|
|
71
|
+
obligation mandatory
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
promise p_lc {
|
|
75
|
+
target p_lc
|
|
76
|
+
statement "Apportioning factor p_LC of the load cell for MPE calculations."
|
|
77
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.7.2" }
|
|
78
|
+
certificate {
|
|
79
|
+
attribute p_lc
|
|
80
|
+
type number
|
|
81
|
+
label "Apportioning factor (p_LC)"
|
|
82
|
+
obligation mandatory
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
promise e_min {
|
|
86
|
+
target e_min
|
|
87
|
+
statement "Minimum dead load E_min the load cell measures from."
|
|
88
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.9" }
|
|
89
|
+
certificate {
|
|
90
|
+
attribute e_min
|
|
91
|
+
type string
|
|
92
|
+
label "Minimum dead load (E_min)"
|
|
93
|
+
obligation optional
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
promise y_ratio {
|
|
97
|
+
target y
|
|
98
|
+
statement "Relative minimum load cell verification interval Y = E_max / v_min."
|
|
99
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.15" }
|
|
100
|
+
certificate {
|
|
101
|
+
attribute y
|
|
102
|
+
type integer
|
|
103
|
+
label "Relative v_min (Y)"
|
|
104
|
+
obligation optional
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
promise z_ratio {
|
|
108
|
+
target z
|
|
109
|
+
statement "Relative minimum dead load output return Z = E_max / (2·DR)."
|
|
110
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.14" }
|
|
111
|
+
certificate {
|
|
112
|
+
attribute z
|
|
113
|
+
type integer
|
|
114
|
+
label "Relative DR (Z)"
|
|
115
|
+
obligation optional
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
promise rated_output {
|
|
119
|
+
target rated_output
|
|
120
|
+
statement "Rated output per volt of excitation at maximum capacity, with tolerance."
|
|
121
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.3" }
|
|
122
|
+
certificate {
|
|
123
|
+
attribute rated_output
|
|
124
|
+
type string
|
|
125
|
+
label "Rated output"
|
|
126
|
+
obligation optional
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
promise excitation_maximum {
|
|
130
|
+
target excitation_maximum
|
|
131
|
+
statement "Maximum excitation voltage the load cell withstands."
|
|
132
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.4.2" }
|
|
133
|
+
certificate {
|
|
134
|
+
attribute excitation_maximum
|
|
135
|
+
type number
|
|
136
|
+
label "Maximum excitation voltage (V)"
|
|
137
|
+
obligation optional
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
promise input_impedance {
|
|
141
|
+
target input_impedance
|
|
142
|
+
statement "Electrical impedance across the excitation terminals, with tolerance."
|
|
143
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.4.2" }
|
|
144
|
+
certificate {
|
|
145
|
+
attribute input_impedance
|
|
146
|
+
type string
|
|
147
|
+
label "Input impedance (Ohm)"
|
|
148
|
+
obligation optional
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
promise temperature_range {
|
|
152
|
+
target temp-effect-sensitivity
|
|
153
|
+
statement "The type holds its metrological performance across the rated temperature range (T_min…T_max)."
|
|
154
|
+
verified_by { /req/metrological/temperature-limits /conf/metrological-tests/measurement-error-repeatability-mdlo }
|
|
155
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "5.6.1" }
|
|
156
|
+
certificate {
|
|
157
|
+
attributes { t_min t_max }
|
|
158
|
+
type string
|
|
159
|
+
label "Temperature rating (°C)"
|
|
160
|
+
obligation optional
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
promise safe_overload {
|
|
164
|
+
target safe_overload
|
|
165
|
+
statement "Safe overload the load cell withstands without permanent damage, relative to E_max."
|
|
166
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.5.16" }
|
|
167
|
+
certificate {
|
|
168
|
+
attribute safe_overload
|
|
169
|
+
type string
|
|
170
|
+
label "Safe overload, relative (%)"
|
|
171
|
+
obligation optional
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
promise accuracy_class_envelope {
|
|
175
|
+
target accuracy_class
|
|
176
|
+
level symbolic C6
|
|
177
|
+
conditions ocl{self.temperature >= rated.t_min and self.temperature <= rated.t_max}
|
|
178
|
+
statement "Holds accuracy class C6 across the rated temperature range −10…+40 °C."
|
|
179
|
+
verified_by { /req/metrological/mpe /conf/metrological-tests/measurement-error-repeatability-mdlo }
|
|
180
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "5.1.1" }
|
|
181
|
+
certificate {
|
|
182
|
+
type statement
|
|
183
|
+
label "Accuracy envelope"
|
|
184
|
+
obligation optional
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
promise cable_length {
|
|
188
|
+
target cable_length
|
|
189
|
+
statement "Integral cable length (the family specification set's cable details, R 60-1, 3.4.2 (e))."
|
|
190
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "3.4.2" }
|
|
191
|
+
certificate {
|
|
192
|
+
attribute cable_length
|
|
193
|
+
type quantity
|
|
194
|
+
label "Cable length"
|
|
195
|
+
obligation optional
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
promise additional_markings {
|
|
199
|
+
target additional_markings
|
|
200
|
+
statement "Markings on the load cell beyond the required set (manufacturer's optional markings)."
|
|
201
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "6" }
|
|
202
|
+
certificate {
|
|
203
|
+
attribute additional_markings
|
|
204
|
+
type string
|
|
205
|
+
label "Additional markings"
|
|
206
|
+
obligation optional
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
promise additional_characterisation {
|
|
210
|
+
target additional_characterisation
|
|
211
|
+
statement "Additional characterisation completing the classification (R 60-1, 5.1.5 (f), 5.1.6, 5.1.7)."
|
|
212
|
+
source { doc "urn:oiml:pub:r:60-1:2021" clause "5.1.5" }
|
|
213
|
+
certificate {
|
|
214
|
+
attribute additional_characterisation
|
|
215
|
+
type string
|
|
216
|
+
label "Additional characteristics"
|
|
217
|
+
obligation optional
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# OIML R 91 — the manufacturer promise register (TODO.model-content/03):
|
|
2
|
+
# claims on characteristics and behavior that evaluation verifies and the
|
|
3
|
+
# certificate prints as promises-as-verified (the same doctrine as R 60's
|
|
4
|
+
# set — 02-subjects.md §2.3; 15-model-supply-chain.md §15.2). The
|
|
5
|
+
# certificate's characteristic list GENERATES from this set
|
|
6
|
+
# (browser/src/services/certificate.service.ts certificateCharacteristics()).
|
|
7
|
+
#
|
|
8
|
+
# PROVENANCE (the content-provenance rule): every promise cites the clause
|
|
9
|
+
# its claimed characteristic is defined at (R 91-1:2025 — the clause the
|
|
10
|
+
# model's own attribute/dimension declaration carries). R 91-1, 6.15.1
|
|
11
|
+
# makes the metrological class a MANDATORY certificate indication ("The
|
|
12
|
+
# OIML certificate shall indicate the class of the instrument"); the
|
|
13
|
+
# remaining rows print when available (obligation: optional). Composite
|
|
14
|
+
# interval rows bind their boundary attribute pair (`attributes`) and
|
|
15
|
+
# target the quantity/behavior the interval bounds (R 60's
|
|
16
|
+
# temperature_range pattern).
|
|
17
|
+
promise_set SpeedMeter {
|
|
18
|
+
promise metrological_class {
|
|
19
|
+
target metrological_class
|
|
20
|
+
statement "The type holds its declared metrological class (A or B) for moving measurements."
|
|
21
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "6.15.1" }
|
|
22
|
+
certificate {
|
|
23
|
+
dimension metrological_class
|
|
24
|
+
type string
|
|
25
|
+
label "Metrological class for moving measurements (R 91-1, 6.15.1)"
|
|
26
|
+
obligation mandatory
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
promise mode_of_use {
|
|
30
|
+
target mode_of_use
|
|
31
|
+
statement "The type operates in its declared mode of use (stationary / moving)."
|
|
32
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "5.1" }
|
|
33
|
+
certificate {
|
|
34
|
+
dimension mode_of_use
|
|
35
|
+
type string
|
|
36
|
+
label "Mode of use (stationary / moving)"
|
|
37
|
+
obligation optional
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
promise working_principle {
|
|
41
|
+
target working_principle
|
|
42
|
+
statement "The type measures speed by its declared working principle."
|
|
43
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "5.3" }
|
|
44
|
+
certificate {
|
|
45
|
+
dimension working_principle
|
|
46
|
+
type string
|
|
47
|
+
label "Working principle"
|
|
48
|
+
obligation optional
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
promise installation_principle {
|
|
52
|
+
target installation_principle
|
|
53
|
+
statement "The type installs by its declared principle (mobile / fixed / portable)."
|
|
54
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "5.2" }
|
|
55
|
+
certificate {
|
|
56
|
+
dimension installation_principle
|
|
57
|
+
type string
|
|
58
|
+
label "Installation (mobile / fixed / portable)"
|
|
59
|
+
obligation optional
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
promise triggering {
|
|
63
|
+
target triggering
|
|
64
|
+
statement "The type triggers its measurements as declared (manual / automatic)."
|
|
65
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "5.4" }
|
|
66
|
+
certificate {
|
|
67
|
+
dimension triggering
|
|
68
|
+
type string
|
|
69
|
+
label "Triggering (manual / automatic)"
|
|
70
|
+
obligation optional
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
promise cosine_compensation {
|
|
74
|
+
target cosine_compensation
|
|
75
|
+
statement "The type compensates the cosine error for its declared road orientation (along- / across-the-road)."
|
|
76
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "5.5" }
|
|
77
|
+
certificate {
|
|
78
|
+
dimension cosine_compensation
|
|
79
|
+
type string
|
|
80
|
+
label "Road orientation (along- / across-the-road)"
|
|
81
|
+
obligation optional
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
promise speed_interval {
|
|
85
|
+
target v
|
|
86
|
+
statement "The speed measuring interval the type is certified over (km/h)."
|
|
87
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "6.1" }
|
|
88
|
+
certificate {
|
|
89
|
+
attributes { speed_interval_min speed_interval_max }
|
|
90
|
+
type string
|
|
91
|
+
label "Speed measuring interval (km/h)"
|
|
92
|
+
obligation optional
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
promise distance_interval {
|
|
96
|
+
target d
|
|
97
|
+
statement "The distance measuring interval the type is certified over (m)."
|
|
98
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "6.17" }
|
|
99
|
+
certificate {
|
|
100
|
+
attributes { distance_interval_min distance_interval_max }
|
|
101
|
+
type string
|
|
102
|
+
label "Distance measuring interval (m)"
|
|
103
|
+
obligation optional
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
promise angle_interval {
|
|
107
|
+
target alpha
|
|
108
|
+
statement "The measurement angle interval the type is certified over (°)."
|
|
109
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "6.17" }
|
|
110
|
+
certificate {
|
|
111
|
+
attributes { angle_interval_min angle_interval_max }
|
|
112
|
+
type string
|
|
113
|
+
label "Angle interval (°)"
|
|
114
|
+
obligation optional
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
promise operating_temp_range {
|
|
118
|
+
target temperature-effect
|
|
119
|
+
statement "The type holds its metrological performance across the rated operating temperature range (T_min…T_max)."
|
|
120
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "6.16" }
|
|
121
|
+
certificate {
|
|
122
|
+
attributes { operating_temp_min operating_temp_max }
|
|
123
|
+
type string
|
|
124
|
+
label "Rated temperature range (°C)"
|
|
125
|
+
obligation optional
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
promise supply_voltage {
|
|
129
|
+
target supply_voltage_dc
|
|
130
|
+
statement "The DC supply voltage rating the type operates at."
|
|
131
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "6.16" }
|
|
132
|
+
certificate {
|
|
133
|
+
attribute supply_voltage_dc
|
|
134
|
+
type string
|
|
135
|
+
label "Supply voltage (V)"
|
|
136
|
+
obligation optional
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
promise software_version {
|
|
140
|
+
target software_version
|
|
141
|
+
statement "The certificate identifies the type's legally relevant software by its declared version."
|
|
142
|
+
source { doc "urn:oiml:pub:r:91-1:2025" clause "7.10.1" }
|
|
143
|
+
certificate {
|
|
144
|
+
attribute software_version
|
|
145
|
+
type string
|
|
146
|
+
label "Legally relevant software identification (R 91-1, 7.10.1; R 91-4 identification block)"
|
|
147
|
+
obligation optional
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oimlsmart/primmel-packages",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "The OIML SMART platform's authoritative model content: every Recommendation, the OIML-CS scheme, the CASCO foundations, the shared modules, and the product/program reference packages as Primmel (.prl) packages — the single source of truth the platform's data trees regenerate from. Consumed by the smart monorepo (oimlsmart/smart) at a pinned version (TODO.repos/02).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -12,6 +12,6 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@primmel/primmel": "^1.17.
|
|
15
|
+
"@primmel/primmel": "^1.17.1"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# OIML R 129 — MODEL LAYER: PROMISES (TODO.model-content/03)
|
|
2
|
-
# -----------------------------------------------------------------------------
|
|
3
|
-
# First-class manufacturer PROMISES for multi-dimensional measuring
|
|
4
|
-
# instruments: claims on characteristics and behavior that evaluation
|
|
5
|
-
# verifies and the certificate prints as promises-as-verified (the same
|
|
6
|
-
# doctrine as R 60's set — primmel-oiml-smart/docs/primmel/02-subjects.md
|
|
7
|
-
# §2.3; 15-model-supply-chain.md §15.2). R 129 had NO promise set before
|
|
8
|
-
# this wave — this register is authored from scratch, its certificate print
|
|
9
|
-
# rows carrying the surface the hand-maintained characteristics_template of
|
|
10
|
-
# evaluation/certificate-template.yaml formerly restated (which keeps only
|
|
11
|
-
# number_format and dimension_labels). The certificate's characteristic
|
|
12
|
-
# list is GENERATED from this promise set (browser/src/services/
|
|
13
|
-
# certificate.service.ts certificateCharacteristics()).
|
|
14
|
-
#
|
|
15
|
-
# PACKAGE HOME: this file is the package payload `payload/promises.yaml` —
|
|
16
|
-
# the promise set is AUTHORED here, in the package, and regenerate-data
|
|
17
|
-
# emits data/r129/model/promises.yaml VERBATIM (the generated fileHeader +
|
|
18
|
-
# these raw bytes; the documented codec exclusion, same class as
|
|
19
|
-
# payload/sample-data.yaml). The kernel's SubjectPromise carries no
|
|
20
|
-
# certificate print-projection field yet — the projection's first-class PRL
|
|
21
|
-
# home is the recorded primmel-ts kernel-minor follow-up; when it ships,
|
|
22
|
-
# this payload migrates to `promises.prl` and the promise CONTENT rides
|
|
23
|
-
# over unchanged.
|
|
24
|
-
#
|
|
25
|
-
# PROVENANCE (the content-provenance rule): every promise cites the clause
|
|
26
|
-
# its claimed characteristic is defined at (the clause the model's own
|
|
27
|
-
# attribute/dimension declaration carries): the classification at R 129-2,
|
|
28
|
-
# Annex A (measurement principle) and R 129-1, 2.1 (instrument category),
|
|
29
|
-
# the dimension/scale-interval quantities at R 129-1, 2.2.5 / 2.2.6 /
|
|
30
|
-
# 2.2.9, the rated temperature conditions at R 129-1, 4.2.1, and the
|
|
31
|
-
# measuring-speed bounds at R 129-1, 2.1.10 / 2.1.11. No R 129 clause makes
|
|
32
|
-
# a certificate indication mandatory, so every row prints when available
|
|
33
|
-
# (obligation: optional). Composite range rows bind their boundary
|
|
34
|
-
# attribute pair (`certificate.attributes`) and target the response
|
|
35
|
-
# behavior the range conditions (R 60's temperature_range pattern — the
|
|
36
|
-
# composite row targets the concept, never one boundary).
|
|
37
|
-
#
|
|
38
|
-
# Schema: data/schemas/model.yaml ($defs/promise).
|
|
39
|
-
---
|
|
40
|
-
promises:
|
|
41
|
-
|
|
42
|
-
# ── Classification (R 129-2, Annex A / R 129-1, 2.1) ─────────────────
|
|
43
|
-
|
|
44
|
-
- id: measurement_principle
|
|
45
|
-
target: measurement_principle # classification dimension (model/instrument.yaml)
|
|
46
|
-
statement:
|
|
47
|
-
- spelling: eng-Latn
|
|
48
|
-
value: "The measurement principle the instrument measures dimensions by."
|
|
49
|
-
source: { doc: urn:oiml:pub:r:129-2:2020, clause: "A" }
|
|
50
|
-
certificate: { dimension: measurement_principle, type: string, label: [{spelling: eng-Latn, value: "Measurement principle"}], obligation: optional }
|
|
51
|
-
|
|
52
|
-
- id: instrument_category
|
|
53
|
-
target: instrument_category
|
|
54
|
-
statement:
|
|
55
|
-
- spelling: eng-Latn
|
|
56
|
-
value: "The instrument's declared category (automatic / semi-automatic)."
|
|
57
|
-
source: { doc: urn:oiml:pub:r:129-1:2020, clause: "2.1" }
|
|
58
|
-
certificate: { dimension: instrument_category, type: string, label: [{spelling: eng-Latn, value: "Instrument category"}], obligation: optional }
|
|
59
|
-
|
|
60
|
-
# ── Measuring-range definition quantities (R 129-1, 2.2.5–2.2.9) ─────
|
|
61
|
-
|
|
62
|
-
- id: max_dimension
|
|
63
|
-
target: max_dimension
|
|
64
|
-
statement:
|
|
65
|
-
- spelling: eng-Latn
|
|
66
|
-
value: "Maximum dimension per axis the instrument measures up to."
|
|
67
|
-
source: { doc: urn:oiml:pub:r:129-1:2020, clause: "2.2.5" }
|
|
68
|
-
certificate: { attribute: max_dimension, type: string, label: [{spelling: eng-Latn, value: "Max dimension per axis"}], obligation: optional }
|
|
69
|
-
|
|
70
|
-
- id: min_dimension
|
|
71
|
-
target: min_dimension
|
|
72
|
-
statement:
|
|
73
|
-
- spelling: eng-Latn
|
|
74
|
-
value: "Minimum dimension per axis the instrument measures down to."
|
|
75
|
-
source: { doc: urn:oiml:pub:r:129-1:2020, clause: "2.2.6" }
|
|
76
|
-
certificate: { attribute: min_dimension, type: string, label: [{spelling: eng-Latn, value: "Min dimension per axis"}], obligation: optional }
|
|
77
|
-
|
|
78
|
-
- id: scale_interval
|
|
79
|
-
target: scale_interval
|
|
80
|
-
statement:
|
|
81
|
-
- spelling: eng-Latn
|
|
82
|
-
value: "Scale interval (d) of the instrument's indications."
|
|
83
|
-
source: { doc: urn:oiml:pub:r:129-1:2020, clause: "2.2.9" }
|
|
84
|
-
certificate: { attribute: scale_interval, type: string, label: [{spelling: eng-Latn, value: "Scale interval (d)"}], obligation: optional }
|
|
85
|
-
|
|
86
|
-
# ── Rated operating conditions (R 129-1, 4.2.1 / 2.1.10–2.1.11) ──────
|
|
87
|
-
|
|
88
|
-
- id: temperature_range
|
|
89
|
-
target: temperature-response # behaviors.yaml — the temperature influence response
|
|
90
|
-
statement:
|
|
91
|
-
- spelling: eng-Latn
|
|
92
|
-
value: "The type holds its metrological performance across the rated temperature range."
|
|
93
|
-
source: { doc: urn:oiml:pub:r:129-1:2020, clause: "4.2.1" }
|
|
94
|
-
certificate: { attributes: [temperature_min, temperature_max], type: string, label: [{spelling: eng-Latn, value: "Temperature range"}], obligation: optional }
|
|
95
|
-
|
|
96
|
-
- id: speed_range
|
|
97
|
-
target: speed-response # behaviors.yaml — the measuring-speed response
|
|
98
|
-
statement:
|
|
99
|
-
- spelling: eng-Latn
|
|
100
|
-
value: "The measuring speed range the conveyor runs within (V_min…V_max)."
|
|
101
|
-
source: { doc: urn:oiml:pub:r:129-1:2020, clause: "2.1.10" }
|
|
102
|
-
certificate: { attributes: [speed_min, speed_max], type: string, label: [{spelling: eng-Latn, value: "Measuring speed range"}], obligation: optional }
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# OIML R 144 — MODEL LAYER: PROMISES (TODO.model-content/03)
|
|
2
|
-
# -----------------------------------------------------------------------------
|
|
3
|
-
# First-class manufacturer PROMISES for gas analyzers (measuring CO, NO and
|
|
4
|
-
# NO2 volume fractions): claims on characteristics and behavior that
|
|
5
|
-
# evaluation verifies and the certificate prints as promises-as-verified
|
|
6
|
-
# (the same doctrine as R 60's set — primmel-oiml-smart/docs/primmel/
|
|
7
|
-
# 02-subjects.md §2.3; 15-model-supply-chain.md §15.2). The certificate's
|
|
8
|
-
# characteristic list is GENERATED from this promise set
|
|
9
|
-
# (browser/src/services/certificate.service.ts certificateCharacteristics())
|
|
10
|
-
# — the rows below carry the print surface the hand-maintained
|
|
11
|
-
# characteristics_template of evaluation/certificate-template.yaml formerly
|
|
12
|
-
# restated (which keeps only number_format and dimension_labels).
|
|
13
|
-
#
|
|
14
|
-
# PACKAGE HOME: this file is the package payload `payload/promises.yaml` —
|
|
15
|
-
# the promise set is AUTHORED here, in the package, and regenerate-data
|
|
16
|
-
# emits data/r144/model/promises.yaml VERBATIM (the generated fileHeader +
|
|
17
|
-
# these raw bytes; the documented codec exclusion, same class as
|
|
18
|
-
# payload/sample-data.yaml). The kernel's SubjectPromise carries no
|
|
19
|
-
# certificate print-projection field yet — the projection's first-class PRL
|
|
20
|
-
# home is the recorded primmel-ts kernel-minor follow-up; when it ships,
|
|
21
|
-
# this payload migrates to `promises.prl` and the promise CONTENT rides
|
|
22
|
-
# over unchanged.
|
|
23
|
-
#
|
|
24
|
-
# PROVENANCE (the content-provenance rule): every promise cites the clause
|
|
25
|
-
# its claimed characteristic is defined at (R 144-1:2013 — the clause the
|
|
26
|
-
# model's own attribute/dimension declaration carries): the channel
|
|
27
|
-
# classification at 1.1 (scope) / 2.1 (terminology), the per-component
|
|
28
|
-
# measuring ranges at 4.2, the rated operating conditions at 4.5.1, and
|
|
29
|
-
# the response/warm-up quantities at 2.12 / 2.11. No R 144 clause makes a
|
|
30
|
-
# certificate indication mandatory, so every row prints when available
|
|
31
|
-
# (obligation: optional). Composite range rows bind their boundary
|
|
32
|
-
# attribute pair (`certificate.attributes`) and target the measurand
|
|
33
|
-
# channel set the range is a facet of (R 60's temperature_range pattern —
|
|
34
|
-
# the composite row targets the concept, never one boundary).
|
|
35
|
-
#
|
|
36
|
-
# Schema: data/schemas/model.yaml ($defs/promise).
|
|
37
|
-
---
|
|
38
|
-
promises:
|
|
39
|
-
|
|
40
|
-
# ── Channel classification (R 144-1, 1.1 / 2.1) ──────────────────────
|
|
41
|
-
|
|
42
|
-
- id: measurand_components
|
|
43
|
-
target: measurand_components # classification dimension (model/instrument.yaml)
|
|
44
|
-
statement:
|
|
45
|
-
- spelling: eng-Latn
|
|
46
|
-
value: "The measurand components the analyzer determines — the certified channel set."
|
|
47
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "1.1" }
|
|
48
|
-
certificate: { dimension: measurand_components, type: string, label: [{spelling: eng-Latn, value: "Measured components"}], obligation: optional }
|
|
49
|
-
|
|
50
|
-
- id: measuring_principle
|
|
51
|
-
target: measuring_principle
|
|
52
|
-
statement:
|
|
53
|
-
- spelling: eng-Latn
|
|
54
|
-
value: "The measuring principle the analyzer's channels operate on."
|
|
55
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "1.1" }
|
|
56
|
-
certificate: { dimension: measuring_principle, type: string, label: [{spelling: eng-Latn, value: "Measuring principle"}], obligation: optional }
|
|
57
|
-
|
|
58
|
-
- id: sampling_approach
|
|
59
|
-
target: sampling_approach
|
|
60
|
-
statement:
|
|
61
|
-
- spelling: eng-Latn
|
|
62
|
-
value: "The sampling approach the analyzer draws the gas stream by."
|
|
63
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "2.1" }
|
|
64
|
-
certificate: { dimension: sampling_approach, type: string, label: [{spelling: eng-Latn, value: "Sampling approach"}], obligation: optional }
|
|
65
|
-
|
|
66
|
-
# ── Measuring ranges per component (R 144-1, 4.2) ────────────────────
|
|
67
|
-
|
|
68
|
-
- id: co_range
|
|
69
|
-
target: measurand_components # the range is a facet of the CO channel
|
|
70
|
-
statement:
|
|
71
|
-
- spelling: eng-Latn
|
|
72
|
-
value: "The CO measuring range the analyzer is certified over (volume fraction, ppm)."
|
|
73
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "4.2" }
|
|
74
|
-
certificate: { attributes: [co_range_min, co_range_max], type: string, label: [{spelling: eng-Latn, value: "CO measuring range (ppm)"}], obligation: optional }
|
|
75
|
-
|
|
76
|
-
- id: no_range
|
|
77
|
-
target: measurand_components # the range is a facet of the NO channel
|
|
78
|
-
statement:
|
|
79
|
-
- spelling: eng-Latn
|
|
80
|
-
value: "The NO measuring range the analyzer is certified over (volume fraction, ppm)."
|
|
81
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "4.2" }
|
|
82
|
-
certificate: { attributes: [no_range_min, no_range_max], type: string, label: [{spelling: eng-Latn, value: "NO measuring range (ppm)"}], obligation: optional }
|
|
83
|
-
|
|
84
|
-
- id: no2_range
|
|
85
|
-
target: measurand_components # the range is a facet of the NO2 channel
|
|
86
|
-
statement:
|
|
87
|
-
- spelling: eng-Latn
|
|
88
|
-
value: "The NO2 measuring range the analyzer is certified over (volume fraction, ppm)."
|
|
89
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "4.2" }
|
|
90
|
-
certificate: { attributes: [no2_range_min, no2_range_max], type: string, label: [{spelling: eng-Latn, value: "NO2 measuring range (ppm)"}], obligation: optional }
|
|
91
|
-
|
|
92
|
-
# ── Dynamic response (R 144-1, 2.12 / 2.11) ──────────────────────────
|
|
93
|
-
|
|
94
|
-
- id: response_time
|
|
95
|
-
target: response_time
|
|
96
|
-
statement:
|
|
97
|
-
- spelling: eng-Latn
|
|
98
|
-
value: "Response time t_90 the analyzer settles within after a step change of the measurand."
|
|
99
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "2.12" }
|
|
100
|
-
certificate: { attribute: response_time, type: string, label: [{spelling: eng-Latn, value: "Response time t_90"}], obligation: optional }
|
|
101
|
-
|
|
102
|
-
- id: warm_up_time
|
|
103
|
-
target: warm_up_time
|
|
104
|
-
statement:
|
|
105
|
-
- spelling: eng-Latn
|
|
106
|
-
value: "Warm-up time the analyzer requires before its indications hold."
|
|
107
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "2.11" }
|
|
108
|
-
certificate: { attribute: warm_up_time, type: string, label: [{spelling: eng-Latn, value: "Warm-up time"}], obligation: optional }
|
|
109
|
-
|
|
110
|
-
# ── Rated operating conditions (R 144-1, 4.5.1) ──────────────────────
|
|
111
|
-
|
|
112
|
-
- id: rated_conditions
|
|
113
|
-
target: temperature-effect # behaviors.yaml — the temperature influence response
|
|
114
|
-
statement:
|
|
115
|
-
- spelling: eng-Latn
|
|
116
|
-
value: "The type holds its metrological performance across the rated temperature range (t_min…t_max)."
|
|
117
|
-
source: { doc: urn:oiml:pub:r:144-1:2013, clause: "4.5.1" }
|
|
118
|
-
certificate: { attributes: [t_min, t_max], type: string, label: [{spelling: eng-Latn, value: "Rated temperature range"}], obligation: optional }
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
# OIML R 60 — MODEL LAYER: PROMISES (TODO.roadmap/08)
|
|
2
|
-
# -----------------------------------------------------------------------------
|
|
3
|
-
# First-class manufacturer PROMISES: claims on characteristics and behavior —
|
|
4
|
-
# possibly envelope-shaped, possibly conditional — that evaluation verifies
|
|
5
|
-
# and the certificate prints as promises-as-verified (doctrine
|
|
6
|
-
# primmel-oiml-smart/docs/primmel/02-subjects.md §2.3, the IS catalog;
|
|
7
|
-
# 15-model-supply-chain.md §15.2, promises-as-verified).
|
|
8
|
-
#
|
|
9
|
-
# A promise is NOT a declared attribute value: a claim stated as one bare
|
|
10
|
-
# parameter value ("t_min = −10 °C") stays an `origin: declared` attribute.
|
|
11
|
-
# primmel-ts linter C44 promise-not-bare-value enforces the distinctness —
|
|
12
|
-
# NARROWED semantics: it rejects only promises that merely RESTATE a bare
|
|
13
|
-
# declared value (attribute target + bare quantity level, no conditions, no
|
|
14
|
-
# verification linkage). Targeting an attribute/dimension with a genuine
|
|
15
|
-
# claim ABOUT it — conditioned, envelope/range, symbolic level, or verified
|
|
16
|
-
# — is legal, and is exactly what this file does. The promises below
|
|
17
|
-
# therefore never RESTATE a value: they cite the characteristic/behavior/
|
|
18
|
-
# attribute/dimension the claim is about (`target`), and the certificate
|
|
19
|
-
# print projection (`certificate:`) declares which declared attribute /
|
|
20
|
-
# classification dimension the verified claim reads its exhibited value from
|
|
21
|
-
# (the IS/HAS duality citation — the certificate prints the exhibited dual).
|
|
22
|
-
#
|
|
23
|
-
# PACKAGE HOME (TODO.model-content/03 — the payload-verbatim class): this
|
|
24
|
-
# file is the package payload `payload/promises.yaml` — the promise set is
|
|
25
|
-
# AUTHORED here, in the package, and regenerate-data emits
|
|
26
|
-
# data/r60/model/promises.yaml VERBATIM (the generated fileHeader + these
|
|
27
|
-
# raw bytes; the documented codec exclusion, same class as
|
|
28
|
-
# payload/sample-data.yaml). The kernel's SubjectPromise carries no
|
|
29
|
-
# certificate print-projection field yet — the projection's first-class PRL
|
|
30
|
-
# home (`promises.prl` with a `certificate { … }` block) is the recorded
|
|
31
|
-
# primmel-ts kernel-minor follow-up; when it ships, this payload migrates to
|
|
32
|
-
# the PRL surface and the promise CONTENT rides over unchanged.
|
|
33
|
-
#
|
|
34
|
-
# TYPE ALIGNMENT (TODO.roadmap/08 deliverable 1): `PromiseDecl` (smart,
|
|
35
|
-
# browser/src/data/standards.ts) ≡ primmel-ts `SubjectPromise` at the TYPE
|
|
36
|
-
# level only — id, target, level, conditions (OCL over dimensions/
|
|
37
|
-
# conditions), statement, verified_by (requirement/test ids — when absent,
|
|
38
|
-
# verification derives from the requirement/test bindings of the same
|
|
39
|
-
# target), source { doc, clause }. The YAML level shape ({ kind:
|
|
40
|
-
# quantity|range|symbolic, … }) and primmel's `PromiseLevel` are
|
|
41
|
-
# CONCEPTUALLY aligned (quantity/range/symbolic); no YAML↔PRL converter
|
|
42
|
-
# for promises exists yet.
|
|
43
|
-
# The `certificate:` block is the smart-side print projection (Annex B):
|
|
44
|
-
# the certificate's characteristic list is GENERATED from this promise set
|
|
45
|
-
# (browser/src/services/certificate.service.ts), replacing the formerly
|
|
46
|
-
# hand-maintained characteristics_template rows of
|
|
47
|
-
# evaluation/certificate-template.yaml (which keeps only number_format and
|
|
48
|
-
# dimension_labels).
|
|
49
|
-
#
|
|
50
|
-
# APPLICATION-SIDE MAPPING (light formalization — deliverable 4): an
|
|
51
|
-
# application's SOUGHT CLASSIFICATION reads as a promise set — the
|
|
52
|
-
# subject-chain classification maps the applicant declares (family/group/
|
|
53
|
-
# model `classification`, the Application model_family_id + model_ids matrix)
|
|
54
|
-
# are the applicant's claims about what the type IS, shape-compatible with
|
|
55
|
-
# the entries below (dimension targets with symbolic levels), which
|
|
56
|
-
# evaluation then verifies and the certificate prints as promises-as-verified.
|
|
57
|
-
# Application.dimensions (deprecated free-form map) corresponds 1:1 to
|
|
58
|
-
# promise entries with `level: { kind: symbolic, value: <dimension-value> }`
|
|
59
|
-
# on the dimension target. A full application-matrix migration is NOT in
|
|
60
|
-
# scope — this note + the type alignment is the formalization.
|
|
61
|
-
#
|
|
62
|
-
# Schema: data/schemas/model.yaml ($defs/promise).
|
|
63
|
-
---
|
|
64
|
-
promises:
|
|
65
|
-
|
|
66
|
-
# ── Annex B mandatory supplement (R 60-4, Annex B) ──────────────────
|
|
67
|
-
|
|
68
|
-
- id: e_max_values
|
|
69
|
-
target: e_max # symbols.yaml / attributes.yaml id
|
|
70
|
-
statement:
|
|
71
|
-
- spelling: eng-Latn
|
|
72
|
-
value: "Maximum capacity E_max per model — the rated capacities the family offers."
|
|
73
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.5" }
|
|
74
|
-
certificate: { attribute: e_max, type: string, label: [{spelling: eng-Latn, value: "E_max values"}], obligation: mandatory }
|
|
75
|
-
|
|
76
|
-
- id: accuracy_class
|
|
77
|
-
target: accuracy_class # classification dimension (model/instrument.yaml)
|
|
78
|
-
statement:
|
|
79
|
-
- spelling: eng-Latn
|
|
80
|
-
value: "The type holds its declared accuracy class — the error characteristic stays within the class MPE."
|
|
81
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "5.1.1" }
|
|
82
|
-
verified_by:
|
|
83
|
-
- /req/metrological/mpe # R 60-1, 5.3
|
|
84
|
-
- /conf/metrological-tests/measurement-error-repeatability-mdlo # R 60-2, 2.10.1
|
|
85
|
-
certificate: { dimension: accuracy_class, type: string, label: [{spelling: eng-Latn, value: "Accuracy class"}], obligation: mandatory }
|
|
86
|
-
|
|
87
|
-
- id: n_lc
|
|
88
|
-
target: n_lc
|
|
89
|
-
statement:
|
|
90
|
-
- spelling: eng-Latn
|
|
91
|
-
value: "Maximum number of load cell verification intervals into which the measuring range is divided."
|
|
92
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.8" }
|
|
93
|
-
certificate: { attribute: n_lc, type: integer, label: [{spelling: eng-Latn, value: "Number of verification intervals (n_LC)"}], obligation: mandatory }
|
|
94
|
-
|
|
95
|
-
- id: v_min
|
|
96
|
-
target: v_min
|
|
97
|
-
statement:
|
|
98
|
-
- spelling: eng-Latn
|
|
99
|
-
value: "Minimum load cell verification interval the type is certified down to."
|
|
100
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.11" }
|
|
101
|
-
certificate: { attribute: v_min, type: string, label: [{spelling: eng-Latn, value: "Minimum load cell verification interval (v_min)"}], obligation: mandatory }
|
|
102
|
-
|
|
103
|
-
- id: p_lc
|
|
104
|
-
target: p_lc
|
|
105
|
-
statement:
|
|
106
|
-
- spelling: eng-Latn
|
|
107
|
-
value: "Apportioning factor p_LC of the load cell for MPE calculations."
|
|
108
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.7.2" }
|
|
109
|
-
certificate: { attribute: p_lc, type: number, label: [{spelling: eng-Latn, value: "Apportioning factor (p_LC)"}], obligation: mandatory }
|
|
110
|
-
|
|
111
|
-
# ── Annex B Table B.1 technical data (additional pages, informative) ──
|
|
112
|
-
|
|
113
|
-
- id: e_min
|
|
114
|
-
target: e_min
|
|
115
|
-
statement:
|
|
116
|
-
- spelling: eng-Latn
|
|
117
|
-
value: "Minimum dead load E_min the load cell measures from."
|
|
118
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.9" }
|
|
119
|
-
certificate: { attribute: e_min, type: string, label: [{spelling: eng-Latn, value: "Minimum dead load (E_min)"}], obligation: optional }
|
|
120
|
-
|
|
121
|
-
- id: y_ratio
|
|
122
|
-
target: "y"
|
|
123
|
-
statement:
|
|
124
|
-
- spelling: eng-Latn
|
|
125
|
-
value: "Relative minimum load cell verification interval Y = E_max / v_min."
|
|
126
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.15" }
|
|
127
|
-
certificate: { attribute: "y", type: integer, label: [{spelling: eng-Latn, value: "Relative v_min (Y)"}], obligation: optional }
|
|
128
|
-
|
|
129
|
-
- id: z_ratio
|
|
130
|
-
target: z
|
|
131
|
-
statement:
|
|
132
|
-
- spelling: eng-Latn
|
|
133
|
-
value: "Relative minimum dead load output return Z = E_max / (2·DR)."
|
|
134
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.14" }
|
|
135
|
-
certificate: { attribute: z, type: integer, label: [{spelling: eng-Latn, value: "Relative DR (Z)"}], obligation: optional }
|
|
136
|
-
|
|
137
|
-
- id: rated_output
|
|
138
|
-
target: rated_output
|
|
139
|
-
statement:
|
|
140
|
-
- spelling: eng-Latn
|
|
141
|
-
value: "Rated output per volt of excitation at maximum capacity, with tolerance."
|
|
142
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.3" }
|
|
143
|
-
certificate: { attribute: rated_output, type: string, label: [{spelling: eng-Latn, value: "Rated output"}], obligation: optional }
|
|
144
|
-
|
|
145
|
-
- id: excitation_maximum
|
|
146
|
-
target: excitation_maximum
|
|
147
|
-
statement:
|
|
148
|
-
- spelling: eng-Latn
|
|
149
|
-
value: "Maximum excitation voltage the load cell withstands."
|
|
150
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.4.2" }
|
|
151
|
-
certificate: { attribute: excitation_maximum, type: number, label: [{spelling: eng-Latn, value: "Maximum excitation voltage (V)"}], obligation: optional }
|
|
152
|
-
|
|
153
|
-
- id: input_impedance
|
|
154
|
-
target: input_impedance
|
|
155
|
-
statement:
|
|
156
|
-
- spelling: eng-Latn
|
|
157
|
-
value: "Electrical impedance across the excitation terminals, with tolerance."
|
|
158
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.4.2" }
|
|
159
|
-
certificate: { attribute: input_impedance, type: string, label: [{spelling: eng-Latn, value: "Input impedance (Ohm)"}], obligation: optional }
|
|
160
|
-
|
|
161
|
-
- id: temperature_range
|
|
162
|
-
target: temp-effect-sensitivity # behaviors.yaml — the temperature influence response
|
|
163
|
-
statement:
|
|
164
|
-
- spelling: eng-Latn
|
|
165
|
-
value: "The type holds its metrological performance across the rated temperature range (T_min…T_max)."
|
|
166
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "5.6.1" }
|
|
167
|
-
verified_by:
|
|
168
|
-
- /req/metrological/temperature-limits # R 60-1, 5.6.1
|
|
169
|
-
- /conf/metrological-tests/measurement-error-repeatability-mdlo # R 60-2, 2.10.1 (temperature runs)
|
|
170
|
-
certificate: { attributes: [t_min, t_max], type: string, label: [{spelling: eng-Latn, value: "Temperature rating (°C)"}], obligation: optional }
|
|
171
|
-
|
|
172
|
-
- id: safe_overload
|
|
173
|
-
target: safe_overload
|
|
174
|
-
statement:
|
|
175
|
-
- spelling: eng-Latn
|
|
176
|
-
value: "Safe overload the load cell withstands without permanent damage, relative to E_max."
|
|
177
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.5.16" }
|
|
178
|
-
certificate: { attribute: safe_overload, type: string, label: [{spelling: eng-Latn, value: "Safe overload, relative (%)"}], obligation: optional }
|
|
179
|
-
|
|
180
|
-
# ── Envelope claim (TODO.roadmap/08 deliverable d) ───────────────────
|
|
181
|
-
# A CONDITIONED promise a bare parameter value cannot express: not
|
|
182
|
-
# "t_min = −10 °C" (one declared value) but "class C6 HOLDS ACROSS the
|
|
183
|
-
# rated range −10…+40 °C" — a level claimed over an envelope, gated by
|
|
184
|
-
# conditions (OCL over the designed condition tiers). It prints as a
|
|
185
|
-
# statement row: the certificate block binds no attribute/dimension, so
|
|
186
|
-
# the projection renders the claim text itself (see
|
|
187
|
-
# certificate.service.ts renderPromiseClaim).
|
|
188
|
-
- id: accuracy_class_envelope
|
|
189
|
-
target: accuracy_class
|
|
190
|
-
level: { kind: symbolic, value: C6 }
|
|
191
|
-
conditions: "ocl{self.temperature >= rated.t_min and self.temperature <= rated.t_max}"
|
|
192
|
-
statement:
|
|
193
|
-
- spelling: eng-Latn
|
|
194
|
-
value: "Holds accuracy class C6 across the rated temperature range −10…+40 °C."
|
|
195
|
-
verified_by:
|
|
196
|
-
- /req/metrological/mpe # R 60-1, 5.3
|
|
197
|
-
- /conf/metrological-tests/measurement-error-repeatability-mdlo # R 60-2, 2.10.1
|
|
198
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "5.1.1" }
|
|
199
|
-
certificate: { type: statement, label: [{spelling: eng-Latn, value: "Accuracy envelope"}], obligation: optional }
|
|
200
|
-
|
|
201
|
-
# ── The G1 optional defining-data fields (TODO.deploying/01) ────────
|
|
202
|
-
- id: cable_length
|
|
203
|
-
target: cable_length
|
|
204
|
-
statement:
|
|
205
|
-
- spelling: eng-Latn
|
|
206
|
-
value: "Integral cable length (the family specification set's cable details, R 60-1, 3.4.2 (e))."
|
|
207
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "3.4.2" }
|
|
208
|
-
certificate: { attribute: cable_length, type: quantity, label: [{spelling: eng-Latn, value: "Cable length"}], obligation: optional }
|
|
209
|
-
|
|
210
|
-
- id: additional_markings
|
|
211
|
-
target: additional_markings
|
|
212
|
-
statement:
|
|
213
|
-
- spelling: eng-Latn
|
|
214
|
-
value: "Markings on the load cell beyond the required set (manufacturer's optional markings)."
|
|
215
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "6" }
|
|
216
|
-
certificate: { attribute: additional_markings, type: string, label: [{spelling: eng-Latn, value: "Additional markings"}], obligation: optional }
|
|
217
|
-
|
|
218
|
-
- id: additional_characterisation
|
|
219
|
-
target: additional_characterisation
|
|
220
|
-
statement:
|
|
221
|
-
- spelling: eng-Latn
|
|
222
|
-
value: "Additional characterisation completing the classification (R 60-1, 5.1.5 (f), 5.1.6, 5.1.7)."
|
|
223
|
-
source: { doc: urn:oiml:pub:r:60-1:2021, clause: "5.1.5" }
|
|
224
|
-
certificate: { attribute: additional_characterisation, type: string, label: [{spelling: eng-Latn, value: "Additional characteristics"}], obligation: optional }
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# OIML R 91 — MODEL LAYER: PROMISES (TODO.model-content/03)
|
|
2
|
-
# -----------------------------------------------------------------------------
|
|
3
|
-
# First-class manufacturer PROMISES for traffic speed meters: claims on
|
|
4
|
-
# characteristics and behavior that evaluation verifies and the certificate
|
|
5
|
-
# prints as promises-as-verified (the same doctrine as R 60's set —
|
|
6
|
-
# primmel-oiml-smart/docs/primmel/02-subjects.md §2.3; 15-model-supply-
|
|
7
|
-
# chain.md §15.2). The certificate's characteristic list is GENERATED from
|
|
8
|
-
# this promise set (browser/src/services/certificate.service.ts
|
|
9
|
-
# certificateCharacteristics()) — the rows below carry the print surface the
|
|
10
|
-
# hand-maintained characteristics_template of evaluation/
|
|
11
|
-
# certificate-template.yaml formerly restated (which keeps only
|
|
12
|
-
# number_format and dimension_labels).
|
|
13
|
-
#
|
|
14
|
-
# PACKAGE HOME: this file is the package payload `payload/promises.yaml` —
|
|
15
|
-
# the promise set is AUTHORED here, in the package, and regenerate-data
|
|
16
|
-
# emits data/r91/model/promises.yaml VERBATIM (the generated fileHeader +
|
|
17
|
-
# these raw bytes; the documented codec exclusion, same class as
|
|
18
|
-
# payload/sample-data.yaml). The kernel's SubjectPromise carries no
|
|
19
|
-
# certificate print-projection field yet — the projection's first-class PRL
|
|
20
|
-
# home is the recorded primmel-ts kernel-minor follow-up; when it ships,
|
|
21
|
-
# this payload migrates to `promises.prl` and the promise CONTENT rides
|
|
22
|
-
# over unchanged.
|
|
23
|
-
#
|
|
24
|
-
# PROVENANCE (the content-provenance rule): every promise cites the clause
|
|
25
|
-
# its claimed characteristic is defined at (R 91-1:2025 — the clause the
|
|
26
|
-
# model's own attribute/dimension declaration carries). R 91-1, 6.15.1 makes
|
|
27
|
-
# the metrological class a MANDATORY certificate indication ("The OIML
|
|
28
|
-
# certificate shall indicate the class of the instrument"); the remaining
|
|
29
|
-
# rows print when available (obligation: optional). Composite interval rows
|
|
30
|
-
# bind their boundary attribute pair (`certificate.attributes`) and target
|
|
31
|
-
# the quantity/behavior the interval bounds (R 60's temperature_range
|
|
32
|
-
# pattern).
|
|
33
|
-
#
|
|
34
|
-
# Schema: data/schemas/model.yaml ($defs/promise).
|
|
35
|
-
---
|
|
36
|
-
promises:
|
|
37
|
-
|
|
38
|
-
# ── R 91-1, 6.15.1 — the class indication is MANDATORY ───────────────
|
|
39
|
-
|
|
40
|
-
- id: metrological_class
|
|
41
|
-
target: metrological_class # classification dimension (model/instrument.yaml)
|
|
42
|
-
statement:
|
|
43
|
-
- spelling: eng-Latn
|
|
44
|
-
value: "The type holds its declared metrological class (A or B) for moving measurements."
|
|
45
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "6.15.1" }
|
|
46
|
-
certificate: { dimension: metrological_class, type: string, label: [{spelling: eng-Latn, value: "Metrological class for moving measurements (R 91-1, 6.15.1)"}], obligation: mandatory }
|
|
47
|
-
|
|
48
|
-
# ── Classification (R 91-1, clause 5) ────────────────────────────────
|
|
49
|
-
|
|
50
|
-
- id: mode_of_use
|
|
51
|
-
target: mode_of_use
|
|
52
|
-
statement:
|
|
53
|
-
- spelling: eng-Latn
|
|
54
|
-
value: "The type operates in its declared mode of use (stationary / moving)."
|
|
55
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "5.1" }
|
|
56
|
-
certificate: { dimension: mode_of_use, type: string, label: [{spelling: eng-Latn, value: "Mode of use (stationary / moving)"}], obligation: optional }
|
|
57
|
-
|
|
58
|
-
- id: working_principle
|
|
59
|
-
target: working_principle
|
|
60
|
-
statement:
|
|
61
|
-
- spelling: eng-Latn
|
|
62
|
-
value: "The type measures speed by its declared working principle."
|
|
63
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "5.3" }
|
|
64
|
-
certificate: { dimension: working_principle, type: string, label: [{spelling: eng-Latn, value: "Working principle"}], obligation: optional }
|
|
65
|
-
|
|
66
|
-
- id: installation_principle
|
|
67
|
-
target: installation_principle
|
|
68
|
-
statement:
|
|
69
|
-
- spelling: eng-Latn
|
|
70
|
-
value: "The type installs by its declared principle (mobile / fixed / portable)."
|
|
71
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "5.2" }
|
|
72
|
-
certificate: { dimension: installation_principle, type: string, label: [{spelling: eng-Latn, value: "Installation (mobile / fixed / portable)"}], obligation: optional }
|
|
73
|
-
|
|
74
|
-
- id: triggering
|
|
75
|
-
target: triggering
|
|
76
|
-
statement:
|
|
77
|
-
- spelling: eng-Latn
|
|
78
|
-
value: "The type triggers its measurements as declared (manual / automatic)."
|
|
79
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "5.4" }
|
|
80
|
-
certificate: { dimension: triggering, type: string, label: [{spelling: eng-Latn, value: "Triggering (manual / automatic)"}], obligation: optional }
|
|
81
|
-
|
|
82
|
-
- id: cosine_compensation
|
|
83
|
-
target: cosine_compensation
|
|
84
|
-
statement:
|
|
85
|
-
- spelling: eng-Latn
|
|
86
|
-
value: "The type compensates the cosine error for its declared road orientation (along- / across-the-road)."
|
|
87
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "5.5" }
|
|
88
|
-
certificate: { dimension: cosine_compensation, type: string, label: [{spelling: eng-Latn, value: "Road orientation (along- / across-the-road)"}], obligation: optional }
|
|
89
|
-
|
|
90
|
-
# ── Measuring intervals (R 91-1, 6.1 / 6.17) ─────────────────────────
|
|
91
|
-
|
|
92
|
-
- id: speed_interval
|
|
93
|
-
target: v # symbols.yaml — the speed quantity the interval bounds
|
|
94
|
-
statement:
|
|
95
|
-
- spelling: eng-Latn
|
|
96
|
-
value: "The speed measuring interval the type is certified over (km/h)."
|
|
97
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "6.1" }
|
|
98
|
-
certificate: { attributes: [speed_interval_min, speed_interval_max], type: string, label: [{spelling: eng-Latn, value: "Speed measuring interval (km/h)"}], obligation: optional }
|
|
99
|
-
|
|
100
|
-
- id: distance_interval
|
|
101
|
-
target: d # symbols.yaml — the distance-to-vehicle quantity
|
|
102
|
-
statement:
|
|
103
|
-
- spelling: eng-Latn
|
|
104
|
-
value: "The distance measuring interval the type is certified over (m)."
|
|
105
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "6.17" }
|
|
106
|
-
certificate: { attributes: [distance_interval_min, distance_interval_max], type: string, label: [{spelling: eng-Latn, value: "Distance measuring interval (m)"}], obligation: optional }
|
|
107
|
-
|
|
108
|
-
- id: angle_interval
|
|
109
|
-
target: alpha # symbols.yaml — the measurement angle quantity
|
|
110
|
-
statement:
|
|
111
|
-
- spelling: eng-Latn
|
|
112
|
-
value: "The measurement angle interval the type is certified over (°)."
|
|
113
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "6.17" }
|
|
114
|
-
certificate: { attributes: [angle_interval_min, angle_interval_max], type: string, label: [{spelling: eng-Latn, value: "Angle interval (°)"}], obligation: optional }
|
|
115
|
-
|
|
116
|
-
# ── Rated operating conditions (R 91-1, 6.16) ────────────────────────
|
|
117
|
-
|
|
118
|
-
- id: operating_temp_range
|
|
119
|
-
target: temperature-effect # behaviors.yaml — the temperature influence response
|
|
120
|
-
statement:
|
|
121
|
-
- spelling: eng-Latn
|
|
122
|
-
value: "The type holds its metrological performance across the rated operating temperature range (T_min…T_max)."
|
|
123
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "6.16" }
|
|
124
|
-
certificate: { attributes: [operating_temp_min, operating_temp_max], type: string, label: [{spelling: eng-Latn, value: "Rated temperature range (°C)"}], obligation: optional }
|
|
125
|
-
|
|
126
|
-
- id: supply_voltage
|
|
127
|
-
target: supply_voltage_dc
|
|
128
|
-
statement:
|
|
129
|
-
- spelling: eng-Latn
|
|
130
|
-
value: "The DC supply voltage rating the type operates at."
|
|
131
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "6.16" }
|
|
132
|
-
certificate: { attribute: supply_voltage_dc, type: string, label: [{spelling: eng-Latn, value: "Supply voltage (V)"}], obligation: optional }
|
|
133
|
-
|
|
134
|
-
# ── Legally relevant software (R 91-1, 7.10.1) ───────────────────────
|
|
135
|
-
|
|
136
|
-
- id: software_version
|
|
137
|
-
target: software_version
|
|
138
|
-
statement:
|
|
139
|
-
- spelling: eng-Latn
|
|
140
|
-
value: "The certificate identifies the type's legally relevant software by its declared version."
|
|
141
|
-
source: { doc: urn:oiml:pub:r:91-1:2025, clause: "7.10.1" }
|
|
142
|
-
certificate: { attribute: software_version, type: string, label: [{spelling: eng-Latn, value: "Legally relevant software identification (R 91-1, 7.10.1; R 91-4 identification block)"}], obligation: optional }
|