@memoarchitect/ontology 0.7.0 → 0.8.24

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 (270) hide show
  1. package/README.md +4 -2
  2. package/examples/connected-patient-monitor/memo.package.yaml +3 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -1
  4. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  5. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  6. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +8 -6
  7. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  8. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  9. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +6 -6
  10. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  11. package/examples/gpca-pump/memo.package.yaml +3 -0
  12. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
  13. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
  14. package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
  15. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
  16. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
  17. package/examples/gpca-pump/model/catalog/gpca_context.sysml +14 -3
  18. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +8 -5
  19. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
  20. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +97 -103
  21. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
  22. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
  23. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
  24. package/examples/gpca-pump/model/catalog/gpca_system.sysml +17 -17
  25. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -334
  26. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
  27. package/examples/gpca-pump/model/catalog/project.sysml +5 -0
  28. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +2 -4
  29. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
  30. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
  31. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
  32. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
  33. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
  34. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
  35. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -7
  36. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
  37. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
  38. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +2 -4
  39. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
  40. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
  41. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +2 -4
  42. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
  43. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -8
  44. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
  45. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -6
  47. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
  48. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
  49. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +2 -5
  50. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
  51. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +5 -6
  52. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -6
  53. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
  54. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  55. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -1
  56. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  57. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  58. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +4 -3
  59. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  60. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  61. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
  62. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  63. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  64. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +133 -128
  65. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
  66. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
  67. package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
  68. package/examples/reusable-instrument/memo.package.yaml +3 -0
  69. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +16 -23
  70. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  71. package/examples/ros-mobile-robot/README.md +40 -0
  72. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  73. package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
  74. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
  75. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
  76. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +12 -0
  77. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  78. package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
  79. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +12 -6
  80. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  81. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  82. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +58 -75
  83. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  84. package/examples/surgical-robot/memo.package.yaml +3 -0
  85. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
  86. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  87. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  88. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -18
  89. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -11
  90. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +43 -68
  91. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +57 -68
  92. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +40 -70
  93. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +4 -8
  94. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -20
  95. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +52 -84
  96. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +22 -33
  97. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +13 -10
  98. package/examples/temperature-alarm/memo.package.yaml +3 -0
  99. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -25
  100. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  101. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  102. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +57 -33
  103. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
  104. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
  105. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
  106. package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
  107. package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
  108. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +2 -3
  109. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
  110. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
  111. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
  112. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
  113. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
  114. package/extensions/LICENSES/MIT.txt +19 -0
  115. package/extensions/README.md +94 -0
  116. package/extensions/aadl/memo.package.yaml +18 -0
  117. package/extensions/aadl/src/aadl_extension.sysml +6 -0
  118. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
  119. package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
  120. package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
  121. package/extensions/cloud/memo.package.yaml +18 -0
  122. package/extensions/cloud/src/cloud_extension.sysml +44 -0
  123. package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
  124. package/extensions/container/memo.package.yaml +18 -0
  125. package/extensions/container/src/container_extension.sysml +37 -0
  126. package/extensions/container/src/methodology/container_methodology.sysml +17 -0
  127. package/extensions/messaging/memo.package.yaml +18 -0
  128. package/extensions/messaging/src/messaging_extension.sysml +64 -0
  129. package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
  130. package/extensions/ros/memo.package.yaml +18 -0
  131. package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
  132. package/extensions/ros/src/ros_extension.sysml +200 -0
  133. package/extensions/template/src/extension.sysml +37 -0
  134. package/memo.manifest.yaml +13 -2
  135. package/methodologies/default/memo.package.yaml +1 -1
  136. package/methodologies/gpca/memo.package.yaml +1 -1
  137. package/ontology/memo.package.yaml +1 -1
  138. package/package.json +5 -3
  139. package/profile/memo.package.yaml +1 -1
  140. package/src/architecture/decisions/memo_decisions.sysml +23 -2
  141. package/src/architecture/functional/behavior/memo_behavior.sysml +51 -23
  142. package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
  143. package/src/architecture/functional/functions/memo_functions.sysml +93 -36
  144. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
  145. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
  146. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +40 -13
  147. package/src/architecture/implementation/ui/memo_ui.sysml +83 -43
  148. package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -12
  149. package/src/architecture/logical/structure/memo_logical_structure.sysml +26 -25
  150. package/src/architecture/operational/activities/memo_activities.sysml +27 -29
  151. package/src/architecture/operational/context/actors/memo_actors.sysml +8 -10
  152. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +16 -33
  153. package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -17
  154. package/src/architecture/operational/scenarios/memo_scenarios.sysml +36 -84
  155. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  156. package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -27
  157. package/src/architecture/operational/workflows/memo_workflows.sysml +45 -28
  158. package/src/architecture/realization/deployment/memo_deployment.sysml +115 -20
  159. package/src/architecture/realization/physical/memo_physical_architecture.sysml +29 -4
  160. package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
  161. package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
  162. package/src/artifacts/standards/cfr_21_820.sysml +116 -0
  163. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
  164. package/src/artifacts/standards/iec_60601_1.sysml +149 -0
  165. package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
  166. package/src/artifacts/standards/iec_60812.sysml +51 -0
  167. package/src/artifacts/standards/iec_62304.sysml +210 -0
  168. package/src/artifacts/standards/iec_62366_1.sysml +113 -0
  169. package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
  170. package/src/artifacts/standards/iso_13485.sysml +113 -0
  171. package/src/artifacts/standards/iso_14971.sysml +94 -0
  172. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
  173. package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
  174. package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
  175. package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
  176. package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
  177. package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
  178. package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
  179. package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
  180. package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
  181. package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
  182. package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
  183. package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
  184. package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
  185. package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
  186. package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
  187. package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
  188. package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
  189. package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
  190. package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
  191. package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
  192. package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
  193. package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
  194. package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
  195. package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
  196. package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
  197. package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
  198. package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
  199. package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
  200. package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
  201. package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
  202. package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
  203. package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
  204. package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
  205. package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
  206. package/src/artifacts/templates/dhf/system/sad.md +173 -0
  207. package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
  208. package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
  209. package/src/artifacts/templates/dhf/system/syrs.md +128 -0
  210. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +40 -21
  211. package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
  212. package/src/assurance/requirements/memo_requirements.sysml +7 -20
  213. package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
  214. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
  215. package/src/assurance/safety_risk/memo_risk.sysml +90 -7
  216. package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
  217. package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
  218. package/src/core/annotations/memo_annotations.sysml +25 -6
  219. package/src/core/common/memo_common.sysml +130 -21
  220. package/src/core/consistency_rules/consistency_rules.sysml +1 -1
  221. package/src/core/dimensions/dimensions.sysml +12 -0
  222. package/src/core/enumerations/memo_enumerations.sysml +60 -14
  223. package/src/core/relationships/memo_relationships.sysml +199 -196
  224. package/src/memo_namespaces.sysml +30 -0
  225. package/src/methodology/core/memo_core.sysml +24 -0
  226. package/src/methodology/profiles/memo_profiles.sysml +1 -1
  227. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  228. package/src/rules/closure/closure_rules.sysml +20 -20
  229. package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
  230. package/src/rules/ontology/ontology_invariants.sysml +223 -11
  231. package/src/rules/quantitative/quantitative_rules.sysml +2 -2
  232. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +30 -30
  233. package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
  234. package/src/viewpoints/context/context_viewpoint.sysml +2 -3
  235. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
  236. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
  237. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -3
  238. package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
  239. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -3
  240. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -3
  241. package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
  242. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
  243. package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
  244. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
  245. package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
  246. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
  247. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
  248. package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
  249. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
  250. package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
  251. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
  252. package/src/viewpoints/software/software_viewpoint.sysml +1 -2
  253. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
  254. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
  255. package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
  256. package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
  257. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -3
  258. package/templates/connected-device/memo.package.yaml +2 -0
  259. package/templates/default/memo.package.yaml +2 -0
  260. package/templates/infusion-pump/memo.package.yaml +2 -0
  261. package/templates/monitoring-device/memo.package.yaml +2 -0
  262. package/templates/samd/memo.package.yaml +2 -0
  263. package/examples/extensions/README.md +0 -16
  264. package/examples/extensions/template/src/extension.sysml +0 -15
  265. package/examples/gpca-pump/gpca-pump.kpar +0 -0
  266. /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
  267. /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
  268. /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
  269. /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
  270. /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
package/README.md CHANGED
@@ -23,7 +23,7 @@ pin an exact release; the package has no repository or runtime dependency on Mem
23
23
  Tools or Memo Architect.
24
24
 
25
25
  ```bash
26
- pnpm add @memoarchitect/ontology@0.7.0
26
+ pnpm add @memoarchitect/ontology@0.8.24
27
27
  ```
28
28
 
29
29
  > **Pre-1.0 notice:** ontology names, relationships, and package layout may
@@ -82,7 +82,9 @@ src/ all reusable .sysml content (namespace = directory)
82
82
  rules/ closure/ coverage/ crosslayer/ lifecycle/ quantitative/ (native constraint defs)
83
83
  artifacts/ artifact kinds (memo::artifacts)
84
84
  methodology/ default methodology
85
- examples/extensions/ optional domain modules selected by methodology
85
+ extensions/ reusable ontology packages that specialize the base
86
+ (aadl/ clinical/ cloud/ container/ messaging/ ros/ template/),
87
+ selected by a methodology or a project binding
86
88
  ```
87
89
 
88
90
  ## Build / verify
@@ -0,0 +1,3 @@
1
+ name: connected-patient-monitor
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -61,7 +61,7 @@ package memo_examples_connected_patient_monitor {
61
61
  attribute :>> securityCriticality = CriticalityKind::high;
62
62
  attribute :>> patientContactInterface = false;
63
63
  }
64
- item tbHospitalEdge : TrustBoundary {
64
+ part tbHospitalEdge : TrustBoundary {
65
65
  attribute :>> id = "CPM-TB-001"; attribute :>> name = "DeviceLanToHospitalNetwork";
66
66
  }
67
67
  connection : CrossesTrustBoundary connect boundary ::> tbHospitalEdge to crossingItem ::> ifHl7Feed {
@@ -2,5 +2,5 @@ package memo_examples_connected_patient_monitor_viewpoints_unassigned_views_conn
2
2
  private import memo_examples_connected_patient_monitor::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
5
- view connectedPatientMonitorOverview : MemoDiagramView { expose memo_examples_connected_patient_monitor::*; attribute depth = 2; attribute :>> title = "Connected Patient Monitor Overview"; attribute :>> viewKind = DiagramViewKind::interconnection; attribute :>> diagramType = "ibd"; }
5
+ view connectedPatientMonitorOverview : MemoDiagramView { expose memo_examples_connected_patient_monitor::*; attribute depth = 2; attribute :>> viewKind = DiagramViewKind::interconnection; attribute :>> diagramType = "ibd"; }
6
6
  }
@@ -0,0 +1,3 @@
1
+ name: embedded-infusion-pump
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -1,9 +1,10 @@
1
1
  // Focused example: embedded programmable device — the three software views
2
2
  // (module / runtime / deployment) on a minimal infusion pump.
3
- // SoftwareItem buildsInto DeploymentUnit deploysTo ProcessingNode;
3
+ // SoftwareElement buildsInto SoftwareDeploymentUnit deploysTo ProcessingNode;
4
4
  // SoftwareComponent hostedBy ProcessingNode with scheduling properties.
5
5
  package memo_examples_embedded_infusion_pump {
6
6
  private import ScalarValues::*;
7
+ private import ModelingMetadata::*;
7
8
 
8
9
  private import memo_core_enumerations::*;
9
10
  private import memo_core_relationships::*;
@@ -25,7 +26,7 @@ package memo_examples_embedded_infusion_pump {
25
26
  attribute :>> implementationLanguage = "C";
26
27
  attribute :>> safetyClass = SafetyClassKind::C;
27
28
  }
28
- connection : Realizes connect realizing ::> swMotorDriver to realized ::> swInfusionControl;
29
+ #refinement dependency swMotorDriver to swInfusionControl;
29
30
 
30
31
  // Runtime view.
31
32
  part rtControlLoop : SoftwareComponent {
@@ -34,14 +35,15 @@ package memo_examples_embedded_infusion_pump {
34
35
  attribute :>> periodMs = 10.0;
35
36
  attribute :>> deadlineMs = 10.0;
36
37
  attribute :>> wcetMs = 2.5;
38
+ attribute :>> memoryBudget = 96.0;
37
39
  attribute :>> schedulingPolicy = SchedulingPolicyKind::rateMonotonic;
38
40
  attribute :>> restartPolicy = "watchdog reset to safe state (pump stopped)";
39
41
  attribute :>> faultContainment = "MPU-protected region; safe-state on overrun";
40
42
  }
41
- connection : Realizes connect realizing ::> rtControlLoop to realized ::> swInfusionControl;
43
+ #refinement dependency rtControlLoop to swInfusionControl;
42
44
 
43
45
  // Deployment view.
44
- part duControlImage : DeploymentUnit {
46
+ part duControlImage : SoftwareDeploymentUnit {
45
47
  attribute :>> id = "EIP-DU-001"; attribute :>> name = "ControlFirmwareImage";
46
48
  attribute :>> unitKind = "signed firmware image";
47
49
  attribute :>> version = "3.1.0";
@@ -57,8 +59,8 @@ package memo_examples_embedded_infusion_pump {
57
59
  attribute :>> id = "EIP-RTE-001"; attribute :>> name = "StaticRTOS";
58
60
  attribute :>> osOrRtos = "static-priority RTOS, no dynamic allocation";
59
61
  }
60
- connection : BuildsInto connect module ::> swInfusionControl to deploymentUnit ::> duControlImage;
61
- connection : DeploysTo connect deploymentUnit ::> duControlImage to node ::> mcuSafety {
62
+ allocation swInfusionControlBuild : BuildsInto allocate swInfusionControl to duControlImage;
63
+ allocation duControlImageDeployment : DeploysTo allocate duControlImage to mcuSafety {
62
64
  attribute :>> deploymentKind = DeploymentKind::embedded;
63
65
  }
64
66
  connection : HostedBy connect hostAssembly ::> mcuSafety to processingNode ::> rtControlLoop;
@@ -2,5 +2,5 @@ package memo_examples_embedded_infusion_pump_viewpoints_unassigned_views_embedde
2
2
  private import memo_examples_embedded_infusion_pump::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
5
- view embeddedInfusionPumpOverview : MemoDiagramView { expose memo_examples_embedded_infusion_pump::*; attribute depth = 2; attribute :>> title = "Embedded Infusion Pump Overview"; attribute :>> viewKind = DiagramViewKind::general; attribute :>> diagramType = "bdd"; }
5
+ view embeddedInfusionPumpOverview : MemoDiagramView { expose memo_examples_embedded_infusion_pump::*; attribute depth = 2; attribute :>> viewKind = DiagramViewKind::general; attribute :>> diagramType = "bdd"; }
6
6
  }
@@ -0,0 +1,3 @@
1
+ name: functional-logical-physical
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -4,6 +4,7 @@
4
4
  // graph, and no layer is a mandatory pipeline stage.
5
5
  package memo_examples_functional_logical_physical {
6
6
  private import ScalarValues::*;
7
+ private import ModelingMetadata::*;
7
8
 
8
9
  private import memo_core_enumerations::*;
9
10
  private import memo_core_relationships::*;
@@ -14,13 +15,13 @@ package memo_examples_functional_logical_physical {
14
15
  private import memo_architecture_implementation_hardware_structure::*;
15
16
 
16
17
  // Operational world: what the clinician does.
17
- action actOcclusionResponse : OperationalActivity {
18
+ action actOcclusionResponse : OperativeAction {
18
19
  attribute :>> id = "FLP-ACT-001"; attribute :>> name = "RespondToLineOcclusion";
19
20
  attribute :>> criticality = CriticalityKind::high;
20
21
  }
21
22
 
22
23
  // Functional: technology-independent responsibility.
23
- part fnLimitLinePressure : SystemFunction {
24
+ action fnLimitLinePressure : SystemFunction {
24
25
  attribute :>> id = "FLP-FN-001"; attribute :>> name = "LimitLinePressure";
25
26
  attribute :>> criticality = CriticalityKind::high;
26
27
  }
@@ -31,8 +32,7 @@ package memo_examples_functional_logical_physical {
31
32
  attribute :>> id = "FLP-LC-001"; attribute :>> name = "PressureProtectionElement";
32
33
  attribute :>> controlledVariable = "line pressure";
33
34
  }
34
- connection : AllocatedTo connect function ::> fnLimitLinePressure to allocatedElement ::> lcPressureProtection;
35
-
35
+ allocate fnLimitLinePressure to lcPressureProtection;
36
36
  // Implementation: the SAME logical element is realized by software
37
37
  // (pressure-limit supervision) AND mechanics (mechanical relief valve).
38
38
  part swPressureSupervisor : SoftwareModule {
@@ -45,6 +45,6 @@ package memo_examples_functional_logical_physical {
45
45
  attribute :>> mechanicalFunction = "vents line pressure above mechanical set point, independent of software";
46
46
  attribute :>> patientContact = false;
47
47
  }
48
- connection : Realizes connect realizing ::> swPressureSupervisor to realized ::> lcPressureProtection;
49
- connection : Realizes connect realizing ::> mechReliefValve to realized ::> lcPressureProtection;
48
+ #refinement dependency swPressureSupervisor to lcPressureProtection;
49
+ #refinement dependency mechReliefValve to lcPressureProtection;
50
50
  }
@@ -2,5 +2,5 @@ package memo_examples_functional_logical_physical_viewpoints_unassigned_views_fu
2
2
  private import memo_examples_functional_logical_physical::*;
3
3
  private import memo_viewpoints_definitions::*;
4
4
  private import memo_core_enumerations::*;
5
- view functionalLogicalPhysicalOverview : MemoDiagramView { expose memo_examples_functional_logical_physical::*; attribute depth = 2; attribute :>> title = "Function to Physical Realization"; attribute :>> viewKind = DiagramViewKind::general; attribute :>> diagramType = "bdd"; }
5
+ view functionalLogicalPhysicalOverview : MemoDiagramView { expose memo_examples_functional_logical_physical::*; attribute depth = 2; attribute :>> viewKind = DiagramViewKind::general; attribute :>> diagramType = "bdd"; }
6
6
  }
@@ -0,0 +1,3 @@
1
+ name: gpca-pump
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -18,8 +18,10 @@ package memo_examples_gpca_pump_gpca_analysis {
18
18
  attribute :>> id = "FM-001";
19
19
  attribute :>> name = "PumpMotorRunaway";
20
20
  attribute :>> failureModeKind = FailureModeKind::unintendedFunction;
21
+ attribute :>> effect = "Excess drug delivered to the patient beyond the prescribed rate.";
21
22
  attribute :>> severityRating = 10;
22
23
  attribute :>> occurrenceRating = 2;
24
+ attribute :>> probability = ProbabilityKind::improbable;
23
25
  attribute :>> detectionRating = 3;
24
26
  attribute :>> rpn = 60;
25
27
  attribute :>> criticality = CriticalityKind::catastrophic;
@@ -29,8 +31,10 @@ package memo_examples_gpca_pump_gpca_analysis {
29
31
  attribute :>> id = "FM-002";
30
32
  attribute :>> name = "AirSensorFailsSilent";
31
33
  attribute :>> failureModeKind = FailureModeKind::lossOfFunction;
34
+ attribute :>> effect = "Air embolism reaches the patient undetected.";
32
35
  attribute :>> severityRating = 10;
33
36
  attribute :>> occurrenceRating = 3;
37
+ attribute :>> probability = ProbabilityKind::remote;
34
38
  attribute :>> detectionRating = 4;
35
39
  attribute :>> rpn = 120;
36
40
  attribute :>> criticality = CriticalityKind::catastrophic;
@@ -40,8 +44,10 @@ package memo_examples_gpca_pump_gpca_analysis {
40
44
  attribute :>> id = "FM-003";
41
45
  attribute :>> name = "OcclusionSensorDrift";
42
46
  attribute :>> failureModeKind = FailureModeKind::degradedFunction;
47
+ attribute :>> effect = "Occluded line is detected late or not at all, interrupting therapy.";
43
48
  attribute :>> severityRating = 7;
44
49
  attribute :>> occurrenceRating = 4;
50
+ attribute :>> probability = ProbabilityKind::occasional;
45
51
  attribute :>> detectionRating = 4;
46
52
  attribute :>> rpn = 112;
47
53
  attribute :>> criticality = CriticalityKind::high;
@@ -51,8 +57,10 @@ package memo_examples_gpca_pump_gpca_analysis {
51
57
  attribute :>> id = "FM-004";
52
58
  attribute :>> name = "BolusButtonStuckClosed";
53
59
  attribute :>> failureModeKind = FailureModeKind::unintendedFunction;
60
+ attribute :>> effect = "Repeated unrequested boluses are delivered.";
54
61
  attribute :>> severityRating = 9;
55
62
  attribute :>> occurrenceRating = 3;
63
+ attribute :>> probability = ProbabilityKind::remote;
56
64
  attribute :>> detectionRating = 2;
57
65
  attribute :>> rpn = 54;
58
66
  attribute :>> criticality = CriticalityKind::high;
@@ -62,8 +70,10 @@ package memo_examples_gpca_pump_gpca_analysis {
62
70
  attribute :>> id = "FM-005";
63
71
  attribute :>> name = "BatteryDepletesEarly";
64
72
  attribute :>> failureModeKind = FailureModeKind::prematureFunction;
73
+ attribute :>> effect = "Pump loses power during transport, stopping therapy.";
65
74
  attribute :>> severityRating = 6;
66
75
  attribute :>> occurrenceRating = 4;
76
+ attribute :>> probability = ProbabilityKind::occasional;
67
77
  attribute :>> detectionRating = 3;
68
78
  attribute :>> rpn = 72;
69
79
  attribute :>> criticality = CriticalityKind::medium;
@@ -161,13 +171,13 @@ package memo_examples_gpca_pump_gpca_analysis {
161
171
  attribute :>> cutSetSummary = "All minimal cut sets are order 2 or higher after mitigation";
162
172
  attribute :>> revisionDate = "2026-07-03";
163
173
  }
164
- part fteOverdoseTop : FaultTreeEvent {
174
+ part fteOverdoseTop : FaultTreeNode {
165
175
  attribute :>> id = "FTE-001";
166
176
  attribute :>> name = "ExcessDrugDeliveredTopEvent";
167
177
  attribute :>> eventKind = FaultTreeEventKind::topEvent;
168
178
  attribute :>> description = "Delivered volume exceeds prescribed limits";
169
179
  }
170
- part fteMotorRunaway : FaultTreeEvent {
180
+ part fteMotorRunaway : FaultTreeNode {
171
181
  attribute :>> id = "FTE-002";
172
182
  attribute :>> name = "MotorRunawayBasicEvent";
173
183
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
@@ -175,7 +185,7 @@ package memo_examples_gpca_pump_gpca_analysis {
175
185
  attribute :>> exposureTime = 100.0;
176
186
  attribute :>> description = "Pump motor delivers faster than commanded (FM-001)";
177
187
  }
178
- part fteCrossCheckFails : FaultTreeEvent {
188
+ part fteCrossCheckFails : FaultTreeNode {
179
189
  attribute :>> id = "FTE-003";
180
190
  attribute :>> name = "FlowCrossCheckUnavailable";
181
191
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
@@ -183,7 +193,7 @@ package memo_examples_gpca_pump_gpca_analysis {
183
193
  attribute :>> exposureTime = 100.0;
184
194
  attribute :>> description = "Independent flow sensor or comparison logic fails (FM-003 family)";
185
195
  }
186
- part fteLockoutFault : FaultTreeEvent {
196
+ part fteLockoutFault : FaultTreeNode {
187
197
  attribute :>> id = "FTE-004";
188
198
  attribute :>> name = "LockoutEnforcementFault";
189
199
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
@@ -191,7 +201,7 @@ package memo_examples_gpca_pump_gpca_analysis {
191
201
  attribute :>> exposureTime = 100.0;
192
202
  attribute :>> description = "Infusion manager authorizes bolus despite active lockout";
193
203
  }
194
- part fteStuckButtonUndetected : FaultTreeEvent {
204
+ part fteStuckButtonUndetected : FaultTreeNode {
195
205
  attribute :>> id = "FTE-005";
196
206
  attribute :>> name = "StuckBolusButtonUndetected";
197
207
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
@@ -199,17 +209,17 @@ package memo_examples_gpca_pump_gpca_analysis {
199
209
  attribute :>> exposureTime = 100.0;
200
210
  attribute :>> description = "Pendant stuck closed and stuck-input monitor fails (FM-004)";
201
211
  }
202
- part ftgOverdoseOr : FaultTreeGate {
212
+ part ftgOverdoseOr : FaultTreeNode {
203
213
  attribute :>> id = "FTG-001";
204
214
  attribute :>> name = "OverdelivryPathOrGate";
205
215
  attribute :>> gateKind = FaultTreeGateKind::orGate;
206
216
  }
207
- part ftgMotorAnd : FaultTreeGate {
217
+ part ftgMotorAnd : FaultTreeNode {
208
218
  attribute :>> id = "FTG-002";
209
219
  attribute :>> name = "MotorRunawayAndCrossCheckGate";
210
220
  attribute :>> gateKind = FaultTreeGateKind::andGate;
211
221
  }
212
- part ftgBolusAnd : FaultTreeGate {
222
+ part ftgBolusAnd : FaultTreeNode {
213
223
  attribute :>> id = "FTG-003";
214
224
  attribute :>> name = "UnauthorizedBolusAndGate";
215
225
  attribute :>> gateKind = FaultTreeGateKind::andGate;