{- ============================== Copyright (c) 2026 SysFEAT - Systemic Framework for Enterprise Architecture & Transformation This work is released under the MIT License. framework.sysfeat.com Action Process Type: An Action Process Type is a Behavior Type that describes a typical course of action intended to produce Outcomes, through the involvement of Agent Types as Active Participants.During its course of action, a process consumes or produces Functional Assets, including Information Assets.1) It may memorize or access Information Assets from and to its Process Stores.2) It may receive Functional Assets at its boundary: Outcome Consumptions.3) It may signal the production of Functional Assets at its boundary: Outcome Productions.The course of actions of a Action Process Type is constrained (Rule Enforcement) by the application of Behavioral Rules that define what is allowed and not allowed to do.Within SysFEAT, we can examine Action Process Typees from two distinct perspectives:a) A conceptual standpoint is provided by Value Streams.b) A concrete implementation standpoint is provided by Resource Action Processes. Documentation : https://framework.sysfeat.com/pages/d682ef5e56144e77.htm External references: OpenGroup - ArchiMate - Process: https://pubs.opengroup.org/architecture/archimate32-doc/ch-Generic-Metamodel.html#sec-Specializations-of-Structure-and-Behavior-Elements OMG - UML - Activity: https://www.omg.org/spec/UML/2.5.1/PDF#page=415 ISO 9000 - 3.4.1 - Process: https://www.iso.org/obp/ui/#iso:std:iso:9000:ed-4:v1:en3.4.1.Process OMG - BPMN - Process: https://www.omg.org/spec/BPMN/2.0.2/PDF#page=173 Russell Ackoff - System of Concepts - Process: ../resources/external-references/Ackoff-1971-Towards-a-system-of-systems-concepts.pdf#Process ISO 15926 - ClassOfActivity: https://15926.blog/topics/data-model/index.htm#ClassOfActivity WordNet - Process: https://en-word.net/ili/i40766 Merriam Webster - Process: https://www.merriam-webster.com/dictionary/process OMG - UAF - Process: https://www.omg.org/spec/UAF/1.2/Beta1/DMM/PDF#Process - ============================== -} {-# OPTIONS --cubical --guardedness #-} module SysFEAT.SOF.d682ef5e56144e77 where -- ========== Action Process Type open import Agda.Primitive open import SysFEAT.SOF.986cd4ec5ffca3ac public -- Behavior Type open import SysFEAT.SOF.24ae31d75ed1c747 public -- Behavioral Event open import SysFEAT.SOF.30223b5c5ec90c01 public -- Outcome Event open import SysFEAT.SOF.d6cd116d5ab97525 public -- Information Domain open import SysFEAT.SOF.79368381561716a6 public -- Agent Type ActionProcessType : ClassOfClassOfBoundedIndividual ActionProcessType = ClassOfBoundedIndividual -- ActionProcessType is subTypeOf BehaviorType st-d682ef5e56144e77-986cd4ec5ffca3ac : ActionProcessType ⊏ₑ BehaviorType st-d682ef5e56144e77-986cd4ec5ffca3ac = polySubTypeOf-identity -- == Relations ======================= -- -------------------------------------------------------------------------------------------- {- Specialized Process: -} specializedProcess : Linkage ActionProcessType ActionProcessType specializedProcess = make_subTypeOf "Specialized Process" "Specialized Process" postulate -- specializedProcess is subTypeOf specializedBehavior st-325a376e66f345e2-2b5b452d66ed5855 : specializedProcess ⊏⋆ᵣ specializedBehavior -- -------------------------------------------------------------------------------------------- {- Realized Proces: -} realizedProces : Linkage ActionProcessType ActionProcessType realizedProces = make_subTypeOf "Realized Proces" "Realized Proces" postulate -- realizedProces is subTypeOf realizedBehavior st-325a3a1466f35b22-2b5b45a466ed5920 : realizedProces ⊏⋆ᵣ realizedBehavior -- -------------------------------------------------------------------------------------------- {- Sequence Flow: A Sequence Flow is used to show the order in which steps of a process will be performed. Each sequence flow has only one source and only one target. -} -- Aggregate Member : Sequence Flow SequenceFlow : ClassOfClassOfIndividual SequenceFlow = ClassOfIndividual -- SequenceFlow is subTypeOf TemporalOrdering st-40d5416b5ee36739-255744cb6758a69e : SequenceFlow ⊏⋆ₑ TemporalOrdering st-40d5416b5ee36739-255744cb6758a69e = polySubTypeOf-identity -- Membership relation membershipOfSequenceFlow : Linkage ActionProcessType SequenceFlow membershipOfSequenceFlow = make_upwardNestingRelation "sequenceFlow membership" "nested sequenceFlow" -- Aggregation relation aggregationOfBehavioralEventSequenceFlow : Linkage SequenceFlow BehavioralEvent aggregationOfBehavioralEventSequenceFlow = make_Relation "BehavioralEvent aggregation" "aggregated BehavioralEvent" {- sequenceFlow : derived relation obtained by composing membershipOfSequenceFlow and aggregationOfBehavioralEventSequenceFlow It directly links an Action Process Type to the final aggregated BehavioralEvent hiding the reifying SequenceFlow -} sequenceFlow : Linkage ActionProcessType BehavioralEvent sequenceFlow = membershipOfSequenceFlow ∘ aggregationOfBehavioralEventSequenceFlow -- -------------------------------------------------------------------------------------------- {- Object Flow: Object Flow is a Sequence Flow that convey from its source -} -- Aggregate Member : Object Flow ObjectFlow : ClassOfClassOfIndividual ObjectFlow = ClassOfIndividual -- ObjectFlow is subTypeOf SequenceFlow st-e4c0fff75ed0ec45-40d5416b5ee36739 : ObjectFlow ⊏ₑ SequenceFlow st-e4c0fff75ed0ec45-40d5416b5ee36739 = polySubTypeOf-identity -- Membership relation membershipOfObjectFlow : Linkage ActionProcessType ObjectFlow membershipOfObjectFlow = make_upwardNestingRelation "objectFlow membership" "nested objectFlow" -- Aggregation relation aggregationOfOutcomeEventObjectFlow : Linkage ObjectFlow OutcomeEvent aggregationOfOutcomeEventObjectFlow = make_Relation "OutcomeEvent aggregation" "aggregated OutcomeEvent" {- objectFlow : derived relation obtained by composing membershipOfObjectFlow and aggregationOfOutcomeEventObjectFlow It directly links an Action Process Type to the final aggregated OutcomeEvent hiding the reifying ObjectFlow -} objectFlow : Linkage ActionProcessType OutcomeEvent objectFlow = membershipOfObjectFlow ∘ aggregationOfOutcomeEventObjectFlow -- -------------------------------------------------------------------------------------------- {- Process Store: An Process Store references an Information Domain necessary for activities of the process. -} -- Aggregate Member : Process Store ProcessStore : ClassOfClassOfIndividual ProcessStore = ClassOfIndividual -- ProcessStore withAspect UnboundedMember st-e4c003255ed1f037-8cfaf71a6852b042 : ProcessStore ⊏ₐₑ (UnboundedMember (lsuc(lzero))) st-e4c003255ed1f037-8cfaf71a6852b042 = polySubTypeOf-identity -- ProcessStore is subTypeOf InformationDomain st-e4c003255ed1f037-d6cd116d5ab97525 : ProcessStore ⊏ₑ InformationDomain st-e4c003255ed1f037-d6cd116d5ab97525 = polySubTypeOf-identity -- Membership relation membershipOfProcessStore : Linkage ActionProcessType ProcessStore membershipOfProcessStore = make_upwardNestingRelation "processStore membership" "nested processStore" -- Aggregation relation aggregationOfInformationDomainProcessStore : Linkage ProcessStore InformationDomain aggregationOfInformationDomainProcessStore = make_Relation "InformationDomain aggregation" "aggregated InformationDomain" {- processStore : derived relation obtained by composing membershipOfProcessStore and aggregationOfInformationDomainProcessStore It directly links an Action Process Type to the final aggregated InformationDomain hiding the reifying ProcessStore -} processStore : Linkage ActionProcessType InformationDomain processStore = membershipOfProcessStore ∘ aggregationOfInformationDomainProcessStore -- -------------------------------------------------------------------------------------------- {- Active Participant: An Active Participant is a Process Participant indicating the role of an Agent Type actively engaged as an actor within a Action Process Type. -} -- Aggregate Member : Active Participant ActiveParticipant : ClassOfClassOfBoundedIndividual ActiveParticipant = ClassOfBoundedIndividual -- ActiveParticipant is subTypeOf ProcessParticipant st-004b041f5ebd1119-fafb50d966460369 : ActiveParticipant ⊏ₑ ProcessParticipant st-004b041f5ebd1119-fafb50d966460369 = polySubTypeOf-identity -- ActiveParticipant is subTypeOf AgentType st-004b041f5ebd1119-79368381561716a6 : ActiveParticipant ⊏ₑ AgentType st-004b041f5ebd1119-79368381561716a6 = polySubTypeOf-identity -- Membership relation membershipOfActiveParticipant : Linkage ActionProcessType ActiveParticipant membershipOfActiveParticipant = make_upwardNestingRelation "activeParticipant membership" "nested activeParticipant" -- Aggregation relation aggregationOfAgentTypeActiveParticipant : Linkage ActiveParticipant AgentType aggregationOfAgentTypeActiveParticipant = make_Relation "AgentType aggregation" "aggregated AgentType" {- activeParticipant : derived relation obtained by composing membershipOfActiveParticipant and aggregationOfAgentTypeActiveParticipant It directly links an Action Process Type to the final aggregated AgentType hiding the reifying ActiveParticipant -} activeParticipant : Linkage ActionProcessType AgentType activeParticipant = membershipOfActiveParticipant ∘ aggregationOfAgentTypeActiveParticipant -- -------------------------------------------------------------------------------------------- {- Process Participant: A Process Participant is the involvement of an in a . -} -- Aggregate Member : Process Participant ProcessParticipant : ClassOfClassOfBoundedIndividual ProcessParticipant = ClassOfBoundedIndividual -- ProcessParticipant is subTypeOf BehaviorParticipant st-fafb50d966460369-e0e86fad65789c43 : ProcessParticipant ⊏ₑ BehaviorParticipant st-fafb50d966460369-e0e86fad65789c43 = polySubTypeOf-identity -- ProcessParticipant is subTypeOf AgentType st-fafb50d966460369-79368381561716a6 : ProcessParticipant ⊏ₑ AgentType st-fafb50d966460369-79368381561716a6 = polySubTypeOf-identity -- Membership relation membershipOfProcessParticipant : Linkage ActionProcessType ProcessParticipant membershipOfProcessParticipant = make_upwardNestingRelation "processParticipant membership" "nested processParticipant" -- Aggregation relation aggregationOfAgentTypeProcessParticipant : Linkage ProcessParticipant AgentType aggregationOfAgentTypeProcessParticipant = make_Relation "AgentType aggregation" "aggregated AgentType" {- processParticipant : derived relation obtained by composing membershipOfProcessParticipant and aggregationOfAgentTypeProcessParticipant It directly links an Action Process Type to the final aggregated AgentType hiding the reifying ProcessParticipant -} processParticipant : Linkage ActionProcessType AgentType processParticipant = membershipOfProcessParticipant ∘ aggregationOfAgentTypeProcessParticipant -- -------------------------------------------------------------------------------------------- {- Process Step: A Process Step is a Process Activity invoking another Action Process Type -} -- Aggregate Member : Process Step ProcessStep : ClassOfClassOfBoundedIndividual ProcessStep = ClassOfBoundedIndividual -- ProcessStep is subTypeOf BehaviorPart st-8e1390925ebe3db7-b776b92668b04c85 : ProcessStep ⊏ₑ BehaviorPart st-8e1390925ebe3db7-b776b92668b04c85 = polySubTypeOf-identity -- ProcessStep is subTypeOf ActionProcessType st-8e1390925ebe3db7-d682ef5e56144e77 : ProcessStep ⊏ₑ ActionProcessType st-8e1390925ebe3db7-d682ef5e56144e77 = polySubTypeOf-identity -- Membership relation membershipOfProcessStep : Linkage ActionProcessType ProcessStep membershipOfProcessStep = make_upwardNestingRelation "processStep membership" "nested processStep" -- Aggregation relation aggregationOfActionProcessTypeProcessStep : Linkage ProcessStep ActionProcessType aggregationOfActionProcessTypeProcessStep = make_Relation "ActionProcessType aggregation" "aggregated ActionProcessType" {- processStep : derived relation obtained by composing membershipOfProcessStep and aggregationOfActionProcessTypeProcessStep It directly links an Action Process Type to the final aggregated ActionProcessType hiding the reifying ProcessStep -} processStep : Linkage ActionProcessType ActionProcessType processStep = membershipOfProcessStep ∘ aggregationOfActionProcessTypeProcessStep