Draw UML from SHACL

This diagram generation utility displays an application profile specified in SHACL in the form of one or more diagrams, using PlantUML. It supports a subset of SHACL constraints. The diagrams generated can be embedded in the documentation generation utility. Detailed documentation is available below.

  Shapes

Remove Select file Change
You can select multiple files. Supported extensions : .rdf, .ttl, .n3, .trig. Other extensions will be treated as RDF/XML
To have your Shapes in the catalog, add it to the catalog Github repository.
URL of an RDF file. Same extensions as file upload are supported.
Supported syntaxes : Turtle, RDF/XML, JSON-LD, TriG, TriX, N-Quads. We recommend Turtle.

  Options

Not display properties

Documentation

Finding links between boxes

The diagram generation utility will generate a link between 2 boxes if it finds:

  • An sh:node reference to another NodeShape
  • An sh:class reference that is the sh:targetClass of another NodeShape
  • An sh:class reference that is not the sh:targetClass of another NodeShape (in that case a box will be generated corresponding to the sh:class)
  • An sh:or containing sh:node or sh:class resolved using the same algorithm as above

Limiting the number of arrows/boxes

If a property shape refer to a node shape that does not have any property, and only one reference is made to that node shape, then the arrow will not be printed and will be replaced by a property inside the node shape box.

Customizing NodeShapes

In addition to SHACL constraints, the following properties can be used to customise the output of NodeShapes

Property Type Description
foaf:depiction
+ dcterms:title
+ dcterms:description
+ sh:order
IRI or blank node

Indicates the IRI of a diagram in which the NodeShape will appear. This allows to split the visual representation in multiple diagrams.

If foaf:depiction is never used on any NodeShape in the SHACL data, a single diagram will be generated with all the NodeShapes. If foaf:depiction is used at least once on a NodeShape, then one diagram will be generated for each value of foaf:depiction, and each diagram will include only the NodeShapes that refer to it.

Each diagram can be described with dcterms:title and dcterms:description to indicate its title and description. sh:order can be used with an xsd:integer value to control the order of the diagrams.

Depending on the output format option, you will get a ZIP file containing all PNGs or SVGs, or an HTML page containing all generated diagrams.

rdfs:subClassOf IRI rdfs:subClassOf links are displayed in bold grey. It implies the NodeShapes are also classes, and it of course implies that the submitted file contains the rdfs:subClassOf links.
https://shacl-play.sparna.fr/ontology#background-color xsd:string Color of the box itself. Values can be a color name, like "Green" or an hex code, like "4456BB"
https://shacl-play.sparna.fr/ontology#color xsd:string Color of the text inside the box. Values can be a color name, like "Green" or an hex code, like "4456BB"

Customizing PropertyShapes

In addition to SHACL constraints, the following properties can be used to customize the appearance of Property Shapes

Property Type Description
sh:order xsd:integer Properties are sorted according to sh:order
https://shacl-play.sparna.fr/ontology#color xsd:string Color of the property name (inside the box) or arrow link. Values can be a color name, like "Green" or an hex code, like "4456BB"
owl:inverseOf on the IRI indicated on sh:path IRI If the property indicated in sh:path is known to have an inverse, then a single arrow will be printed instead of 2.
sh:group
+ rdfs:label
IRI Groups the property inside a section in the box in the diagram, labelled with its rdfs:label. This also has the effect of turning "arrows" into "class attributes", in other words displaying object properties as data properties. This is useful to make the diagram more compact for references to e.g. controlled vocabularies / skos:Concept.

EBG shapes

ScoloMFR Application profile, SKOS based

Sparnatural configuration profile