SHACL Shapes
https://meta.linked.archi/archimate4/element-shapes#
SHACL shapes for validating ArchiMate 4.0 element instances and the metamodel patterns the relationship tables cannot express: element names, self-loops and cycles of composition and aggregation, a part in one whole only, attribute values, junctions joining relationships of one type, and deep specialization chains. Which element types a relationship may connect is checked by archimate4-relationship-shapes.ttl, generated from the specification's relationship tables (Appendix B), and is not repeated here.
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
accessType |
maxCount | 0 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
datatype | langString | Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation | |
prefLabel |
minCount | 1 |
Violation |
SELECT $this WHERE {
?whole1 am4:composedOf $this .
?whole2 am4:composedOf $this .
FILTER(?whole1 != ?whole2)
}
SELECT $this WHERE {
$this am4:specializes+ ?t1 .
?t1 am4:specializes+ ?t2 .
?t2 am4:specializes+ ?t3 .
?t3 am4:specializes+ ?t4 .
}
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
influenceStrength |
datatype | string | Violation | |
influenceStrength |
in | 19957834bca9b0ab |
Violation | |
influenceStrength |
maxCount | 1 |
Violation |
SELECT $this WHERE {
{
?a ?rel1 $this .
?b ?rel2 $this .
} UNION {
$this ?rel1 ?a .
$this ?rel2 ?b .
} UNION {
?a ?rel1 $this .
$this ?rel2 ?b .
}
?rel1 rdfs:subPropertyOf* am4:composedOf .
FILTER NOT EXISTS {
?rel2 rdfs:subPropertyOf* am4:composedOf .
}
FILTER(?rel1 != ?rel2)
}
SELECT $this WHERE { $this am4:aggregates+ $this . }
SELECT $this WHERE { $this am4:composedOf+ $this . }
SELECT $this WHERE { $this am4:aggregates $this . }
SELECT $this WHERE { $this am4:composedOf $this . }
SELECT $this WHERE { $this am4:specializes $this . }
SELECT $this WHERE {
{
?a ?rel1 $this .
?b ?rel2 $this .
} UNION {
$this ?rel1 ?a .
$this ?rel2 ?b .
} UNION {
?a ?rel1 $this .
$this ?rel2 ?b .
}
?rel1 rdfs:subPropertyOf* am4:composedOf .
FILTER NOT EXISTS {
?rel2 rdfs:subPropertyOf* am4:composedOf .
}
FILTER(?rel1 != ?rel2)
}