@oimlsmart/primmel-packages 0.14.0 → 0.16.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.
@@ -0,0 +1,168 @@
1
+ # OIML R 91 — the application declaration (TODO.application/02): the
2
+ # applicant-facing register — the application-documentation checklist
3
+ # (R 91-1:2025, 8.1.1 items a–q: the metrological characteristics, the
4
+ # technical/electronic specifications, the functional description, the
5
+ # checking facilities, drawings/diagrams/photos, interfaces,
6
+ # installation requirements, self-checking mechanisms, the security
7
+ # sealing plan, software + data security, the panel layout, software
8
+ # information, the operating manual, compliance evidence, the D 31
9
+ # software documentation, an evidence-file sample, and the measuring
10
+ # principles). R 91 declares no applicant declaration form today —
11
+ # the wizard renders the derived attribute grid as the honest
12
+ # fallback. The checklist derives from this register, never from
13
+ # literals (browser/src/services/application.service.ts).
14
+ application_declaration application {
15
+ document metrological-characteristics {
16
+ name "Metrological characteristics"
17
+ description "The metrological characteristics of the speed meter, including a statement about durability (R 91-1, 8.1.1 a)."
18
+ obligation shall
19
+ source {
20
+ doc "urn:oiml:pub:r:91-1:2025"
21
+ clause "8.1.1"
22
+ }
23
+ }
24
+ document technical-specifications {
25
+ name "Technical and electronic specifications"
26
+ description "The technical and electronic specifications of the speed meter (R 91-1, 8.1.1 b)."
27
+ obligation shall
28
+ source {
29
+ doc "urn:oiml:pub:r:91-1:2025"
30
+ clause "8.1.1"
31
+ }
32
+ }
33
+ document functional-description {
34
+ name "Functional description"
35
+ description "Functional description of the speed meter including its subassemblies and components (R 91-1, 8.1.1 c)."
36
+ obligation shall
37
+ source {
38
+ doc "urn:oiml:pub:r:91-1:2025"
39
+ clause "8.1.1"
40
+ }
41
+ }
42
+ document checking-facilities {
43
+ name "Checking facilities description"
44
+ description "Description of the checking facilities (R 91-1, 8.1.1 d; see 6.9 and 7.5)."
45
+ obligation shall
46
+ source {
47
+ doc "urn:oiml:pub:r:91-1:2025"
48
+ clause "8.1.1"
49
+ }
50
+ }
51
+ document drawings-diagrams-photos {
52
+ name "Drawings, diagrams and photos"
53
+ description "Drawings, diagrams and photos of the speed meter explaining its construction and operation (R 91-1, 8.1.1 e)."
54
+ obligation shall
55
+ source {
56
+ doc "urn:oiml:pub:r:91-1:2025"
57
+ clause "8.1.1"
58
+ }
59
+ }
60
+ document interfaces-list {
61
+ name "List of interfaces"
62
+ description "A list of interfaces specifying types, intended use and immunity to external influences (R 91-1, 8.1.1 f)."
63
+ obligation shall
64
+ source {
65
+ doc "urn:oiml:pub:r:91-1:2025"
66
+ clause "8.1.1"
67
+ }
68
+ }
69
+ document installation-requirements {
70
+ name "Installation requirements and instructions"
71
+ description "The installation requirements and instructions (R 91-1, 8.1.1 g)."
72
+ obligation shall
73
+ source {
74
+ doc "urn:oiml:pub:r:91-1:2025"
75
+ clause "8.1.1"
76
+ }
77
+ }
78
+ document self-checking-mechanisms {
79
+ name "Self-checking mechanisms"
80
+ description "Description and application of the self-checking mechanisms (R 91-1, 8.1.1 h)."
81
+ obligation shall
82
+ source {
83
+ doc "urn:oiml:pub:r:91-1:2025"
84
+ clause "8.1.1"
85
+ }
86
+ }
87
+ document sealing-plan {
88
+ name "Security sealing plan"
89
+ description "The security sealing plan, including drawings or photos (R 91-1, 8.1.1 i)."
90
+ obligation shall
91
+ source {
92
+ doc "urn:oiml:pub:r:91-1:2025"
93
+ clause "8.1.1"
94
+ }
95
+ }
96
+ document software-security {
97
+ name "Security measures for software and data"
98
+ description "Security measures for the protection of software, settings and measurement data (R 91-1, 8.1.1 j)."
99
+ obligation shall
100
+ source {
101
+ doc "urn:oiml:pub:r:91-1:2025"
102
+ clause "8.1.1"
103
+ }
104
+ }
105
+ document panel-layout {
106
+ name "Panel layout"
107
+ description "The panel layout (user interface) (R 91-1, 8.1.1 k)."
108
+ obligation shall
109
+ source {
110
+ doc "urn:oiml:pub:r:91-1:2025"
111
+ clause "8.1.1"
112
+ }
113
+ }
114
+ document software-information {
115
+ name "General software information"
116
+ description "General information on the software, covering in particular the requirements in R 91-1, 7.10 (R 91-1, 8.1.1 l)."
117
+ obligation shall
118
+ source {
119
+ doc "urn:oiml:pub:r:91-1:2025"
120
+ clause "8.1.1"
121
+ }
122
+ }
123
+ document operating-manual {
124
+ name "Operating instructions and manual"
125
+ description "The operating instructions and operating manual to be provided to the user (R 91-1, 8.1.1 m)."
126
+ obligation shall
127
+ source {
128
+ doc "urn:oiml:pub:r:91-1:2025"
129
+ clause "8.1.1"
130
+ }
131
+ }
132
+ document compliance-evidence {
133
+ name "Compliance evidence"
134
+ description "Documents or other evidence supporting the assumption that the design and characteristics of the measuring instrument comply with the requirements of the Recommendation (R 91-1, 8.1.1 n)."
135
+ obligation shall
136
+ source {
137
+ doc "urn:oiml:pub:r:91-1:2025"
138
+ clause "8.1.1"
139
+ }
140
+ }
141
+ document d31-documentation {
142
+ name "Software documentation (D 31)"
143
+ description "The documentation requested in OIML D 31, 7.1 (R 91-1, 8.1.1 o)."
144
+ obligation shall
145
+ source {
146
+ doc "urn:oiml:pub:r:91-1:2025"
147
+ clause "8.1.1"
148
+ }
149
+ }
150
+ document evidence-file-sample {
151
+ name "Sample of a recorded event (evidence file)"
152
+ description "A sample of a recorded event (evidence file) (R 91-1, 8.1.1 p)."
153
+ obligation shall
154
+ source {
155
+ doc "urn:oiml:pub:r:91-1:2025"
156
+ clause "8.1.1"
157
+ }
158
+ }
159
+ document measuring-principles {
160
+ name "Description of measuring principles"
161
+ description "Description of the measuring principles or algorithms and how speed values for indication are obtained, including the mathematical operation used to obtain integer speed values from high-resolution values (R 91-1, 8.1.1 q)."
162
+ obligation shall
163
+ source {
164
+ doc "urn:oiml:pub:r:91-1:2025"
165
+ clause "8.1.1"
166
+ }
167
+ }
168
+ }
@@ -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.14.0",
3
+ "version": "0.16.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.0"
15
+ "@primmel/primmel": "^1.17.1"
16
16
  }
17
17
  }
@@ -1,40 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- application:
3
- documentation:
4
- - id: technical-documentation
5
- name:
6
- - spelling: eng-Latn
7
- value: Technical documentation
8
- description:
9
- - spelling: eng-Latn
10
- value: >-
11
- The technical documentation of the instrument — drawings, specifications, photographs and descriptions
12
- sufficient to understand its construction and method of operation (R 129-2, 1.2).
13
- obligation: shall
14
- source:
15
- doc: urn:oiml:pub:r:129-2:2020
16
- clause: '1.2'
17
- - id: measurement-data
18
- name:
19
- - spelling: eng-Latn
20
- value: Measurement data details and calculation methods
21
- description:
22
- - spelling: eng-Latn
23
- value: The details of the measurement data and the calculation methods the instrument applies (R 129-2, 1.2).
24
- obligation: shall
25
- source:
26
- doc: urn:oiml:pub:r:129-2:2020
27
- clause: '1.2'
28
- - id: software-documentation
29
- name:
30
- - spelling: eng-Latn
31
- value: Software documentation
32
- description:
33
- - spelling: eng-Latn
34
- value: >-
35
- Documentation of the legally relevant software, sufficient for a reasonable evaluation (R 129-2, 1.2.2 and
36
- 1.1.2).
37
- obligation: may
38
- source:
39
- doc: urn:oiml:pub:r:129-2:2020
40
- clause: 1.2.2
@@ -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,80 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- application:
3
- documentation:
4
- - id: measurement-principle
5
- name:
6
- - spelling: eng-Latn
7
- value: Description of the general principle of measurement
8
- description:
9
- - spelling: eng-Latn
10
- value: A description of the gas analytical system's general principle of measurement (R 144-1, 7.1.1 a).
11
- obligation: shall
12
- source:
13
- doc: urn:oiml:pub:r:144-1:2013
14
- clause: 7.1.1
15
- - id: essential-components-list
16
- name:
17
- - spelling: eng-Latn
18
- value: Essential components list
19
- description:
20
- - spelling: eng-Latn
21
- value: A list of the system's essential components with their characteristics (R 144-1, 7.1.1 b).
22
- obligation: shall
23
- source:
24
- doc: urn:oiml:pub:r:144-1:2013
25
- clause: 7.1.1
26
- - id: components-drawings
27
- name:
28
- - spelling: eng-Latn
29
- value: Component descriptions, drawings and diagrams
30
- description:
31
- - spelling: eng-Latn
32
- value: A description of the essential components with drawings and diagrams (R 144-1, 7.1.1 c).
33
- obligation: shall
34
- source:
35
- doc: urn:oiml:pub:r:144-1:2013
36
- clause: 7.1.1
37
- - id: software-information
38
- name:
39
- - spelling: eng-Latn
40
- value: General software information
41
- description:
42
- - spelling: eng-Latn
43
- value: General information on the software used as part of the gas analytical system (R 144-1, 7.1.1 d).
44
- obligation: shall
45
- source:
46
- doc: urn:oiml:pub:r:144-1:2013
47
- clause: 7.1.1
48
- - id: calculation-formula
49
- name:
50
- - spelling: eng-Latn
51
- value: Calculation formula description
52
- description:
53
- - spelling: eng-Latn
54
- value: A description of the formula applied for the calculation of mass emission components (R 144-1, 7.1.1 e).
55
- obligation: shall
56
- source:
57
- doc: urn:oiml:pub:r:144-1:2013
58
- clause: 7.1.1
59
- - id: operating-manual
60
- name:
61
- - spelling: eng-Latn
62
- value: Operating manual
63
- description:
64
- - spelling: eng-Latn
65
- value: The operating manual to be provided to the user (R 144-1, 7.1.1 f).
66
- obligation: shall
67
- source:
68
- doc: urn:oiml:pub:r:144-1:2013
69
- clause: 7.1.1
70
- - id: manufacturer-testing
71
- name:
72
- - spelling: eng-Latn
73
- value: Manufacturer testing details and results
74
- description:
75
- - spelling: eng-Latn
76
- value: Details and results of any testing which may have been carried out by the manufacturer (R 144-1, 7.1.1 g).
77
- obligation: may
78
- source:
79
- doc: urn:oiml:pub:r:144-1:2013
80
- clause: 7.1.1
@@ -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 }