Linked.Archi

Linked.Archi Core Visual Notation SHACL Shapes

SHACL Shapes

https://meta.linked.archi/core-vis-shapes#

v0.1.0 draft archvissh: Kalin Maldzhanski Linked.Archi Modified: 2026-08-13 License

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.

Contents

ArchNodeShape — target: ArchNode

PropertyConstraintValueSeverityMessage
archElement maxCount 1 Violation
archElement minCount 1 Violation

DecorationShape — target: Decoration

PropertyConstraintValueSeverityMessage
decorSymbol datatype anyURI Violation
decorSymbol maxCount 1 Violation

DiagElementShape — target: DiagElement

PropertyConstraintValueSeverityMessage
label class LabelNode Violation
label maxCount 1 Violation
style class Style Violation
style maxCount 1 Violation
view class View Violation
view maxCount 1 Violation

LabelNodeShape — target: LabelNode

PropertyConstraintValueSeverityMessage
archElement maxCount 0 Violation
label maxCount 0 Violation

LinkShape — target: Link

PropertyConstraintValueSeverityMessage
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

NodeBoundsShape — target: Node

PropertyConstraintValueSeverityMessage
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

PlacedDiagElementShape — target: Link

PropertyConstraintValueSeverityMessage
view class View Violation
view class View Violation
view maxCount 1 Violation
view maxCount 1 Violation
view minCount 1 Violation
view minCount 1 Violation

PointShape — target: Point

PropertyConstraintValueSeverityMessage
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

RelationshipLineNotationShape — target: QualifiedRelationship

PropertyConstraintValueSeverityMessage
lineStyle class LineStyle Violation
lineStyle maxCount 1 Violation
sourceDecor class Decoration Violation
sourceDecor maxCount 1 Violation
targetDecor class Decoration Violation
targetDecor maxCount 1 Violation

StyleShape — target: Style

PropertyConstraintValueSeverityMessage
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

VisualNotationShape — target: VisualNotation

PropertyConstraintValueSeverityMessage
defaultStyle class Style Violation
defaultStyle maxCount 1 Violation
inNotationSet class NotationSet Violation
inNotationSet minCount 1 Violation
notationFor maxCount 1 Violation
notationFor minCount 1 Violation