A practical writing exercise

Map character relationships with directed edges

Build a directed relationship graph and matching evidence table, distinguishing an established relationship from what one character merely believes.

Explore characters & worldbuilding →

Your starting material

Use this complete original material for the demonstration. You can copy or download it before working through the steps.

Original practice material, with source IDs: [R1] Historian Sera once rescued Captain Dain from a wreck; Dain has explicitly promised Sera one lawful passage in return. [R2] Dain owes Judge Voss forty silver coins, due at the end of the month. [R3] Voss threatens to seize Dain's boat unless Dain carries an unregistered passenger tonight. [R4] Years earlier Sera hid Voss during a riot, and Voss privately acknowledges that she saved his life. [R5] Dain believes Sera has told Voss about an old smuggling voyage. Sera has not done so; Voss learned it from a port log. [R6] Sera wants to board Dain's boat to preserve a flooded archive. These are different facts: gratitude, financial debt, coercion, belief, and a current goal.

Deliberately flawed example

Deliberately flawed example: Dain ↔ Sera: knows. Dain → Voss: is owed forty coins. Sera ↔ Voss: enemies. Treat every line as objective truth.

Choose an arrow convention

Use source → target to mean the source performs the named relation toward the target. 'Dain → Voss: owes forty coins' and 'Voss → Dain: threatens seizure' can coexist. A line is not automatically reciprocal. Print the convention above the graph so a reader does not have to guess.

Avoid a single 'knows' label when the story depends on who owes, threatens, or suspects whom. Those relationships cause different actions. A useful edge is a small claim you can verify against a source ID.

Separate belief from established fact

Dain's suspicion is real as a belief, but its content is false. Label the edge 'believes betrayed him' and mark its status as Dain's belief. Do not turn it into an objective betrayal edge merely because it may motivate a scene.

Use a table alongside the drawing. Graph position helps scanning; the table preserves wording, source, and status when the diagram is copied or read without its layout.

Add a person without rewriting history

When a new node arrives, add only supported edges. If a clerk witnesses a debt payment, that does not make the clerk the creditor. Re-read the old edges after each edit and check directions against their verbs.

One possible revision

One possible revision — arrow convention: actor → recipient of the labeled relation.
Graph text:
Dain → Sera: owes one lawful passage [R1, established].
Dain → Voss: owes forty silver coins [R2, established].
Voss → Dain: threatens boat seizure to compel tonight's passage [R3, established].
Voss → Sera: acknowledges a life debt [R4, established].
Dain → Sera: believes she disclosed his smuggling [R5, Dain's false belief].
Sera → Dain: requests archive passage [R6, current goal].
Matching relationship table:
Source | Target | Type | Evidence/status
Dain | Sera | promised passage | rescue and promise, R1; fact
Dain | Voss | financial debt | amount and deadline, R2; fact
Voss | Dain | coercion | seizure threat, R3; fact
Voss | Sera | acknowledged gratitude | private acknowledgement, R4; fact
Dain | Sera | suspicion | R5; belief, contradicted by narrator's port-log fact
Sera | Dain | request | archive trip, R6; goal, not yet granted
Check: no Sera → Voss debt is established, and no Voss → Dain financial debt is established.

What changed and why

  • Reversed the incorrect financial edge and named the amount and deadline, preventing a later scene from assigning the debt to the wrong person.
  • Replaced an unsupported enemies label with separate gratitude and suspicion claims, preserving their different evidence and truth status.

A choice worth keeping

Keep Dain's false belief on the map. Removing every mistaken relationship would hide a motive; labeling its status makes it useful without treating it as truth.

Try it with fresh material

Original transfer material: [N1] Cook Amel borrowed a cart from courier Bea and promised to return it on Friday. [N2] Bea trusts mechanic Ciro to repair its wheel. [N3] Amel thinks Ciro owns the cart; Bea actually owns it. [N4] New arrival Della paid Bea to deliver food, but has not met Amel or Ciro. [N5] Della asks Amel to load the cart. No payment from Della to Amel is stated.

Draw four nodes and at least five directed labeled edges, then make a matching evidence table. Identify Amel's belief separately. Add Della last and check that none of the first three people's edges reverse. Deliver graph, table, and one sentence explaining your arrow convention.

Feedback for your attempt

  • Who must return the cart to whom? Read the verb with the arrow to test direction.
  • Does a request become an agreement in your map? Mark it as a request until acceptance is supplied.
  • If you inferred a new relationship, mark it as a suggestion rather than inventing a source ID.

Check before moving on

  • Every displayed edge should have a verb, direction, and source or explicit suggestion label.
  • A mutual edge needs evidence for both directions.
  • The graph and table should express the same claims even if their visual arrangements differ.

Use a tool with this method

Original relationship facts, graph text, and table authored by an AI agent. No historical people or real customer data are used. An independent AI agent completed the transfer exercise and archived its artifacts; no human reader testing is claimed. Material version: 2026-10-18.

Your story context · session only

Keep confirmed facts here, then choose what to use in another task. Refreshing or closing this tab clears this memory. Export a file to keep your work. API keys are never included.