Skip to content
4 changes: 4 additions & 0 deletions shacl12-core/images/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
all: SHACL-UML.svg

%.svg: %.puml
plantuml -Tsvg $^
47 changes: 47 additions & 0 deletions shacl12-core/images/SHACL-UML.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
@startuml
hide circles
hide empty members
skinparam topurl https://raw.githack.com/w3c/data-shapes/master/shacl12-core/index.html

class "<color:blue><u>sh:Shape" as Shape [[#shapes]] {
[[#targetClass sh:targetClass]] : rdfs:Class
[[#targetNode sh:targetNode]] : any
[[#targetObjectsOf sh:targetObjectsOf]] : rdf:Property
[[#targetSubjectsOf sh:targetSubjectsOf]] : rdf:Property
....
[[#deactivated sh:deactivated]] : xsd:boolean
[[#message sh:message]] : xsd:string or rdf:langString
[[#severity sh:severity]] : sh:Severity
}

class "<color:blue><u>sh:NodeShape" as NodeShape [[#node-shapes]] {
[[#constraints Constraint parameters]], for example:
[[#closedConstraintComponent sh:closed]] : xsd:boolean or [[#syntax-rule-closed-datatype sh:ByTypes]]
[[#orConstraintComponent sh:or]], [[#andConstraintComponent sh:and]], [[#xoneConstraintComponent sh:xone]] : rdf:List
[[#notConstraintComponent sh:not]] : [[#shapes sh:Shape]]
}

class "<color:blue><u>sh:PropertyShape" as PropertyShape [[#property-shapes]] {
[[#constraints Constraint parameters]], for example:
[[#MinCountConstraintComponent sh:minCount]], [[#MaxCountConstraintComponent sh:maxCount]] : xsd:integer
[[#MinLengthConstraintComponent sh:minLength]], [[#MaxLengthConstraintComponent sh:maxLength]] : xsd:integer
[[#ClassConstraintComponent sh:class]] or [[#DatatypeConstraintComponent sh:datatype]] : rdfs:Resource or\n rdf:List of rdfs:Resources
[[#NodeConstraintComponent sh:node]] : [[#node-shapes sh:NodeShape]]
....
[[#name sh:name]] : xsd:string or rdf:langString
[[#desription sh:description]] : xsd:string or rdf:langString
[[#syntax-rule-path-defaultValue sh:defaultValue]] : any
[[#syntax-rule-path-defaultValue sh:values]] : any
[[#order sh:order]] : number
[[#property-shapes sh:path]] : rdfs:Resource
}

class "sh:PropertyGroup" as PropertyGroup [[#group sh:group]] {
[[#group sh:order]] : number
}

Shape <|-- NodeShape
Shape <|-- PropertyShape
NodeShape -> PropertyShape : [[#property-shapes sh:property]] *
PropertyShape --> PropertyGroup : [[#group sh:group]]
@enduml
1 change: 1 addition & 0 deletions shacl12-core/images/SHACL-UML.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions shacl12-vocabularies/shacl-shacl.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ shsh:
shsh:ListShape
a sh:NodeShape ;
rdfs:label "List shape"@en ;
rdfs:comment "A shape describing well-formed RDF lists. Currently does not check for non-recursion. This could be expressed using SHACL-SPARQL."@en ;
rdfs:comment "A shape describing well-formed RDF lists. Currently does not check for non-recursion (this could be expressed using SHACL-SPARQL)."@en ;
rdfs:seeAlso <https://www.w3.org/TR/shacl/#syntax-rule-SHACL-list> ;
sh:property [
sh:path [ sh:zeroOrMorePath rdf:rest ] ;
rdfs:comment "Each list member (including this node) must be have the shape shsh:ListNodeShape."@en ;
rdfs:comment "Each list member (including this node) must have the shape shsh:ListNodeShape."@en ;
sh:hasValue rdf:nil ;
sh:node shsh:ListNodeShape ;
] .
Expand Down