Connected JSON
Connected JSON (CJ) is a JSON format used to model graph data structures. CJ is the logical successor to GraphML. The conceptual model of both formats is almost identical. CJ, being designed 20 years later, is more flexible for adding JSON data to graph entities.
See the current spec. GraphInOut implements the v0.5 strict variant.
| Feature | Support | Notes |
|---|---|---|
| Attributes on Edges | ✅ | Via data property |
| Attributes on Graphs | ✅ | Via data property |
| Attributes on Nodes | ✅ | Via data property |
| Directed Edges | ✅ | Via in/out endpoint directions |
| Edge Labels | ✅ | Multilingual support |
| Edges on Edges | ❌ | |
| Hyperedges | ✅ | N-ary endpoints |
| Mixed-directionality Edges | ✅ | Each endpoint specifies own direction |
| Multiple Graphs per Document | ✅ | Via graphs array |
| Nested Graphs in Edges | ✅ | Via graphs property (compound edges) |
| Nested Graphs in Graphs | ✅ | |
| Nested Graphs in Nodes | ✅ | Via graphs property (compound nodes) |
| Node Labels | ✅ | Multilingual support |
| Nodes | ✅ | |
| Typed Edges | ✅ | Via type, typeUri, typeNode |
| Undirected Edges | ✅ | Via undir endpoint direction |
None of the existing JSON graph interchange formats has the same breadth of features as the over 20-year-old XML-based GraphML. Connected JSON aims to be a full GraphML replacement. It supports the semantic capabilities and data representation found in GraphML, while adopting a more flexible, schema-less JSON approach.