Grasp (deprecated in favour of purescript-grasp)
Grasp, short for GRAph Specification Processor, allows you to:
- Specify graphs in a super concise format.
- Output graph structure as JSON.
- Leave formatting (layout, colouring, etc.) to other tools, such as GraphViz.
Syntax is inspired by both GraphViz and CYPHER:
# concise node and edge syntax a -> b b -> c; c -> d d, e, f -> g # labeled edges 1 -succ-> 2 # type annotations x:A -f-> y:B y -g:G-> z
- [X] no formatting, only structure
- [X] comma syntax:
a,b,c -> d, e
- [X] type syntax?
a:A - b:B -> c:C
- [X] comments
- [ ] transitive syntax?
a -> b -> c -> d
- [ ] allow (back)slash in node / edge labels? (handy for paths and URLs)?
- [ ] quoted node / edge labels?
- [ ] dash as part of identifiers maar dan zonder conflicts or ambiguities
- [ ] question mark as part of identifiers
- [ ] node / edge ids? maybe using hash mark?
- [ ] allow references: graph transformations, styling, comments, legend, etc
- [ ] support formats other than JSON.