Relationships
A relationship type is a kind of connection, named in capitals: SUPPORTS, RELATES_TO, SPEAKS_TO. It connects particular pairs of node types, in a direction. One relationship type can connect several pairs: SUPPORTS might run Source → Concept and Thinker → Concept. Each pair is a connection, drawn as one line.
Drawing one
Hover a card and drag its gold handle:
- Onto another card. The target card lifts and rings gold while you’re over it, and a dashed line with an arrowhead shows where it will go. Let go and a small form appears.
- Back onto the same card. A self-loop: Concept → Concept.
- Onto empty canvas. A ghost card marked “New type” follows the pointer; let go and a new type is created there, connected. After you name the relationship, the new card’s name field is focused.
The form shows the two ends with their colours, a RELATIONSHIP_NAME field (whatever you type is upper-cased with underscores: relates to becomes RELATES_TO), a Both ways checkbox (not for a self-loop), and chips under Or reuse listing existing relationship types that could connect these two, narrowed as you type. Press Return or click Add.
Reusing a name is how one relationship type comes to connect more pairs: drag Thinker → Concept, type SUPPORTS, and the existing SUPPORTS gains the new connection.
How lines are drawn
- A one-way connection has a small port dot where it starts and an arrowhead where it ends.
- A two-way connection (A → B and B → A both allowed) is one line with an arrowhead at each end.
- Several connections between the same two cards fan out side by side; self-loops drop below the card, stacked.
- The name sits in a capsule at the line’s middle. A dashed capsule border means the connection isn’t in the database yet (the shape has an issue to fix first).
- The selected line and its name turn gold. Click a name to select that connection; the whole relationship type lights when selected as a whole in the inspector.
Direction
Three ways to change which way a connection runs:
- Right-click the line’s name › Direction: Concept → Source, Source → Concept, or Concept ↔ Source (both ways). A self-loop offers One way and Both ways.
- In the inspector’s Connects list, click the arrow between the two chips: it cycles one way → both ways → the other way → both ways…
- Tick Both ways when creating it.
Turning a direction off when the graph holds connections that way asks first: “Its 7 connections the other way between Concept and Source are deleted from your graph.”
For a type connected to itself, “both ways” is a mark on the shape (the database is the same either way); it means a link from one node to another means the same as one back, so it’s drawn without a direction and the AI is told to match it undirected.
The inspector for a relationship
Select a line or a relationship to see:
- Its NAME (editable; renaming to the name of another relationship type merges the two, unless both already exist in the database, in which case the app says “There’s already a relationship called X”).
- Connects: one row per connection, from chip · arrow button · to chip, with an × to remove that connection when there’s more than one. Removing a connection that holds data asks first. A relationship type loses its last connection and goes with it.
- Properties: the same editor as a node type’s: kinds, title, embedding, show on graph, defaults. A relationship’s title shows on the line in place of its name.
- Delete relationship: removes the type and every connection it makes, asking first when connections hold data.
Renaming
Double-click a line’s name, or edit it in the inspector. What you type is normalised: speaks to → SPEAKS_TO. A name that is a Cypher keyword (CONTAINS) is stored as CONTAINS_ and shown as CONTAINS.
The AI, Raw Cypher and the MCP tools all use the database name, which the Cypher completion dropdown and the get_shape tool list. The shape’s own rendering for the AI marks two-way connections “so match it without direction”.