Tulip JSON
Tulip JSON (TLP JSON) is one of the native on-disk serializations of the Tulip graph visualization and analysis framework, an open-source, cross-platform project created by David Auber and developed at LaBRI (Laboratoire Bordelais de Recherche en Informatique) in Bordeaux, France. It encodes Tulip's graph model as a JavaScript Object Notation document (file extension .json) and sits alongside the older Lisp/S-expression textual format format:tulip-tlp-2.3 and the compact format:tlp-binary variant, all handled by the Tulip application and its Python bindings through dedicated "JSON Import" and "JSON Export" plugins.
Structurally, the JSON mirrors Tulip's underlying data model rather than inventing a new one. Nodes are represented by non-negative integer indices, and each edge is defined by a triple of integers: the edge's own id, the source node id, and the target node id. This gives edges first-class identity, so parallel edges and edge-attached data are naturally expressible. Attributes live in a separate properties section: every property carries a cluster (subgraph) id, a property type, and a name, plus a default value for nodes and a default for edges, followed by any individual per-element overrides. The type system is rich for a graph format, covering bool, int, double, string, color, size, layout (3D coordinates) and their vector variants. Reserved view* properties such as viewColor, viewLabel, viewLayout, viewSize and viewShape carry the visual rendering state, so a JSON file round-trips not just topology but also a full drawing.
A defining trait inherited from Tulip is native support for hierarchical subgraphs (clusters), keyed by integer cluster ids with 0 reserved for the root graph. Property values can therefore be scoped per subgraph, which most interchange formats cannot express without loss. The export plugin offers a single "Beautify JSON string" option to toggle pretty-printing versus compact output.
The format's strengths are lossless persistence of a Tulip session, easy parsing by any JSON library, and faithful capture of typed properties, layout, and subgraph hierarchy. Its limitations are its tool-specificity: the schema is not a widely adopted standard, tooling outside Tulip is scarce, and consumers expecting a generic node-link JSON such as format:networkx-node-link, format:cytoscape-json or format:graphson-3.0 will need a converter. For neutral interchange, Tulip can also read and write format:gml, format:graphml, format:gexf-1.3, format:pajek and format:dot.
Alternative Names: Tulip JSON
Frequently Asked Questions
What is a Tulip JSON Graph Format file?
A Tulip JSON Graph Format file stores a graph — its nodes, edges and attributes — in the Tulip JSON Graph Format format (also: Tulip JSON). See the feature table above for what it supports.
How do I open a Tulip JSON Graph Format file?
Open it in a graph tool that supports Tulip JSON Graph Format, or convert it to a format your tool reads. With GraphInOut you can convert Tulip JSON Graph Format to GraphML, DOT, Connected JSON and more, right in your browser.
How do I convert a Tulip JSON Graph Format file to another format?
Use the Convert from Tulip JSON Graph Format link above: upload or paste your Tulip JSON Graph Format file (input preset to Tulip JSON Graph Format), choose a target format and download the result — free, no install.