MindShare Logo
  • Features
  • Services
  • Use cases
  • Metadata
  • Roadmap
  • About us
  • Open the app

The MindShare
Metadata Format

Every knowledge graph in MindShare is one JSON file: the things on the graph, how they connect, what each kind looks like and what opens when you click. Here is a small, complete example, and what each part means.
book-club.jsonDownload JSON
{
  "dataTypes": {
    "Published": "datetime",
    "Pages": "int",
    "Genre": "typelist",
    "Language": "string",
    "Rating": "perc"
  },
  "nodes": [
    {
      "ID": "B1",
      "name": "Winter Orchard",
      "type": "Book",
      "description": "A family returns to the orchard every winter.",
      "properties": {
        "Published": "2024-03-01",
        "Pages": 312,
        "Genre": "Novel",
        "Language": "English",
        "Rating": "92%"
      }
    },
    {
      "ID": "B2",
      "name": "The Lighthouse Ledger",
      "type": "Book",
      "description": "A keeper's logbook turns into a village history.",
      "properties": {
        "Published": "2021-09-14",
        "Pages": 248,
        "Genre": "Novel",
        "Language": "English",
        "Rating": "88%"
      }
    },
    {
      "ID": "B3",
      "name": "Borrowed Rivers",
      "type": "Book",
      "description": "Essays on the rivers that shaped three cities.",
      "properties": {
        "Published": "2022-05-30",
        "Pages": 196,
        "Genre": "Essays",
        "Language": "English",
        "Rating": "81%"
      }
    },
    {
      "ID": "B4",
      "name": "Paper Comets",
      "type": "Book",
      "description": "Two writers trade stories across one long summer.",
      "properties": {
        "Published": "2025-06-20",
        "Pages": 274,
        "Genre": "Short stories",
        "Language": "English",
        "Rating": "95%"
      }
    },
    {
      "ID": "A1",
      "name": "Mara Velde",
      "type": "Author"
    },
    {
      "ID": "A2",
      "name": "Tomas Reyna",
      "type": "Author"
    }
  ],
  "links": [
    {
      "node1": "B1",
      "node2": "A1",
      "name1": "wrote",
      "name2": "written by",
      "direction": -1
    },
    {
      "node1": "B3",
      "node2": "A2",
      "name1": "wrote",
      "name2": "written by",
      "direction": -1
    },
    {
      "node1": "B4",
      "node2": "A1",
      "name1": "wrote",
      "name2": "written by",
      "direction": -1
    },
    {
      "node1": "B4",
      "node2": "A2",
      "name1": "wrote",
      "name2": "written by",
      "direction": -1
    }
  ],
  "visuals": [
    {
      "nodeType": "Book",
      "shape": "rectangle",
      "borderColor": "#5be592"
    },
    {
      "nodeType": "Author",
      "shape": "circle",
      "borderColor": "#c95be5"
    }
  ],
  "detailView": [
    {
      "nodeType": "*",
      "own": "*",
      "others": [
        "Genre",
        "Published",
        "Rating"
      ],
      "order": [
        "Author",
        "Book"
      ]
    }
  ],
  "metadata": {
    "description": "What our book club read this year, and who wrote it.",
    "sourceLink": "https://example.com/book-club"
  },
  "view": {
    "x": 0,
    "y": 0,
    "z": 180
  }
}

What the metadata is

The file describes your knowledge graph completely: MindShare reads it in your browser, checks it and draws the graph. Export a graph from MindShare and you get the same format back, so you can edit it, generate it from your own data and import it again.

Only dataTypes and nodes are required. links, visuals, detailView, metadata (the graph's description and source) and view (where it opens) are optional.

An Excel import works the same way: the workbook carries this JSON in its first cell.

Data types dataTypes required

Declares every property you use and the kind of value it holds. It is one map for the whole graph, shared by nodes and links. The type decides how a value is shown, edited and filtered.
  • string
  • int
  • dec
  • perc
  • bool
  • datetime
  • typelist
  • time
  • time[h:m:s]
  • time[h:m]
  • time[h]
  • time[m:s]
  • time[m]
  • time[s]
datetime
A date, 2024-03-01, or a date and time, 2024-03-01T18:30:00.
perc
A percentage, written as text: "45%".
typelist
Offers the values already used for that property as choices.

Nodes nodes required

The things on your graph: books, people, processes, ideas. The list needs at least one node.
ID
Unique identifier; links point to it.
name
The label on the graph.
type
Its kind; decides its look and which properties it has.
description
Optional text shown in the detail panel.
properties
Optional values for the properties declared in dataTypes. All nodes of one type use the same properties.
position
Optional { "x", "y", "z" }. Leave it out and MindShare lays the graph out for you.
size
Optional: one number, or [width, height].
images
Optional list of image links shown in the detail panel.
nodeImage
Optional image link drawn inside the node when its type's shape is canvas-image.

Links links

How the nodes connect. A link joins two node IDs and says what the connection means, read from each side.
node1, node2
The IDs of the two nodes it joins. Both must exist.
name1, name2
name1 is read from node2: Mara Velde wrote Winter Orchard. name2 is read from node1: Winter Orchard written by Mara Velde. Or give one name for both sides.
direction
0 no arrow (the default) · 1 node1 → node2 · -1 node2 → node1 · 2 both ways.
properties
Optional values, typed by dataTypes. All links use the same properties.

Visuals visuals

How each type of node looks: one entry per type.
nodeType
The type it styles.
shape
circle, rectangle, hex, star, hex[N] for a shape with 5 to 20 corners, or canvas-image to draw each node's nodeImage.
borderColor
The type's colour, e.g. #5be592.

Detail view detailView

What opens when someone clicks a node. One entry per type, or "*" for all types; a type's own entry replaces the "*" one.
nodeType
The type the entry is for, or "*".
own
Properties shown for the clicked node: a list, or "*" for all.
others
Properties shown when the node appears as a connection of another node.
order
The order its connected types are grouped in.

Graph info metadata

About the graph as a whole. It shows in the graph's info, opened from its name at the top left.
description
Optional short plain text saying what the graph is about.
sourceLink
Optional link to where the data came from.

Opening view view

Where the graph opens: the centre of the screen and the zoom. MindShare writes it when you save, so a graph opens on the part that matters. Leave it out and MindShare chooses the view. A shared link with its own position opens there instead.
x, y
The point of the graph in the middle of the screen.
z
The zoom, as a distance from the graph: a larger number shows more of it. It must be above 0.

Password

A password is not part of the file. Choose one the first time you press Persist on server; saving over the graph or deleting it then needs the password. There is no reset by e-mail: if it is lost, only the MindShare admin can set a new one. Without a password, anyone with the graph's link can save over it.

Through the API, send it in the X-Graph-Password request header when you create the graph, percent-encoded, at least 8 characters. A password field in the JSON is refused.

Before you import

Every link must point at node IDs that exist, every property must be declared in dataTypes with a value of the right kind, all nodes of one type must have the same properties, and so must all links. MindShare checks this in your browser and tells you the first thing to fix.
Company

Entity Services is a company that wants to build innovation in central Europe and bring it to the entire world.

Categories
  • Features
  • Services
  • Use cases
  • Metadata
  • Roadmap
  • About us
  • Privacy policy
  • Terms of use
  • App terms of use
  • App privacy policy
MindShare Icon
Financované Európskou úniou

Project co-funded by the European Union under the Digital Innovation Programme.

© MindShare 2026