Linked.Archi

Linked.Archi ArchiMate 4.0 Element & Metamodel Shapes

SHACL Shapes

https://meta.linked.archi/archimate4/element-shapes#

v4.0 draft am4elsh: Kalin Maldzhanski Linked.Archi Modified: 2026-04-29 License

SHACL shapes for validating ArchiMate 4.0 element instances and metamodel patterns. Adapted from 3.2 shapes for the domain-based structure of 4.0. Draft — needs validation against the ArchiMate 4.0 relationship validity matrix.

Contents

AccessTypeShape — target: Access

PropertyConstraintValueSeverityMessage
accessType datatype string Violation
accessType in 7257a4745cf789ef Violation
accessType maxCount 1 Violation

ArchiMateElementShape — target: Element

PropertyConstraintValueSeverityMessage
prefLabel datatype langString Violation
prefLabel minCount 1 Violation

InfluenceStrengthShape — target: Influence

PropertyConstraintValueSeverityMessage
influenceStrength datatype string Violation
influenceStrength in 7257a4745cf789ea Violation
influenceStrength maxCount 1 Violation

MotivationNoFlowShape

SPARQL constraint: Motivation elements cannot participate in flow relationships. Violation
            SELECT $this WHERE {
                $this am4:flowsTo ?target .
                $this rdf:type/rdfs:subClassOf* am4:MotivationElement .
            }
        

MotivationNoTriggeringShape

SPARQL constraint: Motivation elements cannot participate in triggering relationships. Violation
            SELECT $this WHERE {
                $this am4:triggers ?target .
                $this rdf:type/rdfs:subClassOf* am4:MotivationElement .
            }
        

NoSelfAggregationShape

SPARQL constraint: An element cannot aggregate itself. Violation
SELECT $this WHERE { $this am4:aggregates $this . }

NoSelfCompositionShape

SPARQL constraint: An element cannot compose itself. Violation
SELECT $this WHERE { $this am4:composedOf $this . }

NoSelfSpecializationShape

SPARQL constraint: An element cannot specialize itself. Violation
SELECT $this WHERE { $this am4:specializes $this . }

SpecializationSameTypeShape

SPARQL constraint: Specialization must connect elements of the same ArchiMate type. Violation
            SELECT $this ?target WHERE {
                $this am4:specializes ?target .
                $this rdf:type ?sourceType .
                ?target rdf:type ?targetType .
                ?sourceType rdfs:subClassOf* arch:Element .
                ?targetType rdfs:subClassOf* arch:Element .
                FILTER NOT EXISTS {
                    $this rdf:type ?commonType .
                    ?target rdf:type ?commonType .
                    ?commonType rdfs:subClassOf* arch:Element .
                }
            }