Merweb (Mermaid meets Semantic Web) is library and command line interface to generate SHACL shapes and vocabularies from Mermaid class diagrams.
- Install via
npm i -g merweb
. - Execute tool via
merweb -f path/to/diagram -s path/to/jsonld
. You can try
merweb -f examples/diagram.txt \
-s shapes.jsonld \
-b "sc=https://w3id.org/idlab/ns/supply-chain/#" \
-v "sc=https://w3id.org/idlab/ns/supply-chain/#" \
-c vocab.jsonld
You can find example diagrams in the folder examples
.
Memweb reuses one existing Mermaid annotation and uses five new annotations to generate the correct shapes and vocabularies from the class diagrams. Below you can find a table of these annotations.
Annotation | Description | Shape | Vocabulary | Existing or new annotation |
---|---|---|---|---|
@type |
The type of as class | Object of sh:targetNode |
A rdfs:Class |
New |
@extraTypes |
The extra types of as class | Object of sh:property with rdf:type as sh:path |
A rdfs:Class |
New |
@label |
The label of a class or property | N/A | Object of rdfs:label |
New |
@comment |
The comment of a class or property | N/A | Object of rdfs:comment |
New |
Cardinality on a class attribute | The cardinality of datatype property | Objects of sh:minCount and sh:maxCount |
N/A | New |
Cardinality on a relationship between two classes | The cardinality of object property | Objects of sh:minCount and sh:maxCount |
N/A | Existing |
You can remove the annotations starting with @
from diagrams via the -r, --remove-annotations
option.
The changed diagram is outputted to the terminal.
merweb -f examples/diagram.txt -r
This code is copyrighted by Ghent University – imec and released under the MIT license.