@oimlsmart/primmel-packages 0.1.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.
Files changed (460) hide show
  1. package/AGENTS.md +60 -0
  2. package/LICENSE +21 -0
  3. package/README.md +68 -0
  4. package/acme-cgm-200/model/cgm200.prl +284 -0
  5. package/acme-cgm-200/model/r144-map.prl +337 -0
  6. package/acme-cgm-200/package.primmel +39 -0
  7. package/acme-cgm-system/model/cgm-system.prl +125 -0
  8. package/acme-cgm-system/model/r144-map.prl +75 -0
  9. package/acme-cgm-system/model/sample-line.prl +42 -0
  10. package/acme-cgm-system/package.primmel +23 -0
  11. package/acme-lc500/model/lc500.prl +218 -0
  12. package/acme-lc500/model/passport.prl +43 -0
  13. package/acme-lc500/model/r60-map.prl +161 -0
  14. package/acme-lc500/model/twin-cert-map.prl +114 -0
  15. package/acme-lc500/package.primmel +35 -0
  16. package/acme-md3xx/model/md350.prl +317 -0
  17. package/acme-md3xx/model/r129-map.prl +346 -0
  18. package/acme-md3xx/package.primmel +49 -0
  19. package/acme-rs180/model/r91-map.prl +234 -0
  20. package/acme-rs180/model/rs180.prl +236 -0
  21. package/acme-rs180/package.primmel +47 -0
  22. package/ims-demo/model/ims.prl +23 -0
  23. package/ims-demo/model/isms-map.prl +60 -0
  24. package/ims-demo/model/qms-map.prl +73 -0
  25. package/ims-demo/package.primmel +42 -0
  26. package/isms-ref/model/isms.prl +34 -0
  27. package/isms-ref/package.primmel +35 -0
  28. package/iso-iec-17000/package.primmel +8 -0
  29. package/iso-iec-17000/terminology.prl +268 -0
  30. package/iso-iec-17025/package.primmel +10 -0
  31. package/iso-iec-17025/specification/requirements/lab.prl +474 -0
  32. package/iso-iec-17025/terminology.prl +72 -0
  33. package/iso-iec-17065/package.primmel +10 -0
  34. package/iso-iec-17065/specification/requirements/body.prl +446 -0
  35. package/iso-iec-17065/terminology.prl +103 -0
  36. package/iso-iec-17067/package.primmel +10 -0
  37. package/iso-iec-17067/specification/requirements/scheme-content.prl +300 -0
  38. package/iso-iec-17067/terminology.prl +24 -0
  39. package/oiml-cs/package.primmel +10 -0
  40. package/oiml-cs/specification/discrepancies.prl +26 -0
  41. package/oiml-cs/specification/requirements/cs.prl +515 -0
  42. package/oiml-cs-dataspace/.primmel-allowlist.prl +25 -0
  43. package/oiml-cs-dataspace/package.primmel +9 -0
  44. package/oiml-cs-dataspace/specification/dataspace.prl +73 -0
  45. package/oiml-cs-dataspace/specification/policies.prl +68 -0
  46. package/oiml-integrated-ref/model/probe-pairing.prl +71 -0
  47. package/oiml-integrated-ref/package.primmel +10 -0
  48. package/oiml-r129/.primmel-allowlist.prl +2 -0
  49. package/oiml-r129/evaluation/processes.prl +152 -0
  50. package/oiml-r129/evaluation/workflow.prl +48 -0
  51. package/oiml-r129/execution/forms/admin/adjustments-modifications.prl +30 -0
  52. package/oiml-r129/execution/forms/admin/checklist.prl +70 -0
  53. package/oiml-r129/execution/forms/admin/configuration.prl +31 -0
  54. package/oiml-r129/execution/forms/admin/equipment-info.prl +27 -0
  55. package/oiml-r129/execution/forms/admin/general-info.prl +63 -0
  56. package/oiml-r129/execution/forms/admin/identification.prl +49 -0
  57. package/oiml-r129/execution/forms/admin/sample-selection.prl +30 -0
  58. package/oiml-r129/execution/forms/admin/summary-results.prl +50 -0
  59. package/oiml-r129/execution/forms/emc/bursts.prl +88 -0
  60. package/oiml-r129/execution/forms/emc/esd.prl +66 -0
  61. package/oiml-r129/execution/forms/emc/low-voltage-battery.prl +58 -0
  62. package/oiml-r129/execution/forms/emc/rf-immunity-conducted.prl +59 -0
  63. package/oiml-r129/execution/forms/emc/rf-immunity-radiated.prl +59 -0
  64. package/oiml-r129/execution/forms/emc/surge.prl +61 -0
  65. package/oiml-r129/execution/forms/emc/voltage-dips.prl +62 -0
  66. package/oiml-r129/execution/forms/emc/voltage-variation.prl +58 -0
  67. package/oiml-r129/execution/forms/env/damp-heat-cyclic.prl +43 -0
  68. package/oiml-r129/execution/forms/env/damp-heat-steady.prl +50 -0
  69. package/oiml-r129/execution/forms/env/static-temperatures.prl +61 -0
  70. package/oiml-r129/execution/forms/shared/headers.prl +86 -0
  71. package/oiml-r129/execution/forms/tests/acoustics.prl +44 -0
  72. package/oiml-r129/execution/forms/tests/ambient-light.prl +46 -0
  73. package/oiml-r129/execution/forms/tests/construction-examination.prl +46 -0
  74. package/oiml-r129/execution/forms/tests/examination-checklist.prl +51 -0
  75. package/oiml-r129/execution/forms/tests/object-shape.prl +43 -0
  76. package/oiml-r129/execution/forms/tests/orientation-position.prl +31 -0
  77. package/oiml-r129/execution/forms/tests/repeatability.prl +65 -0
  78. package/oiml-r129/execution/forms/tests/speed-movement.prl +59 -0
  79. package/oiml-r129/execution/forms/tests/surface-characteristics.prl +44 -0
  80. package/oiml-r129/execution/forms/tests/warm-up-time.prl +35 -0
  81. package/oiml-r129/execution/subforms/dimension-measurement.prl +93 -0
  82. package/oiml-r129/layers.prl +50 -0
  83. package/oiml-r129/model/attributes.prl +243 -0
  84. package/oiml-r129/model/behaviors.prl +79 -0
  85. package/oiml-r129/model/capabilities.prl +29 -0
  86. package/oiml-r129/model/characteristics.prl +8 -0
  87. package/oiml-r129/model/conditions.prl +23 -0
  88. package/oiml-r129/model/instrument.prl +67 -0
  89. package/oiml-r129/model/state.prl +22 -0
  90. package/oiml-r129/model/twin.prl +23 -0
  91. package/oiml-r129/package.primmel +15 -0
  92. package/oiml-r129/payload/application.yaml +40 -0
  93. package/oiml-r129/payload/conditions-common-test.yaml +8 -0
  94. package/oiml-r129/payload/formulas-variants.yaml +33 -0
  95. package/oiml-r129/payload/promises.yaml +102 -0
  96. package/oiml-r129/payload/sample-data.yaml +300 -0
  97. package/oiml-r129/references.prl +306 -0
  98. package/oiml-r129/sources-prd/coverage.json +59 -0
  99. package/oiml-r129/sources-prd/r129-1.sentences.json +4238 -0
  100. package/oiml-r129/sources-prd/r129-2.sentences.json +1139 -0
  101. package/oiml-r129/sources-prd/r129-3.sentences.json +3809 -0
  102. package/oiml-r129/sources-prd/r129-4.sentences.json +1227 -0
  103. package/oiml-r129/specification/calculations.prl +83 -0
  104. package/oiml-r129/specification/conformance/disturbance-tests.prl +212 -0
  105. package/oiml-r129/specification/conformance/effect-tests.prl +70 -0
  106. package/oiml-r129/specification/conformance/examinations.prl +83 -0
  107. package/oiml-r129/specification/conformance/metrological-tests.prl +178 -0
  108. package/oiml-r129/specification/formulas.prl +9 -0
  109. package/oiml-r129/specification/requirements/electronic.prl +46 -0
  110. package/oiml-r129/specification/requirements/metrological.prl +83 -0
  111. package/oiml-r129/specification/requirements/object-limitations.prl +99 -0
  112. package/oiml-r129/specification/requirements/software.prl +57 -0
  113. package/oiml-r129/specification/requirements/technical.prl +134 -0
  114. package/oiml-r129/specification/symbols.prl +187 -0
  115. package/oiml-r129/specification/tables.prl +74 -0
  116. package/oiml-r129/terminology.prl +415 -0
  117. package/oiml-r129/value-types.prl +40 -0
  118. package/oiml-r144/.primmel-allowlist.prl +2 -0
  119. package/oiml-r144/entities/instrument.prl +360 -0
  120. package/oiml-r144/entities/test-execution.prl +228 -0
  121. package/oiml-r144/entities/workflow.prl +2075 -0
  122. package/oiml-r144/evaluation/processes.prl +152 -0
  123. package/oiml-r144/evaluation/workflow.prl +48 -0
  124. package/oiml-r144/execution/forms/sec-3-report/03-01-laboratory-info.prl +19 -0
  125. package/oiml-r144/execution/forms/sec-3-report/03-02-test-location.prl +14 -0
  126. package/oiml-r144/execution/forms/sec-3-report/03-03-manufacturer-info.prl +18 -0
  127. package/oiml-r144/execution/forms/sec-3-report/03-04-applicant-info.prl +19 -0
  128. package/oiml-r144/execution/forms/sec-3-report/03-05-type-identification.prl +80 -0
  129. package/oiml-r144/execution/forms/sec-3-report/03-06-type-composition.prl +31 -0
  130. package/oiml-r144/execution/forms/sec-3-report/03-07-visual-examination.prl +46 -0
  131. package/oiml-r144/execution/forms/sec-3-report/03-08-test-conclusions.prl +46 -0
  132. package/oiml-r144/execution/forms/sec-3-report/03-09-general-conclusion.prl +19 -0
  133. package/oiml-r144/execution/forms/sec-3-report/03-10-responsible-persons.prl +27 -0
  134. package/oiml-r144/execution/forms/sec-tests/ambient-pressure-test.prl +59 -0
  135. package/oiml-r144/execution/forms/sec-tests/bursts-mains-test.prl +52 -0
  136. package/oiml-r144/execution/forms/sec-tests/bursts-signal-test.prl +55 -0
  137. package/oiml-r144/execution/forms/sec-tests/cold-test.prl +48 -0
  138. package/oiml-r144/execution/forms/sec-tests/cross-sensitivity-test.prl +92 -0
  139. package/oiml-r144/execution/forms/sec-tests/damp-heat-test.prl +50 -0
  140. package/oiml-r144/execution/forms/sec-tests/documentation-examination.prl +52 -0
  141. package/oiml-r144/execution/forms/sec-tests/drift-test.prl +83 -0
  142. package/oiml-r144/execution/forms/sec-tests/dry-heat-test.prl +53 -0
  143. package/oiml-r144/execution/forms/sec-tests/error-determination.prl +37 -0
  144. package/oiml-r144/execution/forms/sec-tests/esd-test.prl +53 -0
  145. package/oiml-r144/execution/forms/sec-tests/flow-spillover-test.prl +83 -0
  146. package/oiml-r144/execution/forms/sec-tests/leakproofness-test.prl +41 -0
  147. package/oiml-r144/execution/forms/sec-tests/low-battery-test.prl +48 -0
  148. package/oiml-r144/execution/forms/sec-tests/power-reduction-test.prl +49 -0
  149. package/oiml-r144/execution/forms/sec-tests/power-supply-test.prl +57 -0
  150. package/oiml-r144/execution/forms/sec-tests/repeatability-test.prl +60 -0
  151. package/oiml-r144/execution/forms/sec-tests/response-time-test.prl +43 -0
  152. package/oiml-r144/execution/forms/sec-tests/rf-emf-test.prl +47 -0
  153. package/oiml-r144/execution/forms/sec-tests/shock-test.prl +50 -0
  154. package/oiml-r144/execution/forms/sec-tests/surge-test.prl +52 -0
  155. package/oiml-r144/execution/forms/sec-tests/vibration-test.prl +58 -0
  156. package/oiml-r144/execution/forms/sec-tests/warm-up-time-test.prl +69 -0
  157. package/oiml-r144/execution/forms/shared/headers.prl +132 -0
  158. package/oiml-r144/execution/subforms/cgm-point.prl +99 -0
  159. package/oiml-r144/layers.prl +44 -0
  160. package/oiml-r144/model/attributes.prl +679 -0
  161. package/oiml-r144/model/behaviors.prl +117 -0
  162. package/oiml-r144/model/capabilities.prl +99 -0
  163. package/oiml-r144/model/characteristics.prl +27 -0
  164. package/oiml-r144/model/conditions.prl +46 -0
  165. package/oiml-r144/model/instrument.prl +85 -0
  166. package/oiml-r144/model/state.prl +18 -0
  167. package/oiml-r144/model/twin.prl +25 -0
  168. package/oiml-r144/package.primmel +15 -0
  169. package/oiml-r144/payload/application.yaml +80 -0
  170. package/oiml-r144/payload/attributes-pair-list.yaml +18 -0
  171. package/oiml-r144/payload/conditions-common-test.yaml +74 -0
  172. package/oiml-r144/payload/formulas-variants.yaml +32 -0
  173. package/oiml-r144/payload/promises.yaml +118 -0
  174. package/oiml-r144/payload/sample-data.yaml +643 -0
  175. package/oiml-r144/references.prl +594 -0
  176. package/oiml-r144/sources-prd/coverage.json +114 -0
  177. package/oiml-r144/sources-prd/r144-1.sentences.json +2797 -0
  178. package/oiml-r144/sources-prd/r144-2.sentences.json +1627 -0
  179. package/oiml-r144/sources-prd/r144-3.sentences.json +838 -0
  180. package/oiml-r144/specification/calculations.prl +123 -0
  181. package/oiml-r144/specification/conformance/examination.prl +87 -0
  182. package/oiml-r144/specification/conformance/performance-tests.prl +755 -0
  183. package/oiml-r144/specification/formulas.prl +37 -0
  184. package/oiml-r144/specification/reference-materials.prl +87 -0
  185. package/oiml-r144/specification/requirements/controls.prl +51 -0
  186. package/oiml-r144/specification/requirements/metrological.prl +299 -0
  187. package/oiml-r144/specification/requirements/report.prl +35 -0
  188. package/oiml-r144/specification/requirements/technical.prl +455 -0
  189. package/oiml-r144/specification/symbols.prl +357 -0
  190. package/oiml-r144/specification/tables.prl +95 -0
  191. package/oiml-r144/specification/test-point-sets.prl +15 -0
  192. package/oiml-r144/terminology.prl +308 -0
  193. package/oiml-r144/value-types.prl +49 -0
  194. package/oiml-r60/.primmel-allowlist.prl +2 -0
  195. package/oiml-r60/entities/workflow.prl +2079 -0
  196. package/oiml-r60/evaluation/processes.prl +152 -0
  197. package/oiml-r60/evaluation/workflow.prl +48 -0
  198. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-01-authority-info.prl +76 -0
  199. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-02-synopsis.prl +20 -0
  200. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-01-examinations.prl +27 -0
  201. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-a-performance-general.prl +81 -0
  202. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-b-performance-digital.prl +104 -0
  203. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-01-manufacturer.prl +21 -0
  204. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-02-applicant.prl +44 -0
  205. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-03-testing-laboratories.prl +69 -0
  206. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-05-load-cell-type-info.prl +83 -0
  207. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-06-accessories.prl +41 -0
  208. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-07-sample-selection.prl +71 -0
  209. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-01-general-info.prl +103 -0
  210. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-02-performance-info.prl +66 -0
  211. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-03-digital-info.prl +35 -0
  212. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-04-photographs.prl +12 -0
  213. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-05-documentation.prl +27 -0
  214. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-06-inscriptions.prl +126 -0
  215. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-07-model-range.prl +143 -0
  216. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-12-previous-tests.prl +26 -0
  217. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-01-force-generating-system.prl +89 -0
  218. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-02-weights.prl +61 -0
  219. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-03-temperature-chamber.prl +96 -0
  220. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-04-climate-chamber.prl +96 -0
  221. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-05-indicator.prl +92 -0
  222. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-06-terminal.prl +86 -0
  223. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-07-barometric-pressure-meter.prl +62 -0
  224. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-08-thermometer.prl +62 -0
  225. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-09-moisture-analyser.prl +62 -0
  226. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-10-additional-test-equipment.prl +69 -0
  227. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-11-remarks.prl +11 -0
  228. package/oiml-r60/execution/forms/sec-4-evaluation-report/test-usage-matrix.prl +85 -0
  229. package/oiml-r60/execution/forms/sec-5-examination/documentation-examination.prl +53 -0
  230. package/oiml-r60/execution/forms/sec-5-examination/marking-examination.prl +104 -0
  231. package/oiml-r60/execution/forms/sec-5-examination/software-examination.prl +86 -0
  232. package/oiml-r60/execution/forms/sec-5-examination/suitability-examination.prl +56 -0
  233. package/oiml-r60/execution/forms/sec-6-performance-tests/barometric-pressure.prl +176 -0
  234. package/oiml-r60/execution/forms/sec-6-performance-tests/bursts.prl +129 -0
  235. package/oiml-r60/execution/forms/sec-6-performance-tests/conducted-emc.prl +170 -0
  236. package/oiml-r60/execution/forms/sec-6-performance-tests/creep-dr.prl +327 -0
  237. package/oiml-r60/execution/forms/sec-6-performance-tests/emc-susceptibility.prl +115 -0
  238. package/oiml-r60/execution/forms/sec-6-performance-tests/esd.prl +224 -0
  239. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-ch.prl +300 -0
  240. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-sh.prl +235 -0
  241. package/oiml-r60/execution/forms/sec-6-performance-tests/initial-tests.prl +129 -0
  242. package/oiml-r60/execution/forms/sec-6-performance-tests/load-cell-errors.prl +280 -0
  243. package/oiml-r60/execution/forms/sec-6-performance-tests/load-test.prl +29 -0
  244. package/oiml-r60/execution/forms/sec-6-performance-tests/performance-test-summary.prl +82 -0
  245. package/oiml-r60/execution/forms/sec-6-performance-tests/power-voltage.prl +166 -0
  246. package/oiml-r60/execution/forms/sec-6-performance-tests/repeatability.prl +189 -0
  247. package/oiml-r60/execution/forms/sec-6-performance-tests/short-time-power.prl +98 -0
  248. package/oiml-r60/execution/forms/sec-6-performance-tests/span-stability.prl +242 -0
  249. package/oiml-r60/execution/forms/sec-6-performance-tests/surge.prl +142 -0
  250. package/oiml-r60/execution/forms/sec-6-performance-tests/temperature-mdlo.prl +180 -0
  251. package/oiml-r60/execution/forms/sec-6-performance-tests/warm-up-time.prl +207 -0
  252. package/oiml-r60/execution/forms/shared/headers.prl +255 -0
  253. package/oiml-r60/execution/subforms/load-test-row.prl +55 -0
  254. package/oiml-r60/execution/subforms/test-procedures.prl +33 -0
  255. package/oiml-r60/layers.prl +46 -0
  256. package/oiml-r60/model/attributes.prl +642 -0
  257. package/oiml-r60/model/behaviors.prl +165 -0
  258. package/oiml-r60/model/capabilities.prl +57 -0
  259. package/oiml-r60/model/characteristics.prl +27 -0
  260. package/oiml-r60/model/conditions.prl +50 -0
  261. package/oiml-r60/model/instrument.prl +96 -0
  262. package/oiml-r60/model/processes.prl +54 -0
  263. package/oiml-r60/model/state.prl +22 -0
  264. package/oiml-r60/model/twin.prl +16 -0
  265. package/oiml-r60/package.primmel +16 -0
  266. package/oiml-r60/payload/annexes-part4.yaml +122 -0
  267. package/oiml-r60/payload/application.yaml +83 -0
  268. package/oiml-r60/payload/conditions-common-test.yaml +121 -0
  269. package/oiml-r60/payload/formulas-variants.yaml +55 -0
  270. package/oiml-r60/payload/promises.yaml +224 -0
  271. package/oiml-r60/payload/sample-data.yaml +5025 -0
  272. package/oiml-r60/payload/symbols-formula-notes.yaml +21 -0
  273. package/oiml-r60/references.prl +549 -0
  274. package/oiml-r60/sources-prd/coverage.json +740 -0
  275. package/oiml-r60/sources-prd/r60-1.sentences.json +2173 -0
  276. package/oiml-r60/sources-prd/r60-2.sentences.json +2961 -0
  277. package/oiml-r60/sources-prd/r60-3.sentences.json +4212 -0
  278. package/oiml-r60/sources-prd/r60-a.sentences.json +3361 -0
  279. package/oiml-r60/specification/calculations.prl +318 -0
  280. package/oiml-r60/specification/conformance/class-specific.prl +1120 -0
  281. package/oiml-r60/specification/conformance/electronic.prl +483 -0
  282. package/oiml-r60/specification/conformance/examination.prl +183 -0
  283. package/oiml-r60/specification/conformance/metrological.prl +478 -0
  284. package/oiml-r60/specification/constraints.prl +58 -0
  285. package/oiml-r60/specification/formulas-used.prl +43 -0
  286. package/oiml-r60/specification/formulas.prl +20 -0
  287. package/oiml-r60/specification/requirements/class-specific.prl +655 -0
  288. package/oiml-r60/specification/requirements/classification.prl +114 -0
  289. package/oiml-r60/specification/requirements/electronic.prl +222 -0
  290. package/oiml-r60/specification/requirements/metrological.prl +381 -0
  291. package/oiml-r60/specification/requirements/technical.prl +146 -0
  292. package/oiml-r60/specification/symbols.prl +599 -0
  293. package/oiml-r60/specification/tables.prl +182 -0
  294. package/oiml-r60/specification/test-sequences.prl +72 -0
  295. package/oiml-r60/terminology.prl +920 -0
  296. package/oiml-r60/value-types.prl +46 -0
  297. package/oiml-r91/.primmel-allowlist.prl +3 -0
  298. package/oiml-r91/entities/instrument.prl +359 -0
  299. package/oiml-r91/entities/workflow.prl +2075 -0
  300. package/oiml-r91/evaluation/processes.prl +152 -0
  301. package/oiml-r91/evaluation/workflow.prl +48 -0
  302. package/oiml-r91/execution/forms/evidence-file.prl +41 -0
  303. package/oiml-r91/execution/forms/report-evaluation/appraisal.prl +30 -0
  304. package/oiml-r91/execution/forms/report-evaluation/checklist-summary.prl +43 -0
  305. package/oiml-r91/execution/forms/report-evaluation/checklist.prl +76 -0
  306. package/oiml-r91/execution/forms/report-evaluation/configuration-samples.prl +22 -0
  307. package/oiml-r91/execution/forms/report-evaluation/corrective-actions.prl +24 -0
  308. package/oiml-r91/execution/forms/report-evaluation/descriptions.prl +47 -0
  309. package/oiml-r91/execution/forms/report-evaluation/evaluation-identification.prl +219 -0
  310. package/oiml-r91/execution/forms/report-evaluation/test-report-summary.prl +33 -0
  311. package/oiml-r91/execution/forms/report-general/adjustments.prl +12 -0
  312. package/oiml-r91/execution/forms/report-general/alignment-aiming.prl +17 -0
  313. package/oiml-r91/execution/forms/report-general/checking-facility.prl +17 -0
  314. package/oiml-r91/execution/forms/report-general/configuration.prl +12 -0
  315. package/oiml-r91/execution/forms/report-general/identification.prl +216 -0
  316. package/oiml-r91/execution/forms/report-general/indications-controls.prl +17 -0
  317. package/oiml-r91/execution/forms/report-general/sealing.prl +21 -0
  318. package/oiml-r91/execution/forms/report-general/software-description.prl +26 -0
  319. package/oiml-r91/execution/forms/report-general/summary-environmental.prl +35 -0
  320. package/oiml-r91/execution/forms/report-general/summary-tests.prl +35 -0
  321. package/oiml-r91/execution/forms/report-general/test-equipment.prl +36 -0
  322. package/oiml-r91/execution/forms/report-general/test-interface.prl +16 -0
  323. package/oiml-r91/execution/forms/report-tests/01-01-field-test.prl +84 -0
  324. package/oiml-r91/execution/forms/report-tests/01-02-statistical-analysis.prl +76 -0
  325. package/oiml-r91/execution/forms/report-tests/01-03-image-evidence.prl +30 -0
  326. package/oiml-r91/execution/forms/report-tests/02-01-dynamic-performance.prl +92 -0
  327. package/oiml-r91/execution/forms/report-tests/02-02-speed-linearity.prl +23 -0
  328. package/oiml-r91/execution/forms/report-tests/02-03-distance-linearity.prl +67 -0
  329. package/oiml-r91/execution/forms/report-tests/02-04-angle-linearity.prl +59 -0
  330. package/oiml-r91/execution/forms/report-tests/03-01-dry-heat-operating.prl +38 -0
  331. package/oiml-r91/execution/forms/report-tests/03-02-dry-heat-storage.prl +48 -0
  332. package/oiml-r91/execution/forms/report-tests/03-03-cold-operating.prl +40 -0
  333. package/oiml-r91/execution/forms/report-tests/03-04-cold-storage.prl +48 -0
  334. package/oiml-r91/execution/forms/report-tests/03-05-damp-heat-cyclic.prl +40 -0
  335. package/oiml-r91/execution/forms/report-tests/03-06-water.prl +48 -0
  336. package/oiml-r91/execution/forms/report-tests/03-07-sand-and-dust.prl +48 -0
  337. package/oiml-r91/execution/forms/report-tests/03-08-salt-mist.prl +48 -0
  338. package/oiml-r91/execution/forms/report-tests/03-09-vibration-random.prl +40 -0
  339. package/oiml-r91/execution/forms/report-tests/03-10-mechanical-shock.prl +48 -0
  340. package/oiml-r91/execution/forms/report-tests/03-11-dc-mains-voltage-variation.prl +40 -0
  341. package/oiml-r91/execution/forms/report-tests/03-12-ripple-on-dc-mains.prl +47 -0
  342. package/oiml-r91/execution/forms/report-tests/03-13-ac-mains-voltage-variation.prl +40 -0
  343. package/oiml-r91/execution/forms/report-tests/03-14-ac-mains-frequency-variation.prl +40 -0
  344. package/oiml-r91/execution/forms/report-tests/03-15-dc-mains-voltage-dips.prl +46 -0
  345. package/oiml-r91/execution/forms/report-tests/03-16-ac-mains-voltage-dips.prl +46 -0
  346. package/oiml-r91/execution/forms/report-tests/03-17-ac-mains-frequency-harmonics.prl +47 -0
  347. package/oiml-r91/execution/forms/report-tests/03-18-vlf-lf-disturbances.prl +46 -0
  348. package/oiml-r91/execution/forms/report-tests/03-19-bursts-ac-dc-mains.prl +44 -0
  349. package/oiml-r91/execution/forms/report-tests/03-20-surges-ac-dc-mains.prl +45 -0
  350. package/oiml-r91/execution/forms/report-tests/03-21-bursts-signal-lines.prl +45 -0
  351. package/oiml-r91/execution/forms/report-tests/03-22-surges-signal-lines.prl +46 -0
  352. package/oiml-r91/execution/forms/report-tests/03-23-ac-mains-magnetic-field.prl +45 -0
  353. package/oiml-r91/execution/forms/report-tests/03-24-conducted-rf-common-mode.prl +46 -0
  354. package/oiml-r91/execution/forms/report-tests/03-25-rf-electromagnetic-fields.prl +49 -0
  355. package/oiml-r91/execution/forms/report-tests/03-26-electrostatic-discharges.prl +47 -0
  356. package/oiml-r91/execution/forms/report-tests/03-27-internal-battery-low-voltage.prl +40 -0
  357. package/oiml-r91/execution/forms/report-tests/03-28-road-vehicle-battery.prl +40 -0
  358. package/oiml-r91/execution/forms/report-tests/03-29-transient-supply-lines.prl +47 -0
  359. package/oiml-r91/execution/forms/report-tests/03-30-transient-other-lines.prl +45 -0
  360. package/oiml-r91/execution/forms/report-tests/03-31-battery-cranking.prl +45 -0
  361. package/oiml-r91/execution/forms/report-tests/03-32-load-dump.prl +47 -0
  362. package/oiml-r91/execution/forms/report-tests/03-33-acceleration.prl +66 -0
  363. package/oiml-r91/execution/forms/report-tests/03-34-further-influence.prl +60 -0
  364. package/oiml-r91/execution/forms/report-tests/03-35-installation-alignment.prl +29 -0
  365. package/oiml-r91/execution/forms/report-tests/04-01-doppler-radar.prl +43 -0
  366. package/oiml-r91/execution/forms/report-tests/04-02-range-finding.prl +42 -0
  367. package/oiml-r91/execution/forms/report-tests/04-03-average-speed.prl +41 -0
  368. package/oiml-r91/execution/forms/report-tests/04-04-fixed-distance.prl +40 -0
  369. package/oiml-r91/execution/forms/report-tests/04-05-image-based.prl +41 -0
  370. package/oiml-r91/execution/forms/report-tests/04-06-across-road.prl +42 -0
  371. package/oiml-r91/execution/forms/report-tests/05-01-moving-field-test.prl +29 -0
  372. package/oiml-r91/execution/forms/report-tests/05-02-ego-field-test.prl +57 -0
  373. package/oiml-r91/execution/forms/report-tests/05-03-moving-traffic-simulation.prl +31 -0
  374. package/oiml-r91/execution/forms/report-tests/06-01-software-general.prl +25 -0
  375. package/oiml-r91/execution/forms/report-tests/06-02-software-protection.prl +25 -0
  376. package/oiml-r91/execution/forms/report-tests/06-03-software-hardware-support.prl +24 -0
  377. package/oiml-r91/execution/forms/report-tests/06-04-software-separation.prl +25 -0
  378. package/oiml-r91/execution/forms/report-tests/06-05-software-maintenance.prl +24 -0
  379. package/oiml-r91/execution/forms/report-tests/07-general-remarks.prl +11 -0
  380. package/oiml-r91/execution/forms/shared/header-a.prl +63 -0
  381. package/oiml-r91/execution/subforms/software-matrix-row.prl +30 -0
  382. package/oiml-r91/execution/subforms/speed-measurement-row.prl +38 -0
  383. package/oiml-r91/layers.prl +46 -0
  384. package/oiml-r91/model/artifacts.prl +29 -0
  385. package/oiml-r91/model/attributes.prl +698 -0
  386. package/oiml-r91/model/behaviors.prl +142 -0
  387. package/oiml-r91/model/capabilities.prl +88 -0
  388. package/oiml-r91/model/characteristics.prl +27 -0
  389. package/oiml-r91/model/conditions.prl +37 -0
  390. package/oiml-r91/model/instrument.prl +147 -0
  391. package/oiml-r91/model/state.prl +22 -0
  392. package/oiml-r91/model/twin.prl +17 -0
  393. package/oiml-r91/package.primmel +14 -0
  394. package/oiml-r91/payload/application.yaml +201 -0
  395. package/oiml-r91/payload/conditions-common-test.yaml +19 -0
  396. package/oiml-r91/payload/promises.yaml +142 -0
  397. package/oiml-r91/payload/sample-data.yaml +464 -0
  398. package/oiml-r91/references.prl +72 -0
  399. package/oiml-r91/sources-prd/coverage.json +106 -0
  400. package/oiml-r91/sources-prd/r91-1.sentences.json +4696 -0
  401. package/oiml-r91/sources-prd/r91-2.sentences.json +2067 -0
  402. package/oiml-r91/sources-prd/r91-3.sentences.json +5210 -0
  403. package/oiml-r91/sources-prd/r91-4.sentences.json +474 -0
  404. package/oiml-r91/specification/calculations.prl +26 -0
  405. package/oiml-r91/specification/conformance/influence-disturbance.prl +1792 -0
  406. package/oiml-r91/specification/conformance/metrological.prl +906 -0
  407. package/oiml-r91/specification/formulas.prl +10 -0
  408. package/oiml-r91/specification/requirements/class-specific.prl +308 -0
  409. package/oiml-r91/specification/requirements/metrological.prl +176 -0
  410. package/oiml-r91/specification/requirements/technical.prl +173 -0
  411. package/oiml-r91/specification/symbols.prl +323 -0
  412. package/oiml-r91/specification/tables.prl +136 -0
  413. package/oiml-r91/terminology.prl +535 -0
  414. package/oiml-r91/value-types.prl +26 -0
  415. package/oiml-smart-core/entities/comments.prl +101 -0
  416. package/oiml-smart-core/entities/cs-operations.prl +492 -0
  417. package/oiml-smart-core/entities/cs-participants.prl +470 -0
  418. package/oiml-smart-core/entities/engagement.prl +323 -0
  419. package/oiml-smart-core/entities/instrument.prl +359 -0
  420. package/oiml-smart-core/entities/module-b.prl +214 -0
  421. package/oiml-smart-core/entities/operated-schemes.prl +141 -0
  422. package/oiml-smart-core/entities/parties.prl +429 -0
  423. package/oiml-smart-core/entities/payment-records.prl +92 -0
  424. package/oiml-smart-core/entities/verification.prl +187 -0
  425. package/oiml-smart-core/entities/workflow.prl +2075 -0
  426. package/oiml-smart-core/evaluation/roles.prl +65 -0
  427. package/oiml-smart-core/evaluation/state-machines.prl +1157 -0
  428. package/oiml-smart-core/package.primmel +10 -0
  429. package/oiml-smart-core/specification/competence-kinds.prl +64 -0
  430. package/oiml-smart-core/specification/constraints.prl +40 -0
  431. package/oiml-smart-core/specification/invariants.prl +90 -0
  432. package/oiml-smart-core/specification/predicates.prl +116 -0
  433. package/oiml-smart-module-emc-disturbances/package.primmel +10 -0
  434. package/oiml-smart-module-env-iec60068/package.primmel +10 -0
  435. package/oiml-smart-module-examination-docs/package.primmel +10 -0
  436. package/oiml-smart-module-reference-materials/package.primmel +10 -0
  437. package/oiml-smart-module-report-headers/package.primmel +10 -0
  438. package/oiml-smart-module-software-d31/package.primmel +10 -0
  439. package/oiml-smart-module-specimen-governance/entities/test-execution.prl +228 -0
  440. package/oiml-smart-module-specimen-governance/package.primmel +10 -0
  441. package/oiml-twin-cert/documents/tw-1/document.yaml +454 -0
  442. package/oiml-twin-cert/evaluation/roles.prl +15 -0
  443. package/oiml-twin-cert/execution/forms/probe-creep.prl +179 -0
  444. package/oiml-twin-cert/execution/forms/probe.prl +99 -0
  445. package/oiml-twin-cert/execution/forms/static-conformance.prl +50 -0
  446. package/oiml-twin-cert/model/attributes.prl +243 -0
  447. package/oiml-twin-cert/model/behaviors.prl +8 -0
  448. package/oiml-twin-cert/model/characteristics.prl +18 -0
  449. package/oiml-twin-cert/model/monitors.prl +16 -0
  450. package/oiml-twin-cert/package.primmel +16 -0
  451. package/oiml-twin-cert/specification/conformance/twin-fidelity.prl +176 -0
  452. package/oiml-twin-cert/specification/requirements/twin-fidelity.prl +137 -0
  453. package/oiml-twin-cert/specification/symbols.prl +36 -0
  454. package/oiml-twin-cert/terminology.prl +8 -0
  455. package/oimlsmart-primmel-packages-0.1.0.tgz +0 -0
  456. package/package.json +17 -0
  457. package/qms-ref/model/qms.prl +31 -0
  458. package/qms-ref/package.primmel +38 -0
  459. package/quarry-belt-scale/model/ops.prl +115 -0
  460. package/quarry-belt-scale/package.primmel +36 -0
@@ -0,0 +1,337 @@
1
+ # ─────────────────────────────────────────────────────────────────────
2
+ # ACME CGM-200 → OIML R 144 — the conformance claim made computable
3
+ # (TODO.v2/08's R 144 phase; TODO.roadmap/36; doctrine ch. 15 §15.2).
4
+ #
5
+ # The decisive act of the product reference model: every conformance-
6
+ # relevant aspect and promise is mapped to the Recommendation's — aspect
7
+ # by aspect, node to node, promise to requirement. The map targets are
8
+ # the package's own `oiml-r144#…` alias declarations (the implementation
9
+ # declares local copies of the reference elements it maps to — C21); the
10
+ # platform's product-coverage gate resolves the unqualified ids against
11
+ # the real R 144 package (data/r144's requirement vocabulary), so no
12
+ # clause reference dangles.
13
+ #
14
+ # 100 % of the tested characteristics are covered: every block-form
15
+ # promise is a mapping source (C82 product-unmapped-promises stays
16
+ # silent), and every promise target (the two per-channel error
17
+ # characteristics and the behaviors the standard's tests exercise —
18
+ # drift, step response, warm-up, cross-sensitivity, the adjustments,
19
+ # the self-check, the reference reduction) is reachable through one.
20
+ #
21
+ # The honest boundary (the coverage audit): the map claims the
22
+ # METROLOGICAL core the twin serves evidence for — 4.1 units, 4.2
23
+ # ranges, 4.3.1 intrinsic MPE, 4.4 repeatability, 4.5.1 rated conditions
24
+ # (whose limit IS the 4.3.2 verification MPE — a SHOULD, subsumed here,
25
+ # never claimed as a separate promise), 4.5.2 cross-sensitivity, 4.5.4
26
+ # disturbances, 4.6 response time, 4.7 warm-up, 4.8 drift — plus the
27
+ # three technical requirements the twin interface itself touches (5.1.6
28
+ # flow check, 5.5.2 flow supervision, 5.7.1 adjustment access). The
29
+ # remaining technical requirements (construction, display, printing,
30
+ # markings, documentation) are examination/inspection matters of the
31
+ # Recommendation's own type evaluation program — the product reference
32
+ # model makes no computable claim about them and the map says so rather
33
+ # than decorating them.
34
+ # ─────────────────────────────────────────────────────────────────────
35
+
36
+ requirement oiml-r144#/req/metrological/measurement-units {
37
+ name "alias: R 144 presentation of measurement results"
38
+ statement "Local alias of the Recommendation's measurement-units requirement — ppm, reduced to the reference conditions 273.15 K / 101.325 kPa (the product reference model declares local copies of the reference elements it maps to — C21)."
39
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
40
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.1" }
41
+ }
42
+
43
+ requirement oiml-r144#/req/metrological/measuring-range {
44
+ name "alias: R 144 measuring range"
45
+ statement "Local alias of the Recommendation's measuring-range requirement (the 4.2 envelopes per component; sub-ranges admitted)."
46
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
47
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.2" }
48
+ }
49
+
50
+ requirement oiml-r144#/req/metrological/mpe-intrinsic {
51
+ name "alias: R 144 maximum permissible intrinsic error"
52
+ statement "Local alias of the Recommendation's intrinsic-MPE requirement — the larger of 2 ppm and 5 % of the measured value."
53
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
54
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.3.1" }
55
+ }
56
+
57
+ requirement oiml-r144#/req/metrological/repeatability {
58
+ name "alias: R 144 repeatability"
59
+ statement "Local alias of the Recommendation's repeatability requirement — the estimated standard deviation within one third of the intrinsic MPE."
60
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
61
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.4" }
62
+ }
63
+
64
+ requirement oiml-r144#/req/metrological/rated-conditions {
65
+ name "alias: R 144 rated operating conditions"
66
+ statement "Local alias of the Recommendation's rated-operating-conditions requirement (temperature, humidity, pressure, supply — the 4.3.2 verification MPE across them)."
67
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
68
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.5.1" }
69
+ }
70
+
71
+ requirement oiml-r144#/req/metrological/cross-sensitivity {
72
+ name "alias: R 144 cross sensitivity"
73
+ statement "Local alias of the Recommendation's cross-sensitivity requirement — interferents up to their declared maxima shift the indication by no more than half the intrinsic MPE."
74
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
75
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.5.2" }
76
+ }
77
+
78
+ requirement oiml-r144#/req/metrological/disturbances {
79
+ name "alias: R 144 disturbances"
80
+ statement "Local alias of the Recommendation's disturbances requirement — the error within limits or the failure detected by the checking facility."
81
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
82
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.5.4" }
83
+ }
84
+
85
+ requirement oiml-r144#/req/metrological/response-time {
86
+ name "alias: R 144 response time"
87
+ statement "Local alias of the Recommendation's response-time requirement — 90 % of the stable value within four minutes for a 0 % to 100 % step."
88
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
89
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.6" }
90
+ }
91
+
92
+ requirement oiml-r144#/req/metrological/warm-up-time {
93
+ name "alias: R 144 warm-up time"
94
+ statement "Local alias of the Recommendation's warm-up-time requirement — the system meets the metrological requirements after the manufacturer-specified warm-up time."
95
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
96
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.7" }
97
+ }
98
+
99
+ requirement oiml-r144#/req/metrological/drift {
100
+ name "alias: R 144 stability with time (drift)"
101
+ statement "Local alias of the Recommendation's drift requirement — the error within the intrinsic MPE for at least seven days from adjustment (semi-automatic adjustment means)."
102
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
103
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "4.8" }
104
+ }
105
+
106
+ requirement oiml-r144#/req/technical/gas-flow-meter {
107
+ name "alias: R 144 gas flow meter"
108
+ statement "Local alias of the Recommendation's gas-flow-meter requirement — the user can check the manufacturer-specified measuring mode."
109
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
110
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "5.1.6" }
111
+ }
112
+
113
+ requirement oiml-r144#/req/technical/gas-flow-monitoring {
114
+ name "alias: R 144 gas flow monitoring"
115
+ statement "Local alias of the Recommendation's gas-flow-monitoring requirement — the device signals flow unavailable or outside the manufacturer-specified limits."
116
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
117
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "5.5.2" }
118
+ }
119
+
120
+ requirement oiml-r144#/req/technical/adjustment-security {
121
+ name "alias: R 144 adjustment access control"
122
+ statement "Local alias of the Recommendation's adjustment-access requirement — zero-setting and CGM adjustment inaccessible to the operator; access by code or equivalent."
123
+ verification { method examination description "Verified in the Recommendation's own type evaluation program." }
124
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "5.7.1" }
125
+ }
126
+
127
+ # The governed twin interface aliases (TODO.v2/16 — the projection's
128
+ # map side): the product's projection pairs name the BACKING components
129
+ # — the endpoint and the per-register backing attributes — never the
130
+ # serve bindings (derived from the Recommendation's twin.prl, not
131
+ # mapped). Composition `all`: every governed element IN THE PRODUCT'S
132
+ # MEASURAND SET must be backed. The R 144 interface is component-scoped
133
+ # (indication_<component> per the measurand_components vocabulary):
134
+ # this product measures CO + NOx, so indication_no and indication_no2
135
+ # are outside its scope — governed by the Recommendation, not served
136
+ # here, never a gap (the projection gate's scope filter).
137
+ process oiml-r144#/twin/interface {
138
+ name "alias: the R 144 governed twin interface — the projection itself"
139
+ process oiml-r144#/twin/interface/endpoint/gas_analytical_api {
140
+ name "alias: the governed endpoint gas_analytical_api (rest_json: per-component indication queries, watch_op_state subscribe, the calibration/self-check invokes)"
141
+ }
142
+ process oiml-r144#/twin/interface/serve/indication_co {
143
+ name "alias: governed register sample.indication_co (via get_indication_co, fresh_within 5s)"
144
+ }
145
+ process oiml-r144#/twin/interface/serve/indication_no {
146
+ name "alias: governed register sample.indication_no (via get_indication_no, fresh_within 5s) — outside this product's measurand set"
147
+ }
148
+ process oiml-r144#/twin/interface/serve/indication_no2 {
149
+ name "alias: governed register sample.indication_no2 (via get_indication_no2, fresh_within 5s) — outside this product's measurand set"
150
+ }
151
+ process oiml-r144#/twin/interface/serve/indication_nox {
152
+ name "alias: governed register sample.indication_nox (via get_indication_nox, fresh_within 5s)"
153
+ }
154
+ process oiml-r144#/twin/interface/serve/state {
155
+ name "alias: governed register sample.state (via watch_op_state, fresh_within 1s)"
156
+ }
157
+ process oiml-r144#/twin/interface/serve/environmental_context {
158
+ name "alias: governed register sample.environmental_context (via watch_op_state, fresh_within 1s)"
159
+ }
160
+ }
161
+
162
+ map_profile oiml-r144 {
163
+ description "CGM-200 → R 144: the manufacturer's conformance claim, made computable — every conformance-relevant aspect and promise mapped to the Recommendation (doctrine ch. 15 §15.2). The metrological core plus the twin-touched technical requirements; the examination-side technical requirements are the Recommendation's own inspection program (the header's honest boundary)."
164
+ mapping {
165
+ mpe_within_co -> oiml-r144#/req/metrological/mpe-intrinsic {
166
+ description "The CO channel's error promise answers the intrinsic-MPE requirement."
167
+ justification "Same quantity, same clause definition — our error_hold_co characteristic is the quantity the error-of-indication test computes on the CO channel (R 144-2, 1.2; §15.2)."
168
+ }
169
+ mpe_within_nox -> oiml-r144#/req/metrological/mpe-intrinsic {
170
+ description "The NOx channel's error promise answers the intrinsic-MPE requirement."
171
+ justification "Same quantity on the NOx sum channel — NOx = NO + NO2 (R 144-1, 1.1/2.4 NOTE), the range and MPE inherit from the component channels."
172
+ }
173
+ repeatability_co -> oiml-r144#/req/metrological/repeatability {
174
+ description "The CO repeatability promise answers the repeatability requirement."
175
+ justification "Same characteristic — the estimated standard deviation of the 20-run series (R 144-2, 1.4), bounded by one third of the intrinsic MPE."
176
+ }
177
+ repeatability_nox -> oiml-r144#/req/metrological/repeatability {
178
+ description "The NOx repeatability promise answers the repeatability requirement."
179
+ justification "Same characteristic on the NOx channel, computed by the same test series."
180
+ }
181
+ response_time_within -> oiml-r144#/req/metrological/response-time {
182
+ description "The step-response promise answers the response-time requirement."
183
+ justification "Our step_response behavior is the behavior the standard's response-time test exercises (R 144-2, 1.20) — declared t_90 = 180 s against the 240 s limit."
184
+ }
185
+ warm_up_declared -> oiml-r144#/req/metrological/warm-up-time {
186
+ description "The warm-up promise answers the warm-up-time requirement."
187
+ justification "The manufacturer-specified 30 min warm-up is the period the requirement conditions on; the post-warm-up indications hold the verification MPE (R 144-2, 1.19)."
188
+ }
189
+ drift_within -> oiml-r144#/req/metrological/drift {
190
+ description "The drift promise answers the seven-day drift requirement."
191
+ justification "Our drift behavior is the behavior the standard's drift test exercises (R 144-2, 1.3), at the same adjustment-means applicability (semi-automatic)."
192
+ }
193
+ cross_sensitivity_within -> oiml-r144#/req/metrological/cross-sensitivity {
194
+ description "The cross-sensitivity promise answers the cross-sensitivity requirement."
195
+ justification "Our cross_sensitivity behavior is the behavior the standard's cross-sensitivity test exercises (R 144-2, 1.10), bounded by half the intrinsic MPE."
196
+ }
197
+ rated_envelope -> oiml-r144#/req/metrological/rated-conditions {
198
+ description "The rated-envelope promise answers the rated-operating-conditions requirement."
199
+ justification "The declared envelope (5…40 °C, ≤ 90 %RH, 86–106 kPa, 230 V −15 %/+10 %, 50 Hz ±2 %) is the requirement's condition tier, held at the 4.3.2 verification MPE — the requirement's own limit."
200
+ }
201
+ fault_annunciation -> oiml-r144#/req/metrological/disturbances {
202
+ description "The self-check promise answers the disturbances requirement."
203
+ justification "The checking facilities detect a significant fault and the state machine annunciates it — the detection half of the requirement's within-limits-or-detected disjunction."
204
+ }
205
+ flow_supervision -> oiml-r144#/req/technical/gas-flow-monitoring {
206
+ description "The flow-supervision promise answers the gas-flow-monitoring requirement."
207
+ justification "The self-check's flow supervision signals flow unavailable or outside the declared 0.5–3.0 L/min window — the behaviour the requirement demands."
208
+ }
209
+ adjustment_access -> oiml-r144#/req/technical/adjustment-security {
210
+ description "The adjustment-access promise answers the adjustment access-control requirement."
211
+ justification "Zero/span adjustment is code-protected on the instrument and authority-scoped on the twin endpoint — the same protection, declared in both media."
212
+ }
213
+ ppm_presentation -> oiml-r144#/req/metrological/measurement-units {
214
+ description "The presentation promise answers the measurement-units requirement."
215
+ justification "Our reference_reduction behavior is the reduction the requirement demands; the twin serves ppm at reference conditions only."
216
+ }
217
+ co_range_min -> oiml-r144#/req/metrological/measuring-range {
218
+ description "Our CO range lower limit is R 144's CO envelope lower bound."
219
+ justification "Same quantity, same clause definition (R 144-1, 4.2) — 10 ppm against the 10 ppm envelope bound."
220
+ }
221
+ co_range_max -> oiml-r144#/req/metrological/measuring-range {
222
+ description "Our CO range upper limit lies within R 144's CO envelope."
223
+ justification "Same quantity (R 144-1, 4.2) — 5000 ppm against the 20000 ppm envelope bound; a sub-range, admitted by the clause."
224
+ }
225
+ no_range_min -> oiml-r144#/req/metrological/measuring-range {
226
+ description "Our NO range lower limit is R 144's NO envelope lower bound."
227
+ justification "Same quantity (R 144-1, 4.2) — 10 ppm against the 10 ppm envelope bound."
228
+ }
229
+ no_range_max -> oiml-r144#/req/metrological/measuring-range {
230
+ description "Our NO range upper limit lies within R 144's NO envelope."
231
+ justification "Same quantity (R 144-1, 4.2) — 2000 ppm against the 5000 ppm envelope bound."
232
+ }
233
+ no2_range_min -> oiml-r144#/req/metrological/measuring-range {
234
+ description "Our NO2 range lower limit is R 144's NO2 envelope lower bound."
235
+ justification "Same quantity (R 144-1, 4.2) — 10 ppm against the 10 ppm envelope bound."
236
+ }
237
+ no2_range_max -> oiml-r144#/req/metrological/measuring-range {
238
+ description "Our NO2 range upper limit lies within R 144's NO2 envelope."
239
+ justification "Same quantity (R 144-1, 4.2) — 400 ppm against the 500 ppm envelope bound."
240
+ }
241
+ response_time -> oiml-r144#/req/metrological/response-time {
242
+ description "Our declared t_90 is the quantity the response-time requirement limits."
243
+ justification "Same quantity (R 144-1, 4.6) — the declared 180 s design value against the 240 s limit, exercised per channel by the promise above."
244
+ }
245
+ warm_up_time -> oiml-r144#/req/metrological/warm-up-time {
246
+ description "Our declared warm-up time is the period the warm-up requirement conditions on."
247
+ justification "Same quantity (R 144-1, 4.7) — the manufacturer-specified 30 min, declared in the operating manual (R 144-1, 6.2 item 4)."
248
+ }
249
+ gas_flow_rate_nominal -> oiml-r144#/req/technical/gas-flow-meter {
250
+ description "Our nominal flow rate is the manufacturer-specified measuring mode the user checks at the flow meter."
251
+ justification "Same quantity (R 144-1, 5.1.6) — 1.5 L/min, checkable by the user via the gas flow meter."
252
+ }
253
+ gas_flow_rate_min -> oiml-r144#/req/technical/gas-flow-monitoring {
254
+ description "Our flow window lower limit is the limit the monitoring device signals below."
255
+ justification "Same quantity (R 144-1, 5.5.2) — 0.5 L/min, the manufacturer-specified lower limit."
256
+ }
257
+ gas_flow_rate_max -> oiml-r144#/req/technical/gas-flow-monitoring {
258
+ description "Our flow window upper limit is the limit the monitoring device signals above."
259
+ justification "Same quantity (R 144-1, 5.5.2) — 3.0 L/min, the manufacturer-specified upper limit."
260
+ }
261
+ t_min -> oiml-r144#/req/metrological/rated-conditions {
262
+ description "Our rated minimum temperature is the requirement's temperature tier lower bound."
263
+ justification "Same quantity (R 144-1, 4.5.1) — 5 °C, the default rated range lower limit."
264
+ }
265
+ t_max -> oiml-r144#/req/metrological/rated-conditions {
266
+ description "Our rated maximum temperature is the requirement's temperature tier upper bound."
267
+ justification "Same quantity (R 144-1, 4.5.1) — 40 °C, the default rated range upper limit."
268
+ }
269
+ rh_max -> oiml-r144#/req/metrological/rated-conditions {
270
+ description "Our rated maximum humidity is the requirement's humidity tier."
271
+ justification "Same quantity (R 144-1, 4.5.1) — 90 %RH at 25 °C, the default rated condition."
272
+ }
273
+ p_atm_min -> oiml-r144#/req/metrological/rated-conditions {
274
+ description "Our rated minimum atmospheric pressure is the requirement's pressure tier lower bound."
275
+ justification "Same quantity (R 144-1, 4.5.1) — 86 kPa, the default rated range lower limit."
276
+ }
277
+ p_atm_max -> oiml-r144#/req/metrological/rated-conditions {
278
+ description "Our rated maximum atmospheric pressure is the requirement's pressure tier upper bound."
279
+ justification "Same quantity (R 144-1, 4.5.1) — 106 kPa, the default rated range upper limit."
280
+ }
281
+ supply_voltage -> oiml-r144#/req/metrological/rated-conditions {
282
+ description "Our nominal supply voltage is the requirement's supply tier (deviation −15 %/+10 %)."
283
+ justification "Same quantity (R 144-1, 4.5.1) — 230 V nominal, marked on the instrument (R 144-1, 5.8)."
284
+ }
285
+ supply_frequency -> oiml-r144#/req/metrological/rated-conditions {
286
+ description "Our nominal supply frequency is the requirement's frequency tier (±2 %)."
287
+ justification "Same quantity (R 144-1, 4.5.1) — 50 Hz nominal, marked on the instrument (R 144-1, 5.8)."
288
+ }
289
+ # The twin projection pairs (TODO.v2/16): the BACKING components —
290
+ # the endpoint and the per-register backing attributes — never the
291
+ # serve bindings (derived from the Recommendation's twin.prl). Scope:
292
+ # this product's measurand set is {co, nox}; the Recommendation's
293
+ # indication_no / indication_no2 registers are outside it (the scope
294
+ # filter's convention) and are deliberately unpaired.
295
+ cgm_api -> oiml-r144#/twin/interface/endpoint/gas_analytical_api {
296
+ description "The CGM-200's twin endpoint IS the R 144 projection surface for this measurand set: the per-component indication queries (CO, NOx), the op-state watch, and the calibration/self-check invokes — the same access scopes, the same rest_json profile — derived from the Recommendation's twin.prl, never hand-mirrored."
297
+ justification "The endpoint is part of the type definition (doctrine ch. 14 §14.3): the product serves exactly what the Recommendation governs for the components it measures; the full twin's richer anatomy is filtered out above this surface."
298
+ coverage full
299
+ }
300
+ indication_co -> oiml-r144#/twin/interface/serve/indication_co {
301
+ description "The exhibited CO indication attribute backs the governed register sample.indication_co, served via get_indication_co with the Recommendation's 5 s freshness."
302
+ justification "Same quantity, same sample scope (R 144-1, 2.4/4.1): the product's CO indication, reduced to reference conditions, is the value the projection reads."
303
+ coverage full
304
+ }
305
+ indication_nox -> oiml-r144#/twin/interface/serve/indication_nox {
306
+ description "The exhibited NOx indication attribute backs the governed register sample.indication_nox, served via get_indication_nox with the Recommendation's 5 s freshness."
307
+ justification "Same quantity on the NOx sum channel (R 144-1, 1.1/2.4 NOTE), reduced to reference conditions — the value the projection reads."
308
+ coverage full
309
+ }
310
+ cgm_api -> oiml-r144#/twin/interface/serve/state {
311
+ description "The endpoint's watch_op_state subscribe operation serves the governed register sample.state — the subject's has.state cgm_operational machine — with the Recommendation's 1 s freshness."
312
+ justification "The operational state machine is the served aspect; at component granularity the endpoint is the serving surface (the serve binding itself is derived from the Recommendation's twin.prl — the mapping names its backing component)."
313
+ coverage full
314
+ }
315
+ cgm_api -> oiml-r144#/twin/interface/serve/environmental_context {
316
+ description "The endpoint's watch_op_state subscribe operation serves the governed register sample.environmental_context — the D 11 conditions the measurement is taken under — with the Recommendation's 1 s freshness."
317
+ justification "The environmental context rides the same watch as the operational state (the contract's watch_op_state serves both); at component granularity the endpoint is the serving surface."
318
+ coverage full
319
+ }
320
+ }
321
+ coverage {
322
+ # C23 tripwires over the alias forest: the projection is computed
323
+ # full FOR THIS PRODUCT'S MEASURAND SET — every governed register in
324
+ # scope backed (the endpoint + the four serves carry their own full
325
+ # lines). The roll-up alias carries NO line: the calculus computes
326
+ # partial over the whole governed interface because indication_no /
327
+ # indication_no2 are unpaired — they are outside this product's
328
+ # declared measurand set {co, nox} (the scope convention — the
329
+ # twin-projection gate's, not the kernel calculus's), so `full` on
330
+ # the roll-up would be authored coverage, not computed.
331
+ oiml-r144#/twin/interface/endpoint/gas_analytical_api full
332
+ oiml-r144#/twin/interface/serve/indication_co full
333
+ oiml-r144#/twin/interface/serve/indication_nox full
334
+ oiml-r144#/twin/interface/serve/state full
335
+ oiml-r144#/twin/interface/serve/environmental_context full
336
+ }
337
+ }
@@ -0,0 +1,39 @@
1
+ # ─────────────────────────────────────────────────────────────────────
2
+ # ACME CGM-200 — the product reference package for R 144 territory
3
+ # (TODO.v2/08's R 144 phase; TODO.roadmap/36; doctrine ch. 15, the model
4
+ # supply chain). The SECOND product reference package, after acme-lc500.
5
+ #
6
+ # The manufacturer side of the supply chain: ACME Analytics' CGM-200
7
+ # continuous gas monitor as a SUBJECT model (the oiml-rec methodology
8
+ # applied by the manufacturer — full IS/HAS/DOES anatomy), with every
9
+ # conformance-relevant aspect and promise mapped aspect-by-aspect to
10
+ # R 144 (model/r144-map.prl). The mapping is the manufacturer's
11
+ # conformance claim made computable: "our CO range is your 4.2 envelope;
12
+ # our drift characteristic answers your 4.8 requirement" (§15.2).
13
+ #
14
+ # The package is a REFERENCE model — it states what the product is and
15
+ # claims; it is not derived from the Recommendation and composes nothing
16
+ # from it (no uses edge): the two are related by mapping only.
17
+ #
18
+ # FICTIONAL DEMONSTRATION PRODUCT. ACME Analytics GmbH is a fictional
19
+ # demo manufacturer (the acme-lc500 demo spirit; the qms-ref/isms-ref
20
+ # fictional doctrine): no real company, no real certificate, no real
21
+ # type evaluation — a teaching product for the simulated-twin and
22
+ # twin-certification work. The twin-cert program's R 144 expansion
23
+ # (oiml-twin-cert maps_to oiml-r144, pinning this package) is a FUTURE
24
+ # leg — deliberately not done here.
25
+ # ─────────────────────────────────────────────────────────────────────
26
+ package {
27
+ id acme-cgm-200
28
+ kind product_reference
29
+ manufacturer "ACME Analytics GmbH (fictional demonstration manufacturer)"
30
+ product "CGM-200"
31
+ title "ACME CGM-200 continuous gas monitor — product reference model (FICTIONAL demo product)"
32
+ version "2026"
33
+ editions { 2026 }
34
+ status current
35
+ validity { from 2026-03-01 }
36
+ maps_to { oiml-r144 }
37
+ default_spelling eng-Latn
38
+ description "ACME Analytics' CGM-200 continuous gas monitor (CO + NOx; NDIR for CO, chemiluminescence for NOx; extractive sampling, semi-automatic adjustment) as a product reference model: the full subject anatomy, the cgm_api twin endpoint with per-component indication serves, and the aspect-by-aspect mapping to OIML R 144 — the manufacturer's conformance claim made computable (TODO.v2/08; TODO.roadmap/36, doctrine ch. 15). FICTIONAL demonstration product: ACME Analytics GmbH is a demo manufacturer; every certificate and report identifier is a demo value."
39
+ }
@@ -0,0 +1,125 @@
1
+ # The composite subject (TODO.v3/03): the CGM-200 SYSTEM's own twin
2
+ # interface. The served registers mirror the R 144 governed projection
3
+ # verbatim (the rec governs at every level of the graph); the sampling
4
+ # line's flow rides as composite richness (beyond the governed set — the
5
+ # projection is the minimum, never the ceiling). The DECOMPOSITION of
6
+ # every register to its component is the NORMATIVE composed_of
7
+ # construct below (TODO.integration/14 — the payload/composition.yaml
8
+ # sidecar is generated from it, never hand-edited).
9
+
10
+ attribute_definition indication_co {
11
+ symbol "x_CO"
12
+ name "CO indication (composite)"
13
+ definition "The served live CO volume-fraction reading of the CGM-200 system — supplied by the analyzer component's projection (the decomposition), reduced to the reference conditions (273.15 K, 101.325 kPa) — R 144-1, 4.1."
14
+ quantity_kind volume-fraction
15
+ unit "ppm"
16
+ value_type QuantityValue
17
+ origin measured
18
+ scope sample
19
+ category metrological
20
+ }
21
+
22
+ attribute_definition indication_nox {
23
+ symbol "x_NOx"
24
+ name "NOx indication (composite)"
25
+ definition "The served live NOx volume-fraction reading of the CGM-200 system (the sum channel, NO + NO2) — supplied by the analyzer component's projection, reduced to the reference conditions (273.15 K, 101.325 kPa) — R 144-1, 4.1 with the 1.1/2.4 NOTE."
26
+ quantity_kind volume-fraction
27
+ unit "ppm"
28
+ value_type QuantityValue
29
+ origin measured
30
+ scope sample
31
+ category metrological
32
+ }
33
+
34
+ state_machine cgm_system_operational {
35
+ kind operational
36
+ initial off
37
+ states { off warming_up ready measuring calibrating fault }
38
+ transition off -> warming_up action power_on
39
+ transition warming_up -> ready action warmed
40
+ transition ready -> measuring action start_measurement
41
+ transition measuring -> ready action stop_measurement
42
+ transition ready -> calibrating action start_adjustment
43
+ transition calibrating -> ready action adjustment_done
44
+ transition [off, warming_up, ready, measuring, calibrating] -> fault action fault_detected {
45
+ guard "a component serves fault — the composite's own state rule computes it (any_fault_else_analyzer, the decomposition) — R 144-1, 4.5.4 — declarative; not evaluated on fire"
46
+ }
47
+ transition fault -> off action power_off
48
+ }
49
+
50
+ behavior zero_adjustment {
51
+ kind procedural
52
+ stimulus invoke
53
+ response "Zero-setting against zero gas through the SYSTEM's checking facilities — the reading is brought to zero without affecting the span (R 144-1, 5.6.1 zero-setting adjustment facility); access-protected (R 144-1, 5.7.1)."
54
+ }
55
+
56
+ behavior span_adjustment {
57
+ kind procedural
58
+ stimulus invoke
59
+ response "Span adjustment against a certified calibration gas mixture (CGM) through the SYSTEM's checking facilities — the readings are brought into conformity with the certified volume fraction of the component (R 144-1, 5.6.1/5.6.2); access-protected (R 144-1, 5.7.1)."
60
+ }
61
+
62
+ behavior self_check {
63
+ kind procedural
64
+ stimulus invoke
65
+ response "The SYSTEM's checking facilities run: gas-flow supervision against the declared flow window (R 144-1, 5.5.2 — supplied by the sampling-line component), readiness and fault detection (R 144-1, 4.5.4) — a detected significant fault is annunciated: the composite state drives to fault and measurement is refused."
66
+ }
67
+
68
+ subject CGMSystem {
69
+ is {
70
+ metadata {
71
+ name "CGM-200 gas analytical system (composite twin)"
72
+ designation "CGM-200 extractive CO + NOx continuous gas monitor as a hierarchical twin — analyzer + sampling line components"
73
+ }
74
+ provenance {
75
+ manufacturer "ACME Analytics GmbH (fictional demonstration manufacturer)"
76
+ certificate "COMPOSITE — the twin certificate derives from the components' certified fidelities (the composition calculus; a declared partial state while any component is uncertified)"
77
+ }
78
+ endpoint cgm_system_api {
79
+ operation get_indication_co { kind query serves { indication_co } payload { quantity_kind volume-fraction unit ppm timestamp true } }
80
+ operation get_indication_nox { kind query serves { indication_nox } payload { quantity_kind volume-fraction unit ppm timestamp true } }
81
+ operation watch_op_state { kind subscribe serves { state environmental_context } payload { quantity_kind state unit dimensionless timestamp true } }
82
+ operation zero_calibration { kind invoke does { zero_adjustment } payload { quantity_kind adjustment_report unit dimensionless timestamp true } }
83
+ operation span_calibration { kind invoke does { span_adjustment } payload { quantity_kind adjustment_report unit dimensionless timestamp true } }
84
+ operation run_self_check { kind invoke does { self_check } payload { quantity_kind diagnostic_report unit dimensionless timestamp true } }
85
+ access { public { get_indication_co get_indication_nox } registered { watch_op_state } authority { zero_calibration span_calibration run_self_check } }
86
+ profile rest_json
87
+ }
88
+ composed_of {
89
+ component analyzer {
90
+ product acme-cgm-200@2026
91
+ endpoint cgm_api
92
+ serial "CGM200-DEMO-0001"
93
+ certificate null
94
+ }
95
+ component sample_line {
96
+ product acme-cgm-system/sample-line@2026
97
+ endpoint sample_line_api
98
+ serial "CGM200-SL-0001"
99
+ certificate null
100
+ }
101
+ decomposition {
102
+ sample.indication_co -> analyzer.indication_co
103
+ sample.indication_nox -> analyzer.indication_nox
104
+ sample.environmental_context -> analyzer.environmental_context
105
+ sample.test_context.flow -> sample_line.flow
106
+ sample.state -> rule any_fault_else_analyzer
107
+ }
108
+ revision 1
109
+ }
110
+ }
111
+ has {
112
+ attributes {}
113
+ dimensions { measurand_components in {co,nox} measuring_principle in {ir,chemiluminescence} sampling_approach in {extractive} }
114
+ state cgm_system_operational
115
+ serve sample.indication_co via get_indication_co { fresh_within 5s }
116
+ serve sample.indication_nox via get_indication_nox { fresh_within 5s }
117
+ serve sample.state via watch_op_state { fresh_within 1s }
118
+ serve sample.environmental_context via watch_op_state { fresh_within 1s }
119
+ }
120
+ does {
121
+ behavior zero_adjustment
122
+ behavior span_adjustment
123
+ behavior self_check
124
+ }
125
+ }
@@ -0,0 +1,75 @@
1
+ # ─────────────────────────────────────────────────────────────────────
2
+ # ACME CGM-200 SYSTEM → OIML R 144 — the composite's twin projection
3
+ # pairs (TODO.v3/03 + TODO.v2/16): the composite's endpoint backs the R 144
4
+ # governed twin interface FOR ITS MEASURAND SET {co, nox} (the scope
5
+ # convention); the register decompositions (which component supplies each
6
+ # register) live in payload/composition.yaml — the mapping names the
7
+ # BACKING surfaces only.
8
+ # ─────────────────────────────────────────────────────────────────────
9
+
10
+ process oiml-r144#/twin/interface {
11
+ name "alias: the R 144 governed twin interface — the composite's projection itself"
12
+ process oiml-r144#/twin/interface/endpoint/gas_analytical_api {
13
+ name "alias: the governed endpoint gas_analytical_api"
14
+ }
15
+ process oiml-r144#/twin/interface/serve/indication_co {
16
+ name "alias: governed register sample.indication_co (via get_indication_co, fresh_within 5s)"
17
+ }
18
+ process oiml-r144#/twin/interface/serve/indication_no {
19
+ name "alias: governed register sample.indication_no — outside the composite's measurand set"
20
+ }
21
+ process oiml-r144#/twin/interface/serve/indication_no2 {
22
+ name "alias: governed register sample.indication_no2 — outside the composite's measurand set"
23
+ }
24
+ process oiml-r144#/twin/interface/serve/indication_nox {
25
+ name "alias: governed register sample.indication_nox (via get_indication_nox, fresh_within 5s)"
26
+ }
27
+ process oiml-r144#/twin/interface/serve/state {
28
+ name "alias: governed register sample.state (via watch_op_state, fresh_within 1s)"
29
+ }
30
+ process oiml-r144#/twin/interface/serve/environmental_context {
31
+ name "alias: governed register sample.environmental_context (via watch_op_state, fresh_within 1s)"
32
+ }
33
+ }
34
+
35
+ map_profile oiml-r144 {
36
+ description "CGM-200 SYSTEM → R 144: the composite's twin projection — the cgm_system_api endpoint serves exactly the R 144 governed interface for the composite's measurand set {co, nox} (the analyzer component's projection underneath, per payload/composition.yaml); the calibration/self-check invokes are authority-scoped as the Recommendation demands."
37
+ mapping {
38
+ cgm_system_api -> oiml-r144#/twin/interface/endpoint/gas_analytical_api {
39
+ description "The composite's twin endpoint IS the R 144 projection surface for this measurand set: the per-component indication queries (CO, NOx), the op-state watch, and the calibration/self-check invokes — derived from the Recommendation's twin.prl, never hand-mirrored."
40
+ justification "The composite serves exactly what the Recommendation governs for the components it measures; the analyzer component's projection (the acme-cgm-200 twin) supplies the registers underneath (the decomposition declaration)."
41
+ coverage full
42
+ }
43
+ cgm_system_api -> oiml-r144#/twin/interface/serve/indication_co {
44
+ description "The composite's CO indication register backs the governed register sample.indication_co (supplied by the analyzer component's projection, payload/composition.yaml), served via get_indication_co with the Recommendation's 5 s freshness."
45
+ justification "Same quantity (R 144-1, 2.4/4.1), reduced to reference conditions — the value the projection reads."
46
+ coverage full
47
+ }
48
+ cgm_system_api -> oiml-r144#/twin/interface/serve/indication_nox {
49
+ description "The composite's NOx indication register backs the governed register sample.indication_nox (the analyzer's sum channel), served via get_indication_nox with the Recommendation's 5 s freshness."
50
+ justification "Same quantity (R 144-1, 1.1/2.4 NOTE), reduced to reference conditions."
51
+ coverage full
52
+ }
53
+ cgm_system_api -> oiml-r144#/twin/interface/serve/state {
54
+ description "The composite's operational state backs the governed register sample.state — composite-own, derived by the declared rule (fault when ANY component serves fault; otherwise the analyzer's operational state), served via watch_op_state with the Recommendation's 1 s freshness."
55
+ justification "The composition's state rule is declared in payload/composition.yaml; at component granularity the composite endpoint is the serving surface."
56
+ coverage full
57
+ }
58
+ cgm_system_api -> oiml-r144#/twin/interface/serve/environmental_context {
59
+ description "The composite's environmental context backs the governed register sample.environmental_context (the analyzer's D 11 conditions), served via watch_op_state with the Recommendation's 1 s freshness."
60
+ justification "The conditions the measurement is taken under, supplied by the analyzer's projection."
61
+ coverage full
62
+ }
63
+ }
64
+ coverage {
65
+ # C23 tripwires — full FOR THE COMPOSITE'S MEASURAND SET {co, nox};
66
+ # indication_no / indication_no2 carry no lines (outside the set —
67
+ # the scope convention), and the roll-up is honestly unasserted (the
68
+ # kernel calculus computes partial over the unpaired children).
69
+ oiml-r144#/twin/interface/endpoint/gas_analytical_api full
70
+ oiml-r144#/twin/interface/serve/indication_co full
71
+ oiml-r144#/twin/interface/serve/indication_nox full
72
+ oiml-r144#/twin/interface/serve/state full
73
+ oiml-r144#/twin/interface/serve/environmental_context full
74
+ }
75
+ }
@@ -0,0 +1,42 @@
1
+ # The sampling-line component (TODO.v3/03): the extractive sampling
2
+ # subsystem as its own (small) twin — the flow register it supplies to
3
+ # the composite, per the R 144 model's sampling attributes
4
+ # (gas_flow_rate_* with the declared window the self-check supervises,
5
+ # R 144-1, 5.5.2).
6
+
7
+ attribute_definition flow {
8
+ name "Sample-line gas flow rate"
9
+ definition "Gas flow rate through the sampling line in the measuring mode specified by the manufacturer (R 144-1, 5.1.6), checkable by the user via the gas flow meter; supervised against the declared window (R 144-1, 5.5.2) by the analyzer's checking facilities."
10
+ source { doc "urn:oiml:pub:r:144-1:2013" clause "5.1.6" }
11
+ quantity_kind volume-flow-rate
12
+ unit "L/min"
13
+ value_type QuantityValue
14
+ origin measured
15
+ scope sample
16
+ category metrological
17
+ is_dimension false
18
+ }
19
+
20
+ subject SampleLine {
21
+ is {
22
+ metadata {
23
+ name "CGM-200 sampling line (component twin)"
24
+ designation "Extractive sampling probe + gas handling line of the CGM-200 system (R 144-1, 2.1)"
25
+ }
26
+ provenance {
27
+ manufacturer "ACME Analytics GmbH (fictional demonstration manufacturer)"
28
+ certificate "COMPONENT — certified through the composite's basis (its own certificate reference when the program covers sampling components)"
29
+ }
30
+ endpoint sample_line_api {
31
+ operation get_sample_flow { kind query serves { flow } payload { quantity_kind volume-flow-rate unit "L/min" timestamp true } }
32
+ access { public { get_sample_flow } }
33
+ profile rest_json
34
+ }
35
+ }
36
+ has {
37
+ attributes {
38
+ flow : volume-flow-rate test_dependent
39
+ }
40
+ serve sample.test_context.flow via get_sample_flow { fresh_within 5s }
41
+ }
42
+ }