Skip to content

Permission Matrix

The ArchiMate 3.2 specification defines a normative relationship permission matrix (Appendix B) that governs which relationships are allowed between which element types. etcion encodes this matrix in etcion.validation.permissions and enforces it at model-validation time.

How to Read the Tables

Each sub-table below corresponds to one relationship type. The columns are:

Column Meaning
Source Type The element type at the source end of the relationship
Target Type The element type at the target end of the relationship
Permitted Whether the combination is allowed

Universal relationships are not listed in the tables below because they apply uniformly:

  • Composition and Aggregation -- permitted between same-type elements.
  • Specialization -- permitted between same concrete type only.
  • Association -- always permitted between any two concepts.

Assignment

Source Type Target Type Permitted
PassiveStructureElement BehaviorElement No
BusinessInternalActiveStructureElement BusinessInternalBehaviorElement Yes
BusinessInternalActiveStructureElement BusinessService Yes
BusinessInternalActiveStructureElement BusinessEvent Yes
BusinessInterface BusinessService Yes
ApplicationInternalActiveStructureElement ApplicationInternalBehaviorElement Yes
ApplicationInternalActiveStructureElement ApplicationService Yes
ApplicationInternalActiveStructureElement ApplicationEvent Yes
ApplicationInterface ApplicationService Yes
TechnologyInternalActiveStructureElement TechnologyInternalBehaviorElement Yes
TechnologyInternalActiveStructureElement TechnologyService Yes
TechnologyInternalActiveStructureElement TechnologyEvent Yes
TechnologyInterface TechnologyService Yes
PhysicalActiveStructureElement TechnologyInternalBehaviorElement Yes
PhysicalActiveStructureElement TechnologyService Yes
BusinessInternalActiveStructureElement MotivationElement Yes
BusinessInternalActiveStructureElement WorkPackage Yes
Resource Capability Yes
Resource ValueStream Yes
Resource CourseOfAction Yes

Access

Source Type Target Type Permitted
PassiveStructureElement Element No
BusinessInternalActiveStructureElement BusinessPassiveStructureElement Yes
BusinessInternalBehaviorElement BusinessPassiveStructureElement Yes
BusinessService BusinessPassiveStructureElement Yes
BusinessEvent BusinessPassiveStructureElement Yes
BusinessInterface BusinessPassiveStructureElement Yes
ApplicationInternalActiveStructureElement DataObject Yes
ApplicationInternalBehaviorElement DataObject Yes
ApplicationService DataObject Yes
ApplicationEvent DataObject Yes
ApplicationInterface DataObject Yes
TechnologyInternalActiveStructureElement Artifact Yes
TechnologyInternalBehaviorElement Artifact Yes
TechnologyService Artifact Yes
TechnologyEvent Artifact Yes
TechnologyInterface Artifact Yes
ImplementationEvent Deliverable Yes
PhysicalActiveStructureElement Material Yes

Serving

Source Type Target Type Permitted
PassiveStructureElement Element No
BusinessService BusinessInternalBehaviorElement Yes
BusinessService BusinessService Yes
BusinessInterface BusinessInternalActiveStructureElement Yes
ApplicationService ApplicationInternalBehaviorElement Yes
ApplicationService ApplicationService Yes
ApplicationInterface ApplicationInternalActiveStructureElement Yes
TechnologyService TechnologyInternalBehaviorElement Yes
TechnologyService TechnologyService Yes
TechnologyInterface TechnologyInternalActiveStructureElement Yes
ApplicationService BusinessInternalBehaviorElement Yes
ApplicationInterface BusinessInternalActiveStructureElement Yes
BusinessService ApplicationInternalBehaviorElement Yes
BusinessInterface ApplicationInternalActiveStructureElement Yes
TechnologyService ApplicationInternalBehaviorElement Yes
TechnologyInterface ApplicationInternalActiveStructureElement Yes
Capability Capability Yes
ValueStream Capability Yes
Equipment Equipment Yes
Facility Facility Yes

Realization

Source Type Target Type Permitted
Element BusinessInternalActiveStructureElement No
Deliverable StructureElement Yes
Deliverable BehaviorElement Yes
ApplicationInternalBehaviorElement BusinessInternalBehaviorElement Yes
DataObject BusinessObject Yes
TechnologyInternalBehaviorElement ApplicationInternalBehaviorElement Yes
Artifact DataObject Yes
Artifact ApplicationComponent Yes
StructureElement MotivationElement Yes
BehaviorElement MotivationElement Yes
BehaviorElement Capability Yes
BehaviorElement ValueStream Yes
StructureElement Resource Yes

Influence

Source Type Target Type Permitted
MotivationElement MotivationElement Yes
MotivationElement Element Yes
Element MotivationElement Yes

Triggering

Source Type Target Type Permitted
BusinessInternalBehaviorElement BusinessInternalBehaviorElement Yes
BusinessEvent BusinessInternalBehaviorElement Yes
BusinessInternalBehaviorElement BusinessEvent Yes
BusinessEvent BusinessEvent Yes
ApplicationInternalBehaviorElement ApplicationInternalBehaviorElement Yes
ApplicationEvent ApplicationInternalBehaviorElement Yes
ApplicationInternalBehaviorElement ApplicationEvent Yes
ApplicationEvent ApplicationEvent Yes
TechnologyInternalBehaviorElement TechnologyInternalBehaviorElement Yes
TechnologyEvent TechnologyInternalBehaviorElement Yes
TechnologyInternalBehaviorElement TechnologyEvent Yes
TechnologyEvent TechnologyEvent Yes
ImplementationEvent WorkPackage Yes
ImplementationEvent Plateau Yes
WorkPackage ImplementationEvent Yes
Plateau ImplementationEvent Yes
Capability Capability Yes
ValueStream ValueStream Yes

Flow

Source Type Target Type Permitted
BusinessInternalBehaviorElement BusinessInternalBehaviorElement Yes
BusinessEvent BusinessInternalBehaviorElement Yes
BusinessInternalBehaviorElement BusinessEvent Yes
BusinessEvent BusinessEvent Yes
ApplicationInternalBehaviorElement ApplicationInternalBehaviorElement Yes
ApplicationEvent ApplicationInternalBehaviorElement Yes
ApplicationInternalBehaviorElement ApplicationEvent Yes
ApplicationEvent ApplicationEvent Yes
TechnologyInternalBehaviorElement TechnologyInternalBehaviorElement Yes
TechnologyEvent TechnologyInternalBehaviorElement Yes
TechnologyInternalBehaviorElement TechnologyEvent Yes
TechnologyEvent TechnologyEvent Yes
ValueStream ValueStream Yes

Usage Example

from etcion.validation.permissions import is_permitted
from etcion.metamodel.relationships import Assignment, Access
from etcion.metamodel.business import (
    BusinessActor,
    BusinessProcess,
    BusinessObject,
)

# Assignment: BusinessActor -> BusinessProcess is permitted
assert is_permitted(Assignment, BusinessActor, BusinessProcess)

# Access: BusinessObject (passive) -> BusinessProcess is NOT permitted
assert not is_permitted(Access, BusinessObject, BusinessProcess)

Regenerating this page

Run python scripts/generate_permission_matrix.py to regenerate the permission tables from the current _PERMISSION_TABLE in source code.