@memoarchitect/ontology 0.13.2 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
- package/examples/connected-patient-monitor/memo.package.yaml +3 -1
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
- package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
- package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/functional-logical-physical/memo.identity.yaml +28 -0
- package/examples/functional-logical-physical/memo.package.yaml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
- package/examples/gpca-pump/analysis/Samples/README.md +15 -9
- package/examples/gpca-pump/analysis/memo_model.py +243 -0
- package/examples/gpca-pump/memo.identity.yaml +521 -26
- package/examples/gpca-pump/memo.package.yaml +3 -1
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -357
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -90
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
- package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
- package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/multidimensional-layers/memo.package.yaml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
- package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
- package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
- package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/reusable-instrument/memo.package.yaml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
- package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/robot-cell-family/README.md +34 -0
- package/examples/robot-cell-family/memo.identity.yaml +142 -0
- package/examples/robot-cell-family/memo.package.yaml +7 -0
- package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
- package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
- package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
- package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
- package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
- package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
- package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
- package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
- package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
- package/examples/robot-platform/memo.package.yaml +3 -0
- package/examples/robot-platform/model/platform.sysml +15 -0
- package/examples/ros-mobile-robot/README.md +5 -4
- package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
- package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
- package/examples/software-only-medical-device/memo.package.yaml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
- package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
- package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
- package/examples/surgical-robot/memo.package.yaml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
- package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/sysml-diagram-samples/README.md +1 -0
- package/examples/sysml-diagram-samples/memo.identity.yaml +459 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +25 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
- package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
- package/examples/temperature-alarm/memo.identity.yaml +6 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
- package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/ui-screen-regions/memo.identity.yaml +33 -0
- package/examples/ui-screen-regions/memo.package.yaml +3 -1
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
- package/extensions/README.md +65 -16
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/aadl_extension.sysml +5 -2
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
- package/extensions/clinical/memo.package.yaml +1 -1
- package/extensions/clinical/src/clinical_extension.sysml +2 -0
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/messaging_extension.sysml +2 -2
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/ros_extension.sysml +25 -24
- package/extensions/template/memo.package.yaml +1 -1
- package/extensions/template/model/extension.sysml +25 -0
- package/memo.manifest.yaml +1 -7
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +6 -4
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +9 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
- package/src/architecture/functional/functions/memo_functions.sysml +45 -31
- package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
- package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
- package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
- package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
- package/src/architecture/operational/structure/memo_operational.sysml +5 -2
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
- package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
- package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
- package/src/architecture/variability/memo_variability.sysml +87 -0
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
- package/src/artifacts/standards/cfr_21_820.sysml +12 -24
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
- package/src/artifacts/standards/iec_60601_1.sysml +16 -32
- package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
- package/src/artifacts/standards/iec_60812.sysml +4 -8
- package/src/artifacts/standards/iec_62304.sysml +607 -47
- package/src/artifacts/standards/iec_62366_1.sysml +12 -24
- package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
- package/src/artifacts/standards/iso_13485.sysml +12 -24
- package/src/artifacts/standards/iso_14971.sysml +118 -20
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
- package/src/artifacts/templates/dhf/system/sad.md +1 -1
- package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
- package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
- package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
- package/src/assurance/safety_risk/memo_risk.sysml +39 -1
- package/src/core/common/memo_common.sysml +61 -68
- package/src/core/enumerations/memo_enumerations.sysml +93 -9
- package/src/core/relationships/memo_relationships.sysml +17 -11
- package/src/core/relationships/memo_workspace_membership.sysml +284 -0
- package/src/core/semantics/semantics.sysml +58 -0
- package/src/core/terminology/terminology.sysml +7 -0
- package/src/memo_namespaces.sysml +6 -0
- package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
- package/src/methodology/core/memo_core.sysml +85 -29
- package/src/methodology/profiles/memo_profiles.sysml +217 -61
- package/src/methodology/workflow/memo_workflow.sysml +28 -0
- package/src/rules/closure/closure_rules.sysml +250 -4
- package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
- package/src/rules/ontology/ontology_invariants.sysml +288 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -0
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
- package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
- package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +2 -3
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
- package/templates/default/memo.package.yaml +6 -1
- package/templates/default/model/catalog/architecture/system.sysml +7 -3
- package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
- package/extensions/container/src/methodology/container_methodology.sysml +0 -19
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
- package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
- package/extensions/template/src/extension.sysml +0 -39
- package/templates/connected-device/memo.package.yaml +0 -13
- package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/connected-device/model/catalog/project.sysml +0 -30
- package/templates/connected-device/package.json +0 -8
- package/templates/connected-device/syside.toml +0 -13
- package/templates/infusion-pump/memo.package.yaml +0 -13
- package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
- package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/infusion-pump/model/catalog/project.sysml +0 -30
- package/templates/infusion-pump/package.json +0 -8
- package/templates/infusion-pump/syside.toml +0 -13
- package/templates/monitoring-device/memo.package.yaml +0 -13
- package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/monitoring-device/model/catalog/project.sysml +0 -30
- package/templates/monitoring-device/package.json +0 -8
- package/templates/monitoring-device/syside.toml +0 -13
- package/templates/samd/memo.package.yaml +0 -13
- package/templates/samd/model/catalog/architecture/system.sysml +0 -5
- package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/samd/model/catalog/project.sysml +0 -30
- package/templates/samd/package.json +0 -8
- package/templates/samd/syside.toml +0 -13
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Software Only Medical Device —
|
|
1
|
+
// Software Only Medical Device — model identity and method binding.
|
|
2
2
|
//
|
|
3
3
|
// The native entrypoint. The imports name what this project contains and the
|
|
4
4
|
// binding names the methodology it is governed by. No YAML file participates.
|
|
@@ -16,15 +16,14 @@ package memo_examples_software_only_medical_device_project {
|
|
|
16
16
|
|
|
17
17
|
private import memo_core_common::*;
|
|
18
18
|
private import memo_core_common::MemoIdentity;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
// The cloud extension supplies CloudService, which is what the grading
|
|
20
|
+
// service is. Importing it publicly here is what brings it into the
|
|
21
|
+
// project, its definitions and its selection alike.
|
|
22
|
+
public import memo_extension_cloud::*;
|
|
23
|
+
part projectBinding : ModelMethodBinding {
|
|
24
|
+
@MemoIdentity { :>> providedId = "PMB-MEDICAL-DEVICE-001"; :>> label = "SoftwareOnlyMedicalDeviceModelMethodBinding"; }
|
|
25
|
+
attribute :>> modelName = "Software Only Medical Device";
|
|
23
26
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
24
27
|
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
25
|
-
// Composition happens here, not by chaining methodologies. The cloud
|
|
26
|
-
// extension supplies CloudService, which is what the grading service
|
|
27
|
-
// is.
|
|
28
|
-
attribute :>> includedModule = "memo_extension_cloud";
|
|
29
28
|
}
|
|
30
29
|
}
|
|
@@ -21,21 +21,21 @@ package memo_examples_surgical_closure_workflow {
|
|
|
21
21
|
// ── Clinical setting and goal ───────────────────────────────
|
|
22
22
|
part bariatricSurgeon : User {
|
|
23
23
|
attribute :>> actorKind = ActorKind::clinician;
|
|
24
|
-
@MemoIdentity { :>> providedId = "LSG-USR-001"; }
|
|
24
|
+
@MemoIdentity { :>> providedId = "LSG-USR-001"; }
|
|
25
25
|
attribute :>> clinicalRole = "primary operating surgeon";
|
|
26
26
|
}
|
|
27
27
|
part scrubNurse : User {
|
|
28
28
|
attribute :>> actorKind = ActorKind::clinician;
|
|
29
|
-
@MemoIdentity { :>> providedId = "LSG-USR-002"; }
|
|
29
|
+
@MemoIdentity { :>> providedId = "LSG-USR-002"; }
|
|
30
30
|
attribute :>> clinicalRole = "sterile instrumentation and count";
|
|
31
31
|
}
|
|
32
32
|
part anesthetist : User {
|
|
33
33
|
attribute :>> actorKind = ActorKind::clinician;
|
|
34
|
-
@MemoIdentity { :>> providedId = "LSG-USR-003"; }
|
|
34
|
+
@MemoIdentity { :>> providedId = "LSG-USR-003"; }
|
|
35
35
|
attribute :>> clinicalRole = "anaesthesia and physiologic monitoring";
|
|
36
36
|
}
|
|
37
37
|
part bariatricOr : UseContext {
|
|
38
|
-
@MemoIdentity { :>> providedId = "LSG-CTX-001";
|
|
38
|
+
@MemoIdentity { :>> providedId = "LSG-CTX-001"; :>> label = "BariatricOperatingRoom"; }
|
|
39
39
|
attribute :>> careSetting = "hospital operating room";
|
|
40
40
|
attribute :>> environment = "sterile laparoscopic operating field";
|
|
41
41
|
attribute :>> connectedUse = false;
|
|
@@ -47,57 +47,54 @@ package memo_examples_surgical_closure_workflow {
|
|
|
47
47
|
}
|
|
48
48
|
use case ucPerformSleeveGastrectomy : UseCase {
|
|
49
49
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
50
|
-
@MemoIdentity { :>> providedId = "LSG-UC-001"; }
|
|
51
|
-
attribute :>> name = "PerformLaparoscopicSleeveGastrectomy";
|
|
50
|
+
@MemoIdentity { :>> providedId = "LSG-UC-001"; :>> label = "PerformLaparoscopicSleeveGastrectomy"; }
|
|
52
51
|
attribute :>> goalStatement = "Complete the planned laparoscopic sleeve gastrectomy and transfer the patient with the staple line assessed.";
|
|
53
52
|
attribute :>> trigger = "patient prepared and surgical time-out complete";
|
|
54
53
|
attribute :>> successOutcome = "gastric sleeve created, haemostasis and integrity assessed, patient handed over";
|
|
55
54
|
attribute :>> failureOutcome = "uncontrolled bleeding, suspected staple-line issue, or conversion/escalation";
|
|
56
|
-
ref :>> primaryUser = bariatricSurgeon;
|
|
57
|
-
ref :>> supportingActors = (scrubNurse, anesthetist);
|
|
58
55
|
ref :>> useContext = bariatricOr;
|
|
59
56
|
subject supportingSystem;
|
|
60
57
|
actor bariatricSurgeonInitiator = bariatricSurgeon;
|
|
58
|
+
actor scrubNurseActor = scrubNurse;
|
|
59
|
+
actor anesthetistActor = anesthetist;
|
|
61
60
|
}
|
|
62
61
|
connection : Motivates connect motivatingNeed ::> needControlledGastricResection to motivatedUseCase ::> ucPerformSleeveGastrectomy;
|
|
63
62
|
|
|
64
63
|
// ── Procedure workflow ──────────────────────────────────────
|
|
65
|
-
action actTimeOutAndPosition : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-001";
|
|
66
|
-
action actEstablishAccess : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-002";
|
|
67
|
-
action actMobilizeStomach : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-003";
|
|
64
|
+
action actTimeOutAndPosition : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-001"; :>> label = "ConfirmTimeOutAndPosition"; } }
|
|
65
|
+
action actEstablishAccess : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-002"; :>> label = "EstablishLaparoscopicAccess"; } }
|
|
66
|
+
action actMobilizeStomach : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-003"; :>> label = "MobilizeStomach"; } }
|
|
68
67
|
action actSizeAndCreateSleeve : OperativeAction {
|
|
69
|
-
@MemoIdentity { :>> providedId = "LSG-ACT-004";
|
|
68
|
+
@MemoIdentity { :>> providedId = "LSG-ACT-004"; :>> label = "SizeAndCreateSleeve"; } attribute :>> criticality = CriticalityKind::high;
|
|
70
69
|
|
|
71
70
|
action taskCreateStapleLine : OperativeAction {
|
|
72
71
|
attribute :>> criticality = CriticalityKind::high;
|
|
73
|
-
@MemoIdentity { :>> providedId = "LSG-TASK-001"; }
|
|
74
|
-
attribute :>> name = "CreateAndInspectStapleLine";
|
|
72
|
+
@MemoIdentity { :>> providedId = "LSG-TASK-001"; :>> label = "CreateAndInspectStapleLine"; }
|
|
75
73
|
attribute :>> taskGoal = "create the planned sleeve and identify bleeding or integrity concerns before completion";
|
|
76
74
|
attribute :>> potentialHarm = "bleeding or staple-line complication not recognized before handover";
|
|
77
75
|
attribute :>> severityIfFailed = SeverityKind::serious;
|
|
78
76
|
|
|
79
|
-
action stConfirmAnatomy : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-001";
|
|
80
|
-
action stCreateStapleLine : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-002";
|
|
81
|
-
action stInspectBleeding : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-003";
|
|
82
|
-
action stAssessIntegrity : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-004";
|
|
77
|
+
action stConfirmAnatomy : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-001"; :>> label = "ConfirmAnatomy"; } }
|
|
78
|
+
action stCreateStapleLine : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-002"; :>> label = "CreateStapleLine"; } }
|
|
79
|
+
action stInspectBleeding : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-003"; :>> label = "InspectForBleeding"; } }
|
|
80
|
+
action stAssessIntegrity : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ST-004"; :>> label = "AssessStapleLineIntegrity"; } }
|
|
83
81
|
first stConfirmAnatomy then stCreateStapleLine;
|
|
84
82
|
first stCreateStapleLine then stInspectBleeding;
|
|
85
83
|
first stInspectBleeding then stAssessIntegrity;
|
|
86
84
|
}
|
|
87
85
|
}
|
|
88
|
-
action actAssessStapleLine : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-005";
|
|
89
|
-
action actExtractSpecimenAndClose : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-006";
|
|
90
|
-
action actHandover : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-007";
|
|
86
|
+
action actAssessStapleLine : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-005"; :>> label = "AssessStapleLine"; } attribute :>> criticality = CriticalityKind::high; }
|
|
87
|
+
action actExtractSpecimenAndClose : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-006"; :>> label = "ExtractSpecimenAndClosePorts"; } }
|
|
88
|
+
action actHandover : OperativeAction { @MemoIdentity { :>> providedId = "LSG-ACT-007"; :>> label = "CompletePostoperativeHandover"; } }
|
|
91
89
|
|
|
92
90
|
action wfSleeveGastrectomy : ClinicalProcedureWorkflow {
|
|
93
|
-
@MemoIdentity { :>> providedId = "LSG-WF-001"; }
|
|
94
|
-
attribute :>> name = "LaparoscopicSleeveGastrectomyWorkflow";
|
|
91
|
+
@MemoIdentity { :>> providedId = "LSG-WF-001"; :>> label = "LaparoscopicSleeveGastrectomyWorkflow"; }
|
|
95
92
|
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
96
93
|
attribute :>> entryCondition = "patient prepared; time-out ready";
|
|
97
94
|
attribute :>> completionCondition = "staple line assessed; postoperative handover complete";
|
|
98
95
|
attribute :>> clinicalObjective = "create a gastric sleeve after controlled mobilisation and staple-line assessment";
|
|
99
96
|
action scNominalSleeveProcedure : OperativeScenario {
|
|
100
|
-
@MemoIdentity { :>> providedId = "LSG-SC-001";
|
|
97
|
+
@MemoIdentity { :>> providedId = "LSG-SC-001"; :>> label = "NominalSleeveGastrectomy"; }
|
|
101
98
|
attribute :>> pathSummary = "Time-out, access, mobilisation, sleeve creation, staple-line assessment, closure, and handover complete without rework.";
|
|
102
99
|
|
|
103
100
|
perform actTimeOutAndPosition;
|
|
@@ -116,11 +113,11 @@ package memo_examples_surgical_closure_workflow {
|
|
|
116
113
|
}
|
|
117
114
|
action scStapleLineBleeding : OperativeScenario {
|
|
118
115
|
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
119
|
-
@MemoIdentity { :>> providedId = "LSG-SC-002";
|
|
116
|
+
@MemoIdentity { :>> providedId = "LSG-SC-002"; :>> label = "StapleLineBleedingRecovery"; }
|
|
120
117
|
attribute :>> pathSummary = "Recognize bleeding, apply the selected control, reassess the staple line, and escalate if the condition remains unresolved.";
|
|
121
118
|
|
|
122
119
|
action oaControlStapleLineBleeding : OperativeAction {
|
|
123
|
-
|
|
120
|
+
@MemoIdentity { :>> label = "ControlStapleLineBleeding"; }
|
|
124
121
|
action recognizeBleeding; action controlBleeding; action reassessStapleLine; action escalateIfNeeded;
|
|
125
122
|
first start then recognizeBleeding; first recognizeBleeding then controlBleeding; first controlBleeding then reassessStapleLine; first reassessStapleLine then escalateIfNeeded; first escalateIfNeeded then done;
|
|
126
123
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Surgical Closure Workflow —
|
|
1
|
+
// Surgical Closure Workflow — model identity and method binding.
|
|
2
2
|
//
|
|
3
3
|
// The native entrypoint. The imports name what this project contains and the
|
|
4
4
|
// binding names the methodology it is governed by. No YAML file participates.
|
|
@@ -16,10 +16,12 @@ package memo_examples_surgical_closure_workflow_project {
|
|
|
16
16
|
|
|
17
17
|
private import memo_core_common::*;
|
|
18
18
|
private import memo_core_common::MemoIdentity;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
// The workflow is a ClinicalProcedureWorkflow, so the project brings in
|
|
20
|
+
// the clinical extension, by importing it publicly here.
|
|
21
|
+
public import memo_extension_clinical::*;
|
|
22
|
+
part projectBinding : ModelMethodBinding {
|
|
23
|
+
@MemoIdentity { :>> providedId = "PMB-CLOSURE-WORKFLOW-001"; :>> label = "SurgicalClosureWorkflowModelMethodBinding"; }
|
|
24
|
+
attribute :>> modelName = "Surgical Closure Workflow";
|
|
23
25
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
24
26
|
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
25
27
|
}
|
|
@@ -8,17 +8,18 @@ package memo_examples_surgical_robot {
|
|
|
8
8
|
private import memo_core_relationships::*;
|
|
9
9
|
private import memo_architecture_logical_structure::*;
|
|
10
10
|
private import memo_architecture_implementation_hardware_structure::*;
|
|
11
|
+
private import memo_architecture_realization_physical::*;
|
|
11
12
|
private import memo_architecture_implementation_ui::*;
|
|
12
13
|
|
|
13
14
|
private import memo_core_common::*;
|
|
14
15
|
private import memo_core_common::MemoIdentity;
|
|
15
16
|
// Control channels: primary + diverse monitor, with declared independence.
|
|
16
17
|
part chMotionPrimary : LogicalComponent {
|
|
17
|
-
@MemoIdentity { :>> providedId = "SR-LC-001";
|
|
18
|
+
@MemoIdentity { :>> providedId = "SR-LC-001"; :>> label = "MotionControlChannel"; }
|
|
18
19
|
attribute :>> channelRole = ChannelRoleKind::primary;
|
|
19
20
|
}
|
|
20
21
|
part chMotionMonitor : LogicalComponent {
|
|
21
|
-
@MemoIdentity { :>> providedId = "SR-LC-002";
|
|
22
|
+
@MemoIdentity { :>> providedId = "SR-LC-002"; :>> label = "MotionMonitorChannel"; }
|
|
22
23
|
attribute :>> channelRole = ChannelRoleKind::monitor;
|
|
23
24
|
attribute :>> diversityBasis = "independent encoder set and diverse processor family";
|
|
24
25
|
}
|
|
@@ -29,33 +30,34 @@ package memo_examples_surgical_robot {
|
|
|
29
30
|
|
|
30
31
|
// Interlock: instrument exchange blocked while arm is in motion.
|
|
31
32
|
part chExchangeInterlock : LogicalComponent {
|
|
32
|
-
@MemoIdentity { :>> providedId = "SR-LC-003";
|
|
33
|
+
@MemoIdentity { :>> providedId = "SR-LC-003"; :>> label = "InstrumentExchangeInterlock"; }
|
|
33
34
|
attribute :>> channelRole = ChannelRoleKind::interlock;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
// Mechanical-force flow from actuator to instrument tip.
|
|
37
|
-
part exTipForce : LogicalExchange {
|
|
38
|
-
@MemoIdentity { :>> providedId = "SR-EX-001"; } attribute :>> name = "TipForceTransmission";
|
|
39
|
-
attribute :>> contentKind = FlowContentKind::mechanicalForce;
|
|
40
|
-
attribute :>> direction = DirectionKind::output;
|
|
41
|
-
}
|
|
42
37
|
part actJointDrive : Actuator {
|
|
43
|
-
@MemoIdentity { :>> providedId = "SR-HW-001";
|
|
38
|
+
@MemoIdentity { :>> providedId = "SR-HW-001"; :>> label = "JointDriveActuator"; }
|
|
44
39
|
attribute :>> actuationKind = "brushless DC servo with harmonic drive";
|
|
40
|
+
out port pDriveOut : PhysicalPort;
|
|
45
41
|
}
|
|
46
42
|
part instrShaft : MechanicalPart {
|
|
47
|
-
|
|
43
|
+
in port pDriveIn : PhysicalPort;
|
|
44
|
+
@MemoIdentity { :>> providedId = "SR-HW-002"; :>> label = "InstrumentShaft"; }
|
|
48
45
|
attribute :>> mechanicalFunction = "transmits actuation to end effector";
|
|
49
46
|
attribute :>> patientContact = true;
|
|
50
47
|
attribute :>> contactNature = "internal tissue, direct";
|
|
51
48
|
attribute :>> contactDuration = "limited (<24 h)";
|
|
52
49
|
}
|
|
50
|
+
// Mechanical-force flow from actuator to instrument tip.
|
|
51
|
+
flow exTipForce : LogicalExchange from actJointDrive.pDriveOut to instrShaft.pDriveIn {
|
|
52
|
+
@MemoIdentity { :>> providedId = "SR-EX-001"; :>> label = "TipForceTransmission"; }
|
|
53
|
+
attribute :>> contentKind = FlowContentKind::mechanicalForce;
|
|
54
|
+
}
|
|
53
55
|
|
|
54
56
|
// Surgeon console: haptic feedback element. The grip is hardware the
|
|
55
57
|
// surgeon holds, so it is an OperatorInterfaceElement (a PhysicalComponent)
|
|
56
58
|
// rather than a UIElement — UIElement is software.
|
|
57
59
|
part elHapticGrip : OperatorInterfaceElement {
|
|
58
|
-
@MemoIdentity { :>> providedId = "SR-UI-001";
|
|
60
|
+
@MemoIdentity { :>> providedId = "SR-UI-001"; :>> label = "HapticMasterGrip"; }
|
|
59
61
|
attribute :>> formKind = OperatorInterfaceFormKind::hapticIndicator;
|
|
60
62
|
attribute :>> guardedAgainstInadvertentActuation = true;
|
|
61
63
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Surgical Robot —
|
|
1
|
+
// Surgical Robot — model identity and method binding.
|
|
2
2
|
//
|
|
3
3
|
// The native entrypoint. The imports name what this project contains and the
|
|
4
4
|
// binding names the methodology it is governed by. No YAML file participates.
|
|
@@ -16,10 +16,9 @@ package memo_examples_surgical_robot_project {
|
|
|
16
16
|
|
|
17
17
|
private import memo_core_common::*;
|
|
18
18
|
private import memo_core_common::MemoIdentity;
|
|
19
|
-
part projectBinding :
|
|
20
|
-
@MemoIdentity { :>> providedId = "PMB-SURGICAL-ROBOT-001"; }
|
|
21
|
-
attribute :>>
|
|
22
|
-
attribute :>> projectName = "Surgical Robot";
|
|
19
|
+
part projectBinding : ModelMethodBinding {
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-SURGICAL-ROBOT-001"; :>> label = "SurgicalRobotModelMethodBinding"; }
|
|
21
|
+
attribute :>> modelName = "Surgical Robot";
|
|
23
22
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
24
23
|
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
25
24
|
}
|
|
@@ -23,6 +23,7 @@ accepts its decision, merge, accept/send, termination and guard syntax, and
|
|
|
23
23
|
|
|
24
24
|
| View | Diagram type | View kind | Renders |
|
|
25
25
|
| --- | --- | --- | --- |
|
|
26
|
+
| `drill_down_view.sysml` | `ibd`, `afd` | interconnection, actionflow | Ways into a lower level from a usage typed by a definition: a part and an action with an authored child view (`gearboxInside`, `calibrateDetail`), a part with parts two levels deep and no view (`motor`), a part with only ports (`controller`), and an action with child steps and no view. |
|
|
26
27
|
| `tree_view.sysml` | `bdd` | general | Block Definition Diagram — a decomposition hierarchy. |
|
|
27
28
|
| `interconnection_view.sysml` | `ibd` | interconnection | Internal Block Diagram — nested parts, boundary ports, typed connectors. |
|
|
28
29
|
| `action_flow_view.sysml` | `afd` | actionflow | Activity / action flow — actions, item flows, successions. |
|