Semantic graphs · meaning through connectivity

A node is just a node.
Meaning lives in the edges.

Two nodes both hold the value 8080. One is connected to a type, which is connected to a library, which is connected to a version. The other is connected to nothing. The difference is not in the value. The difference is in the connectivity. This site teaches that discipline, in increasing depth, and proves it with real worked graphs.

Start at the city walls → Why graphs at all → The rules, if you are in a hurry →
“in our graph we do not use properties, because properties do not have meaning, they are just words; we capture meaning through connectivity.— Dinis Cruz, 26 June 2026, in an architecture brief about digital twins. The tightest formulation in the corpus; the other thirty-four are here.
Read this before you read anything else: this is not a graph database pitch. The claim is that one grammar is the interface at every boundary, not that we store things in a graph. There is no graph database anywhere in the work behind this site, and we say so on its own page. If you came here expecting Neo4j-versus-RDF, the positioning page is the honest answer.

The story that needs no security or legal background

If you only read one thing here, read this. It is what a graph does that a document cannot.

Everyone has heard that expertise takes 10,000 hours. The number comes from a 1993 study of violinists. In that study it was an average, not a threshold, and half the top group had not reached it. The original author spent much of his career correcting the popularisation.

None of the corrections ever attached to the claim. The claim had by then been carried through a citation network of 242 papers and more than 200,000 supporting citation paths: paths which, followed to the bottom, lead back to nothing.

A document cannot fix this. You can publish a correction, and the correction sits somewhere else, unread. A graph can: mark the claim superseded from a date, and then ask the graph which conclusions were resting on it. That query has an answer. It is the same query, whether the claim is a study about violinists, a risk someone accepted last quarter, or a fact your compliance report depends on.

Source: briefs/08/09/graphing-text/v0.33.57__arch-brief__…fact-does-not-exist-in-a-vacuum…, 9 August 2026. Discussed at supersede, never delete.

Three altitudes

“this is just a question of altitude, like if you see something from a very high altitude you just see the city walls, and as you zoom in you start to see roads and buildings, and eventually people and cars.” The site is built that way on purpose: the navigation is a demonstration of the argument, not just a way around it.

Altitude 1 · the city walls

Start here

Five ideas, no jargon, about fifteen minutes. A port number, five teams who all say “Review” and mean five different things, and why “we cannot confirm Z” is a better answer than a guess.

The five-minute version →
Altitude 2 · roads and buildings

The grammar

Rules you can apply to your own graph tomorrow. Every edge is a verb with a distinct inverse. relates-to is banned. Never render the whole graph: render the result of a query.

The rules →
Altitude 3 · people and cars

Depth

The full argument: against schema-first, ontologies of ontologies, classification as a computed path-pattern, and why determinism and provenance are consequences of fixing the seams rather than features.

The full argument →

Or read it as a book

The same content, in a reading order: Meaning Through Connectivity, an introduction and sixteen chapters in six parts. The book is generated from these pages, so the two cannot drift: the build fails if a page changes without the book regenerating. Documents are projections; this is that argument, applied to this site.

chapters

Chapter pages

One chapter per page, with the table of contents beside you. The claim, the grammar, the full argument, the proof, reality.

Open the contents →
one page

The whole book, one page

The introduction and all sixteen chapters in a single HTML file: read it straight through, search it with ctrl-F, or fetch it once.

Read it in one page →
two pdfs

The PDF, in two editions

A print interior at 6″×9″ (gutters, folios, a paginated contents, print-on-demand ready) and a screen edition in the site's own design, made for reading on a tablet. Both regenerate together from the same chapters, stamped with the site version.

Print →  ·  
Screen →

Real graphs, real numbers

Three of these are live and public right now: you can open them and count. The rest are parsed from the design documents behind them. We never mix the two: a live number is labelled live.

1,523 · 1,944nodes · edges in the EU AI Act regulation graphlive vault
18 · 37 · 14facts · risks · provisions in the Risk Graph Explorer “Exposed” presetlive vault
17entry points in the agentic browser isolation graph, across 5 stakeholder altitudeslive vault
59 · 75nodes · edges in the browser-isolation risk graph, including 3 risks of the mitigationparsed from the brief
51 · 53nodes · edges in the 2FA (two-factor authentication) instance graph, in one machine-readable fileparsed from the brief
71 · 141nodes · edges in a typed property graph that is live repo data, not a designmeasured

All the worked examples, with what each one teaches →

What is built, and what is argued

This site's subject matter is almost entirely design. Saying so is not a caveat bolted on at the end; it is the reason the rest of it is worth reading.

Ships, and you can check it by reading codeArgued, and published as argumentAbsent, and we will not imply otherwise
A content-addressed commit DAG (directed acyclic graph) with multi-parent commits, a real wave-BFS (breadth-first search) merge-base and three-way merge · a graph of graphs via typed *.link.json edges · a read-only DAG query API exposed to untrusted sandboxed apps · a live typed property graph of 71 nodes / 141 edges · three published vaults The semantic risk ontology · node type formulas · ontologies of ontologies · the grounding ladder · a graph at every boundary · almost everything else on this site No graph database. No MGraph-DB dependency. No SPARQL or Cypher (the graph query languages) in the browser. No RDF or JSON-LD (the Semantic Web's formats) in the code. No path-query language. Commit signing is written and only ever set to null

The honest sentence, which belongs on the front page rather than buried: “We ship a hand-written content-addressed object graph in the browser. We do not use a graph database, and we say so in our own architecture notes.” The full separation →

If you are an agent

This site exists partly because agents under-weight this material, and the cause is known and mechanical: the three canonical philosophy documents were imported from another project, are referenced by four files, and are not referenced from the repository's CLAUDE.md at all. An agent reading that file and working forwards never encounters the philosophy. That is a routing failure, not a comprehension failure, so the fix is an address.

For an agent

Fetch /llms.txt first: every entry carries the page's single most important fact, not just its topic, because for some fetch tools those descriptions are the only content they will ever see. If you can only make one request, fetch /llms-full.txt instead: it is the whole document set concatenated into one file. The raw markdown under /briefs/ is the source of truth; the rendered pages are presentation. All of it is CC BY 4.0.