SHACL Shapes
https://meta.linked.archi/core-vis-shapes#
SHACL shapes for the Linked.Archi diagram and visual notation layer (core-vis). Constrains the diagram interchange classes — ArchNode, LabelNode, ContainerNode, Link, Point, PointList — and the type-level notation classes NotationSet, VisualNotation and Style. Until 0.1.0 the diagram layer had no shapes at all: a validate run loaded the notation's own shapes and the core shapes, none of which target a core-vis class, so nothing checked that a diagram node referenced a model element, that it belonged to a view, or that an edge had endpoints. A corpus of 447 malformed diagram resources across 20 diagrams validated clean. The two load-bearing rules here are ArchNodeShape (a diagram node that claims to stand for a model element must say which one) and PlacedDiagElementShape (a shape or edge must belong to exactly one view); the remainder is cardinality and datatype hygiene.
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
archElement |
maxCount | 1 |
Violation | |
archElement |
minCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
decorSymbol |
datatype | anyURI | Violation | |
decorSymbol |
maxCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
label |
class | LabelNode | Violation | |
label |
maxCount | 1 |
Violation | |
style |
class | Style | Violation | |
style |
maxCount | 1 |
Violation | |
view |
class | View | Violation | |
view |
maxCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
archElement |
maxCount | 0 |
Violation | |
label |
maxCount | 0 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
archRelationship |
class | QualifiedRelationship | Violation | |
archRelationship |
maxCount | 1 |
Violation | |
points |
maxCount | 1 |
Violation | |
source |
class | Node | Violation | |
source |
maxCount | 1 |
Violation | |
source |
minCount | 1 |
Violation | |
target |
class | Node | Violation | |
target |
maxCount | 1 |
Violation | |
target |
minCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
bounds-h |
datatype | double | Violation | |
bounds-h |
maxCount | 1 |
Violation | |
bounds-w |
datatype | double | Violation | |
bounds-w |
maxCount | 1 |
Violation | |
bounds-x |
datatype | double | Violation | |
bounds-x |
maxCount | 1 |
Violation | |
bounds-y |
datatype | double | Violation | |
bounds-y |
maxCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
view |
class | View | Violation | |
view |
class | View | Violation | |
view |
maxCount | 1 |
Violation | |
view |
maxCount | 1 |
Violation | |
view |
minCount | 1 |
Violation | |
view |
minCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
point-x |
datatype | double | Violation | |
point-x |
maxCount | 1 |
Violation | |
point-x |
minCount | 1 |
Violation | |
point-y |
datatype | double | Violation | |
point-y |
maxCount | 1 |
Violation | |
point-y |
minCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
lineStyle |
class | LineStyle | Violation | |
lineStyle |
maxCount | 1 |
Violation | |
sourceDecor |
class | Decoration | Violation | |
sourceDecor |
maxCount | 1 |
Violation | |
targetDecor |
class | Decoration | Violation | |
targetDecor |
maxCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
defaultHeight |
datatype | double | Violation | |
defaultHeight |
maxCount | 1 |
Violation | |
defaultWidth |
datatype | double | Violation | |
defaultWidth |
maxCount | 1 |
Violation | |
fillColor |
datatype | string | Violation | |
fillColor |
maxCount | 1 |
Violation | |
fontColor |
datatype | string | Violation | |
fontColor |
maxCount | 1 |
Violation | |
fontName |
datatype | string | Violation | |
fontName |
maxCount | 1 |
Violation | |
fontSize |
datatype | integer | Violation | |
fontSize |
maxCount | 1 |
Violation | |
iconPlacement |
class | IconPlacement | Violation | |
iconPlacement |
maxCount | 1 |
Violation | |
iconSymbol |
datatype | anyURI | Violation | |
iconSymbol |
maxCount | 1 |
Violation | |
lineColor |
datatype | string | Violation | |
lineColor |
maxCount | 1 |
Violation | |
renderingMode |
class | RenderingMode | Violation | |
renderingMode |
maxCount | 1 |
Violation | |
shapeType |
class | ShapeType | Violation | |
shapeType |
maxCount | 1 |
Violation |
| Property | Constraint | Value | Severity | Message |
|---|---|---|---|---|
defaultStyle |
class | Style | Violation | |
defaultStyle |
maxCount | 1 |
Violation | |
inNotationSet |
class | NotationSet | Violation | |
inNotationSet |
minCount | 1 |
Violation | |
notationFor |
maxCount | 1 |
Violation | |
notationFor |
minCount | 1 |
Violation |