Personal notebook version · 17 October 2022
A rail project.
Three connected layers.
A rail scheme brings together a proposed station, faster trains, carbon ambitions, construction work and organisations with different concerns. How can these kinds of information stay distinct while their connections remain visible?
Lawrence’s small Py3Plex notebook explores that question through objectives, stakeholders and scope. This guide, dated 1 October 2026, reads its original saved pictures and source.
← Notebook examples in the Library · Processes and relationships
Keep the kinds of information visible
- Objectives: a carbon ambition (
sustain_carbon), faster trains, a new station and a new construction method. - Stakeholders: town council, train operator, safety board and train manufacturer.
- Scope: civil works, new track, in-cab signalling, new trains and telecoms.
These are the notebook’s categories: its objectives include both aspirations and proposed choices. Separating the layers helps a reader distinguish what the scheme seeks, who is involved and what might be built.
Follow one connection across the layers
The source records new track → carbon ambition (sustain_carbon) → town council: scope connects to an objective, then to a stakeholder. This gives us a small chain to inspect without turning the three kinds of thing into one.
The arrows alone do not establish carbon savings, council endorsement or a causal relationship. Their project meaning still needs an explanation; the notebook supplies connections rather than that evidence.
What does a narrower view leave out?
sustain_carbon, restricted to the objectives layer. The other nodes are new_station and New_construction_method.This “ego” view keeps three nodes and two arrows. It excludes all scope and stakeholder connections, including the town council from our earlier chain. Faster trains is also absent: it is not an immediate outgoing neighbour. The smaller picture is easier to inspect, but answers a narrower question.
Reading the original data carefully
The source contains 14 nodes and 27 directed edge records. A misspelling, Train_manfacturer, creates an extra manufacturer node. The new-trains → faster-trains link appears twice with weight 0.9; new-trains → safety-board has parallel links weighted 0.7 and 0.9.
Weights have no documented units or common scale: objective links use 5, 7 and 10, while others use 0.1–1. They are not established probabilities or influence scores. The saved “9 unique node IDs” statistic counts only nodes with outgoing edges because of a library helper defect; there are 14 distinct names.
These details remain in the original. Neither the data nor the pictures have been silently corrected.
Read the notebook
Inspect the saved notebook and its edge lists →
This is Lawrence’s hand-entered example in a fork of the Py3Plex library, rather than an upstream demonstration. The two pictures are unchanged notebook outputs. The notebook was not rerun for this guide; present-day execution is unverified. It illustrates a representation, without calculating a schedule or validating a stakeholder decision.