The ladder as one graph
The column view is good at one path and bad at everything else: it shows you the chain you are on and hides every other relationship in the structure. This page draws the whole thing at once, so the parts that are not a tree become visible — the cross-references that jump between chapters, and the units that two different findings both touch. Drawn with Cytoscape.js, vendored into this site rather than loaded from a CDN, because a page about traceable structure should not depend on somebody else's uptime.
flags each unit it involves, with flagged_by as the inverse. The diamonds in the graph are findings. This is the book's own rule applied to a picture of itself, and it is why the contradictions read as structure rather than as annotation.Query the paths
Tracing answers how do these two connect? This answers the other question: show me every route shaped like this. A pattern is a starting filter and then alternating edge and node steps, and the matches print as sentences using each edge's verb or its inverse depending on which way the route walks it. Cycles cannot spin (each path keeps its own visited set) and the result is capped at 300 — and it says when it hit the cap, because a query that silently truncates is worse than one that refuses.
Build a pattern, or pick one above.
What is true, precisely. The corpus's path-query language is seventeen specific queries across five tiers over the semantic graph — risks, facts, provisions, obligations. Nothing executes those, and this page does not: it is a generic pattern matcher over this book's own ladder and concept graph, which is a much smaller and much easier problem. A demonstrator over a meta-graph is not the language the book proposes, and calling it one would be the overclaim the honesty table exists to prevent.
The wording this supports, offered for agreement rather than applied, since the book changes only by agreement: "No executing path-query language over the semantic graph: the seventeen queries across five tiers are written and nothing runs them. A generic path-pattern matcher does run on this site, over the book's own ladder and concept graph, and it is a demonstrator rather than that language." Recorded as review r004 decision D6.
What to look for
Three things are visible here that the columns cannot show.
- The book is much less of a tree than its table of contents suggests. Forty-two cross-references between chapters were measured from the markdown itself, not asserted: the compression tree has seventeen edges at that level, and the text has forty-two more running sideways across it. The chapters most linked-to are the argument chapters, which is the shape you would want, but the glossary is the single busiest source, which is not what a table of contents would predict.
- Where two findings touch the same unit. Turn everything else off and leave the findings on: chapter 12 and chapter 7 are pulled together by the database contradiction while chapter 12 is also held by the cross-estate finding about edge counts, so one unit carries two independent problems. That co-incidence is invisible in a list of findings and obvious in a picture.
- Colour by evidence, and the shape of the argument changes. The units with real evidence cluster in the proof chapters; the argument chapters run amber. That is not a defect — a book of arguments should have argued nodes — but it is the map review r002 item 6 asked for, arriving early and at a different granularity.
For an agent
This page draws /altitudes/data/altitudes.json and adds nothing to it. Two arrays matter here: cites, chapter-to-chapter references extracted from the book's markdown with a weight per pair, and findings, each with a where array of the units it involves. The graph reifies each finding as a node with flags / flagged_by edges rather than drawing a symmetric edge between units, because this project's grammar bans self-inverse edges; if you rebuild this graph elsewhere, keep that shape. The library is vendored at /assets/vendor/cytoscape.min.js (Cytoscape.js 3.30.2, MIT).