@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,214 @@
1
+ class Marking#data {
2
+ store { markings }
3
+ description { "One marking applied to the instrument under evaluation (TODO.roadmap/55 — BUG.R60-SSOT gap 5: the Module-B documentary objects get a typed entity home in Core; R 60-1:2021, 6.2 'Inscriptions and presentation of load cell information'). The instance carries its declared entries (the 6.2.1 mandatory set: manufacturer's name or trade mark, type designation or load cell model, serial number, maximum capacity E_max, year of production, type approval mark where applicable; the 6.2.4 specific markings: accuracy class designation, load-type designation), where it sits on the instrument, and its lifecycle state (the Marking state machine, evaluation/state-machines.yaml: DRAFT → AFFIXED → INSPECTED → SUPERSEDED — a new data plate supersedes the affixed one, never edits it: 6.2.1 requires markings indelible and, as sticker/data plate, impossible to remove without damaging)." }
4
+ indexes { sample_id model_id standard_id status }
5
+ id: string {
6
+ modality SHALL
7
+ }
8
+ standard_id: string {
9
+ modality SHALL
10
+ }
11
+ sample_id: reference(MeasuringInstrumentSample) [0..1] {
12
+ modality MAY
13
+ definition "The sample carrying this marking; absent on a type-level (model) marking"
14
+ on_delete restrict
15
+ required false
16
+ }
17
+ model_id: reference(MeasuringInstrumentModel) [0..1] {
18
+ modality MAY
19
+ definition "The model the marking belongs to (denormalized from sample_id.model_id when the sample is set)"
20
+ on_delete restrict
21
+ required false
22
+ }
23
+ kind: enum {
24
+ modality SHALL
25
+ definition "mandatory = the R 60-1, 6.2.1 set; specific = the 6.2.4 designations (accuracy class, type of load applied)"
26
+ enum_values { mandatory specific }
27
+ }
28
+ items: string[] [0..*] {
29
+ modality SHALL
30
+ definition "The marking entries as text (e.g. 'E_max = 500 kg') — the record carries the strings, never a shape registry"
31
+ }
32
+ location: string [0..1] {
33
+ modality MAY
34
+ definition "Where on the instrument the marking sits (data plate, sticker — R 60-1, 6.2.1: impossible to remove without damaging)"
35
+ }
36
+ status: enum {
37
+ modality SHALL
38
+ definition "Lifecycle per evaluation/state-machines.yaml Marking machine (DRAFT → AFFIXED → INSPECTED → SUPERSEDED)"
39
+ enum_values { DRAFT AFFIXED INSPECTED SUPERSEDED }
40
+ }
41
+ affixed_by: string [0..1] {
42
+ modality MAY
43
+ definition "Who affixed the marking (manufacturer or, on re-plating, the authorized service)"
44
+ }
45
+ affixed_at: datetime [0..1] {
46
+ modality MAY
47
+ }
48
+ inspected_by: string [0..1] {
49
+ modality MAY
50
+ definition "The examiner who inspected the affixed marking (the marking examination of the type evaluation programme)"
51
+ }
52
+ inspected_at: datetime [0..1] {
53
+ modality MAY
54
+ }
55
+ superseded_by: reference(Marking) [0..1] {
56
+ modality MAY
57
+ definition "The marking that replaces this one — the chain (same discipline as VerificationRecord.previous_verification_id)"
58
+ on_delete nullify
59
+ required false
60
+ }
61
+ clause: string [0..1] {
62
+ modality MAY
63
+ definition "Clause the marking discharges (e.g. R 60-1, 6.2.2)"
64
+ }
65
+ created: datetime {
66
+ modality SHALL
67
+ }
68
+ modified: datetime {
69
+ modality SHALL
70
+ }
71
+ }
72
+
73
+ class Sealing#data {
74
+ store { sealings }
75
+ description { "One sealing record on the instrument (TODO.roadmap/55 — BUG.R60-SSOT gap 5; R 60-1:2021, 6.1: 'Provision shall be made for appropriate sealing by mechanical, electronic and/or cryptographic means, making any change that affects the metrological integrity of the device impossible or evident'). Sealing existed as TERMINOLOGY only (verification.prl SealStatus.means — 'Sealing means…') — this is the typed documentary object: what the seal protects, the sealing means, where it sits, and its lifecycle state (the Sealing state machine: DRAFT → AFFIXED → INSPECTED → SUPERSEDED — a re-seal after authorized intervention supersedes the prior seal record)." }
76
+ indexes { sample_id model_id standard_id status }
77
+ id: string {
78
+ modality SHALL
79
+ }
80
+ standard_id: string {
81
+ modality SHALL
82
+ }
83
+ sample_id: reference(MeasuringInstrumentSample) [0..1] {
84
+ modality MAY
85
+ definition "The sample carrying this seal; absent on a type-level sealing declaration"
86
+ on_delete restrict
87
+ required false
88
+ }
89
+ model_id: reference(MeasuringInstrumentModel) [0..1] {
90
+ modality MAY
91
+ definition "The model the sealing belongs to (denormalized from sample_id.model_id when the sample is set)"
92
+ on_delete restrict
93
+ required false
94
+ }
95
+ protects: string {
96
+ modality SHALL
97
+ definition "What the seal protects — the metrological integrity of the device (software/firmware per R 60-1, 6.1; adjustment means; metrology-relevant parts)"
98
+ }
99
+ means: string [0..1] {
100
+ modality MAY
101
+ definition "Sealing means — mechanical, electronic and/or cryptographic (R 60-1, 6.1), giving clear evidence of tampering"
102
+ }
103
+ location: string [0..1] {
104
+ modality MAY
105
+ definition "Where on the instrument the seal sits"
106
+ }
107
+ status: enum {
108
+ modality SHALL
109
+ definition "Lifecycle per evaluation/state-machines.yaml Sealing machine (DRAFT → AFFIXED → INSPECTED → SUPERSEDED)"
110
+ enum_values { DRAFT AFFIXED INSPECTED SUPERSEDED }
111
+ }
112
+ affixed_by: string [0..1] {
113
+ modality MAY
114
+ }
115
+ affixed_at: datetime [0..1] {
116
+ modality MAY
117
+ }
118
+ inspected_by: string [0..1] {
119
+ modality MAY
120
+ definition "The examiner who inspected the seal's integrity"
121
+ }
122
+ inspected_at: datetime [0..1] {
123
+ modality MAY
124
+ }
125
+ superseded_by: reference(Sealing) [0..1] {
126
+ modality MAY
127
+ definition "The sealing record that replaces this one after a (re-)seal — the chain"
128
+ on_delete nullify
129
+ required false
130
+ }
131
+ clause: string [0..1] {
132
+ modality MAY
133
+ definition "Clause the seal discharges (e.g. R 60-1, 6.1)"
134
+ }
135
+ created: datetime {
136
+ modality SHALL
137
+ }
138
+ modified: datetime {
139
+ modality SHALL
140
+ }
141
+ }
142
+
143
+ class CalibrationRecord#data {
144
+ store { calibrationRecords }
145
+ description { "One calibration record for a piece of test equipment used in the type evaluation (TODO.roadmap/55 — BUG.R60-SSOT gap 5; ISO/IEC 17025:2017, 6.4.6/6.5 — equipment is calibrated where the accuracy affects the validity of the reported results, establishing their metrological traceability; the R 60-2 test equipment, e.g. the force machine and the R 60-3, 4.10.3 temperature chamber). The record links the equipment to its calibration certificate, the calibrating body, and the validity window; the lifecycle (the CalibrationRecord state machine: DRAFT → AFFIXED → INSPECTED → SUPERSEDED) chains re-calibrations — the current record supersedes the expired one, never edits it." }
146
+ indexes { equipment_id laboratory_id status }
147
+ id: string {
148
+ modality SHALL
149
+ }
150
+ standard_id: string {
151
+ modality SHALL
152
+ }
153
+ equipment_id: string {
154
+ modality SHALL
155
+ definition "Lab-local equipment identifier this record calibrates (the VerificationEquipment/TestEquipment id — traceability)"
156
+ }
157
+ laboratory_id: reference(TestLaboratory) [0..1] {
158
+ modality MAY
159
+ definition "The body that performed the calibration"
160
+ on_delete restrict
161
+ required false
162
+ }
163
+ certificate: string {
164
+ modality SHALL
165
+ definition "Calibration certificate reference (ISO/IEC 17025, 6.4.6)"
166
+ }
167
+ calibrated_at: date {
168
+ modality SHALL
169
+ }
170
+ valid_until: date [0..1] {
171
+ modality MAY
172
+ definition "End of the calibration validity window — re-calibration due (supersession trigger)"
173
+ }
174
+ uncertainty: string [0..1] {
175
+ modality MAY
176
+ definition "The calibration's declared measurement uncertainty (traceability statement, ISO/IEC 17025, 6.5)"
177
+ }
178
+ status: enum {
179
+ modality SHALL
180
+ definition "Lifecycle per evaluation/state-machines.yaml CalibrationRecord machine (DRAFT → AFFIXED → INSPECTED → SUPERSEDED)"
181
+ enum_values { DRAFT AFFIXED INSPECTED SUPERSEDED }
182
+ }
183
+ affixed_by: string [0..1] {
184
+ modality MAY
185
+ definition "Who attached the record to the equipment file"
186
+ }
187
+ affixed_at: datetime [0..1] {
188
+ modality MAY
189
+ }
190
+ inspected_by: string [0..1] {
191
+ modality MAY
192
+ definition "The assessor who inspected the record (laboratory assessment / test-witnessing)"
193
+ }
194
+ inspected_at: datetime [0..1] {
195
+ modality MAY
196
+ }
197
+ superseded_by: reference(CalibrationRecord) [0..1] {
198
+ modality MAY
199
+ definition "The record that replaces this one on re-calibration — the chain"
200
+ on_delete nullify
201
+ required false
202
+ }
203
+ clause: string [0..1] {
204
+ modality MAY
205
+ definition "Clause the record discharges (e.g. ISO/IEC 17025:2017, 6.4.6)"
206
+ }
207
+ created: datetime {
208
+ modality SHALL
209
+ }
210
+ modified: datetime {
211
+ modality SHALL
212
+ }
213
+ }
214
+
@@ -0,0 +1,141 @@
1
+ class OperatedScheme#data {
2
+ store { operatedSchemes }
3
+ description { "One certification scheme THIS instance operates (TODO.adoption/05, the multi-scheme reality: a national metrology institute is simultaneously an OIML-CS Issuing Authority and its national approval scheme's body; the established institute practice: one conformity-evaluation body running the OIML-CS, the national ordinances, the regional assessments and more, each with its own marking, certificate types and numbering formats). The record declares the scheme's identity (name, conformity marking, legal-basis citations), the certificate numbering format (a pattern template; the calculus in browser/src/data/operated-schemes.ts validates and renders it), the certificate types it issues, the register access tier (public / brief_public / authority_only, the publication practice of the body's own register), and the validity rule. The OIML-CS ships as the BUILT-IN record (built_in: true): it is declared by the calculus, never persisted in this store, and it is the only record whose numbering is the coded Annex B generator (certificate.service.ts) rather than a template. The honest boundary: a certificate issued under any other scheme is NOT an OIML-CS certificate (no Annex B number, no BIML registration, no OIML marking, no OIML-CS Declaration gate), and the OIML-CS scheme's own discipline is untouched by any record here." }
4
+ indexes { status }
5
+ id: string {
6
+ modality SHALL
7
+ definition "The scheme slug (lowercase-hyphenated, e.g. ex-nta). The built-in OIML-CS record's id is the fixed token oiml-cs; an instance record may never take it"
8
+ }
9
+ name: string {
10
+ modality SHALL
11
+ definition "The scheme's full name as the body styles it (e.g. the national type approval scheme's title)"
12
+ }
13
+ short_name: string [0..1] {
14
+ modality MAY
15
+ definition "The badge label on certificate rows and the register filter (defaults to the name)"
16
+ }
17
+ marking: string {
18
+ modality SHALL
19
+ definition "The conformity marking the scheme authorizes, as its short label: OIML, CE, CH, UKCA, a national mark, or 'none' when the scheme affixes no mark (the guide practice: each scheme has its own marking)"
20
+ }
21
+ legal_basis: string[] [0..*] {
22
+ modality MAY
23
+ definition "The legal-basis citations the scheme operates under (the ordinance/directive references, one per entry, e.g. the national measuring-instruments ordinance with its article); shown on the registry and the certificate surface as the scheme's provenance"
24
+ }
25
+ numbering_pattern: string {
26
+ modality SHALL
27
+ definition "The certificate numbering template the scheme mints with. Tokens: {CAT} the instrument-category code (resolved through category_codes, else the category id), {YYYY} / {YY} the issue year, {SEQ:n} the per-scheme sequence zero-padded to n (counted per year, and per category when the pattern carries {CAT}, the reference-within-category practice), {REV} / {REV:n} the revision (rendered from the first revision on; an initial issue renders REV as its zero value). The built-in oiml-cs record carries the Annex B shape informatively (R{REC}/{EDITION}-{A|B}-{IA}-{YY}.{NN}): its numbering is the coded generator, never this template"
28
+ }
29
+ category_codes: object [0..1] {
30
+ modality MAY
31
+ definition "The scheme's own category vocabulary for the {CAT} token: a map from the platform's instrument-category id (e.g. load-cells) to the scheme's code (e.g. its ordinance's instrument class). A category with no entry renders as the uppercased category id"
32
+ }
33
+ certificate_types: string[] [1..*] {
34
+ modality SHALL
35
+ definition "The certificate types the scheme issues, from the calculus vocabulary (CERTIFICATE_TYPE_IDS: type_approval, type_evaluation, evaluation_unit, qms, product_verification, test_report, oiml_certificate, other). Declarative: the register and the registry page show them; the platform's workflow issues the type certificate"
36
+ }
37
+ access_tier: enum {
38
+ modality SHALL
39
+ definition "The body's register publication rule for this scheme's certificates (the guide's §4.2.2 practice): public lists with the full public view for everyone (the OIML-CS built-in's tier, B 18:2025 §15.8); brief_public shows the public a brief description while the full certificate view is reserved to registered market-surveillance authority accounts and the register's operators; authority_only is not listed publicly at all and is available to the authority accounts (the product-verification practice: on request by the authorities)"
40
+ enum_values { public brief_public authority_only }
41
+ }
42
+ validity_years: integer [0..1] {
43
+ modality MAY
44
+ definition "The type certificate's validity period in years when the scheme fixes one; absent means no fixed validity period (the OIML-CS practice: an OIML certificate does not have a period of validity). The issuance form prefills the expiry from it"
45
+ }
46
+ validity_note: string [0..1] {
47
+ modality MAY
48
+ definition "The validity rule as the scheme states it (e.g. per the ordinance), shown beside the years"
49
+ }
50
+ built_in: boolean {
51
+ modality SHALL
52
+ definition "True only on the platform-shipped OIML-CS record (declared by the calculus, never persisted). Instance records are always false: the built-in is immutable and undeletable, an instance record is managed by the instance's administrators and never deleted while certificates reference it (retire it instead)"
53
+ }
54
+ status: enum {
55
+ modality SHALL
56
+ definition "active: the scheme issues. retired: the scheme issues nothing new; its certificates stay on the register under their own numbering and tiers (a withdrawn national scheme's register entries remain the record)"
57
+ enum_values { active retired }
58
+ }
59
+ description: text [0..1] {
60
+ modality MAY
61
+ definition "What the scheme is and who it serves, in the body's own words (the registry page's explanatory text)"
62
+ }
63
+ created: datetime {
64
+ modality SHALL
65
+ }
66
+ modified: datetime {
67
+ modality SHALL
68
+ }
69
+ }
70
+
71
+ class SchemeNumbering#data {
72
+ helper { true }
73
+ sequence: integer {
74
+ modality SHALL
75
+ definition "The per-scheme sequence the number was minted with (counted per issue year, and per category when the scheme's pattern carries {CAT})"
76
+ }
77
+ issue_year: integer {
78
+ modality SHALL
79
+ definition "The year of initial certification the number carries; a revision keeps it (the number's year never moves)"
80
+ }
81
+ category_code: string [0..1] {
82
+ modality MAY
83
+ definition "The resolved {CAT} token value (the scheme's own category code) when the pattern carries the token"
84
+ }
85
+ }
86
+
87
+ class DocumentListEntry#data {
88
+ helper { true }
89
+ title: string {
90
+ modality SHALL
91
+ definition "The document's title as the list names it (the technical document, test report, or firmware version the certificate rests on)"
92
+ }
93
+ document: reference(DocumentRef) [0..1] {
94
+ modality MAY
95
+ definition "The stored document (TODO.adoption/03 blob slot); absent in the file-name-only posture, the entry then names the document without holding its bytes"
96
+ on_delete nullify
97
+ }
98
+ note: string [0..1] {
99
+ modality MAY
100
+ definition "The entry's annotation (a version, a page count, a supersession note)"
101
+ }
102
+ }
103
+
104
+ class CertificateDocumentList#data {
105
+ store { certificateDocumentLists }
106
+ description { "The certificate's companion document list (TODO.adoption/05, the Doc_List_TEC / LERD practice of the conformity body's guide §4.1.8): the list of the underlying test reports, technical documents and firmware versions the certificate rests on. A document list may be REVISED WITHOUT REVISING THE CERTIFICATE: a technical change that does not impact the certificate's content revises the list alone (its own revision counter), so the certificate's revision log and (for the OIML-CS) the registered copy's digest stay untouched. One list per certificate, revisioned in place: the record carries the current revision and its note; the revision history lives in the audit journal." }
107
+ indexes { certificate_id }
108
+ id: string {
109
+ modality SHALL
110
+ }
111
+ certificate_id: reference(Certificate) {
112
+ modality SHALL
113
+ definition "The certificate this list accompanies"
114
+ on_delete cascade
115
+ }
116
+ revision: integer {
117
+ modality SHALL
118
+ definition "The list's OWN revision counter (0 at creation), independent of the certificate's revisions: revising the list never revises the certificate"
119
+ }
120
+ entries: reference(DocumentListEntry) [0..*] {
121
+ modality MAY
122
+ definition "The listed documents"
123
+ on_delete nullify
124
+ required false
125
+ }
126
+ revision_note: string [0..1] {
127
+ modality MAY
128
+ definition "What changed in this revision of the list (the technical change that did not touch the certificate)"
129
+ }
130
+ revised_by: string [0..1] {
131
+ modality MAY
132
+ definition "The account name of who revised the list (provenance)"
133
+ }
134
+ created: datetime {
135
+ modality SHALL
136
+ }
137
+ modified: datetime {
138
+ modality SHALL
139
+ }
140
+ }
141
+