Prime Radiant / Cards into a Graph

From cards to a queryable graph

A graph that respects when things happened, and where.

A Machine Card is a long-form description of one civilizational machine — its inputs, its outputs, the other machines it couples to, where it lives, when it was active, how it evolved. The corpus of ~485 such cards is the project's source of truth. This page explains how that corpus is turned into a graph the reasoning model can walk through — and, more importantly, what the graph refuses to do.

The two refusals are the load-bearing ones. The graph refuses to let later events influence earlier ones. And it refuses to treat geographically and temporally distant machines as if they were neighbours just because their descriptions sound similar.

1 · The unit of curation

What a Machine Card is

Each card is a richly-typed document describing one machine as a class, not as a particular instance. Joint-Stock Company (Mercantile form, 1602) is a card; the VOC and the EIC are noted on it as historical instances. Venice as Maritime-Trade Republic (1500) is a card; the lagoon city's Arsenal and Rialto banking circuit are its constitutive sub-machines.

A card carries five families of typed fields. The first describes what kind of thing the machine is — its substrate, its plasticity, its motor, its position in the world-system. The second is throughput: what flows in (silver, charters, attention, labour), what flows out (spice, dividends, narratives, software). The third is coupling: an explicit list of other machines this one depends on, supplies, competes with, or supersedes. The fourth is phase snapshots: a series of dated observations capturing how the machine looked at Dawn, Day, and Dusk of its parent era. The fifth is provenance: every claim is tagged with its source and a confidence class.

None of that is unusual on its own. What matters is that every typed field becomes a relationship the system can reason over — and continuous values stay continuous all the way through.

2 · The conversion

How a card becomes part of the graph

A card is itself a node. So is every property the card holds: the places it touches, the sources it cites, the commodities that pass through it, the tool generations it uses, the era-phase landmarks it sits inside. A coupling between two cards is an edge — and so is a card's link to its lineage, its successor, its location.

Two cards that share a property are joined through that shared node. The Amsterdam Bourse and the Joint-Stock Company both cite the Dutch Republic as a chartering polity; the Republic is one node, with both cards attaching to it. Venice and Genoa both hold :wallerstein_position=core; that property is one node, not two. Every shared property quietly stitches the graph together along a meaningful seam.

Continuous values are preserved exactly as edge weights. A card holding opp_strength: 0.88 generates an edge to the opp_strength state-variable node carrying weight = 0.88. Coupling strengths between machines work the same way. Nothing is bucketed into "low / medium / high"; the numbers stay numbers, and the graph's walks use them directly as the probability of stepping across each edge.

A Machine Card with its typed fields, becoming a node connected through shared property nodes to other cards. MACHINE CARD Venice as Maritime- Trade Republic (1500) place_id: venice wallerstein_geo: core motor: pull pace_layer: commerce opp_strength: 0.88 couplings: → levantine-trade-circuit → rialto-banking sources: Braudel, Lane t_active: 1000–1797 shred place:venice wallerstein:core motor:pull pace:commerce statevar:opp_strength author:braudel card:levantine-trade w=0.88 Genoa as Maritime Trade Republic (1450) Hanseatic League (1356) Joint-Stock Company (Mercantile, 1602) Amsterdam Bourse (1602) Levantine Trade Circuit (1400)
One Venice card on the left becomes a hub of property nodes in the middle; those property nodes attach to other cards on the right. The graph isn't a list of cards with descriptions — it's a fabric where every typed field is a thread, and shared threads connect cards across centuries and continents.

3 · The centrepiece

Time topology

Most knowledge graphs treat time as metadata — a year tag on an edge. Prime Radiant treats it as a hard constraint on which edges can be traversed at all. Four rules, each load-bearing.

3.1   Arrow of time as a hard invariant

An edge from machine A to machine B carries an active window — the years during which the coupling was actually in effect. A walk through the graph can only step across an edge if its current time is inside that window. There is no path that travels backwards. The graph refuses to load data that would create one: if a card declares a coupling that pre-dates either endpoint's existence, ingest fails closed with the violation written to an error log.

This is not a guard-rail bolted on after the fact. It is the only way a graph of civilizational machinery can be coherent. The Roman Catholic Church cannot, in any reasonable sense, have influenced the Roman Republic. Stating otherwise is not a controversial interpretation; it is a typo.

3.2   Diffusion takes time

Ideas don't teleport. Zero was discovered in India in the 6th century, but it didn't reach European mathematics until the late 12th — six hundred years later — because the intermediate machines had to exist first. The Islamic mathematical tradition had to receive and extend the Indian work. The Iberian translation movement had to render the Arabic into Latin. The medieval European universities had to incorporate the new notation into their curricula. Each of those is a card. The path from Aryabhata to Fibonacci runs through them.

The graph's walks reproduce this. They can only step forward in time, and only through intermediate machines that were actually present when the step was taken. A walk that tries to skip from 6th-century India to 12th-century Italy without passing through a contemporaneous intermediary simply has no edge to traverse. The history of diffusion is built into the topology, not described in narrative around it.

3.3   Coupling strength varies over time

The Venetian spice trade's coupling to the Levantine markets was overwhelming around 1450 and substantially weaker by 1700. A single coupling edge carries not one strength but a series of (year, strength) samples; queries that ask "how strong was this coupling in 1583?" interpolate between the nearest known points. The same edge can therefore be active across centuries while its weight migrates from 0.9 to 0.2 without anyone needing to declare separate "early" and "late" couplings.

A coupling edge between Venice and the Levantine trade circuit, with strength samples plotted from 1450 to 1700, showing piecewise-linear decay. 1.0 0.5 0 coupling strength 1450 1500 1550 1600 1700 0.92 0.88 0.62 0.34 0.20 1583 → 0.48 (interpolated) venice-1500   →   levantine-trade-circuit   (kind: :depends_on)
One coupling edge, five samples, two and a half centuries of decay. A query that needs the strength at 1583 reads off the interpolated point; the original samples remain visible as the spine of the curve.

3.4   "Stayed current" is detectable

The Roman Catholic Church and Romanticism were both transformative forces of the second millennium. One still wields enormous influence in 2026; the other does not. The graph distinguishes them through a currency index derived from four signals: how recently each machine introduced a new tool generation, how recently it underwent an organisational reform, how many of its instances are still operating, and how recent its catalogued adaptation events are. A high currency index marks a machine that has kept reorganising itself into the present. A low one marks a machine whose internal clock effectively stopped.

High currency · still adapting

Roman Catholic Church (Tridentine, 1545) — a successor card (the post-Vatican II form) inherits the lineage and continues to register new tool generations, organisational reforms, and a dense field of active instances. The 1545 card is a historical backbone; the live form attaches to 2026 actors.

Low currency · energetic only as residue

Romanticism — no new generations of constitutive tools, no reforming organisational form, no contemporary instances reorganising under its name. The energy survives in cultural inheritance, but the machine itself does not.

From this index, two views of the same graph emerge naturally. A current-influence view walks only edges that are active right now and only starts walks from machines that are themselves currently active — useful for asking who is shaping the present. A historical-causal view walks the full history with the arrow-of-time constraint still in force — useful for asking how the present came to be.

3.5   Defunct-but-influential machines

The French Revolutionary State dissolved in 1799, but its legal templates — codified rights, written constitutions, secular administrative structures — still propagate into modern law. The General Data Protection Regulation and the governance protocols of ICANN both inherit, transitively, from the Napoleonic civil-code template. The graph handles this asymmetrically. Walks can land on the French Revolutionary State as a destination, arriving via the inverse-inheritance edges that modern cards declare back toward it. But fresh walks cannot originate there, because it is not a 2026 actor. The card is reachable; it is not a starting point.

This asymmetry matters. It is the difference between "what is this modern institution standing on?" and "what is this 18th-century state currently doing?". Only the first question has a useful answer.

4 · The other axis

Spatial topology

Places are first-class nodes too. Venice, Amsterdam, Toledo — these are not just text labels attached to cards. They are nodes that every geographically-co-located machine attaches to. A card with a place_id generates an edge to that place node; a card with only latitude and longitude is snapped to a coarse one-tenth-degree grid and joins whatever else lives in that cell.

This matters because diffusion is geographic as much as it is temporal. The Iberian translation movement is a card; Toledo is a place node; Gerard of Cremona, the Andalusi mathematical tradition, the Castilian crown's chartered Schola Traductorum are all cards that attach to that place. When the graph asks how mathematical knowledge moved from the Arabic world into Latin Europe, the answer is not via a vague cultural diffusion; the answer is through this specific node, reachable in walks that pass through it.

The graph does not auto-derive place hierarchies (Toledo is not automatically a child of Iberia is not automatically a child of Europe). Those relations exist only when curators put them there. The point is to surface real geographic seams, not to fabricate them.

5 · What this enables

Questions the graph can answer

The whole point of the time and topology rules is that they make certain queries cheap and certain false answers impossible. A few examples.

"What should we expect to emerge from the current Divergence-Day machines as the Liveness Machine moves into Dawn?"

Walk the graph forward from the present DM-Day cards in time-respecting steps, restricted to edges that have been active in the last few decades. Then, for each emergent neighbourhood, search the historical-causal view for structurally similar precedents in the MM→DM transition of roughly 1650–1800. Precedent is not prediction, but it is a strong signal of what to look for.

"Which historical machine is most structurally similar to Wikipedia?"

Search by property bundle — the configuration of inputs, outputs, couplings, and state-variable readings — rather than by description text. The match returned is not whichever card uses the most overlapping words; it is whichever card occupies a similar position in the property graph. The encyclopaedic projects of the 18th century, the open-content licensing of 20th-century scientific commons, and the medieval scriptoria all surface as candidates with different signatures.

"Is the Roman Catholic Church still influential in 2026, and to whom?"

Query the current-influence view; list the contemporary cards with inbound couplings from the live successor of the Tridentine card. The answer is concrete: a set of named modern institutions and the kind of coupling each one declares.

"What diffusion path connects double-entry bookkeeping in 14th-century Italy to modern accounting software?"

Traverse temporally-monotone edges from the Pacioli-1494 card forward — through the Dutch mercantile circuit, the chartered-company audit practices, the late-19th-century professional accountancy guilds, the post-war ERP form — to current-day software platforms. The path is constructive; each link is an edge the curators authored, with its own active window and its own provenance.

6 · Honest limits

What this is not

It is not a forecasting oracle. The graph is hand-curated; its predictions are bounded by what the curators chose to include, how they typed it, and which historical work they relied on. Confidence flags are attached at the field level, but no amount of structural reasoning will rescue a card that mischaracterises its sources.

It is not a full historical simulation. Each card is a class-or-instance abstraction at phase-snapshot granularity. The resolution is coarse on purpose. A card is good for asking what kind of machine the Venetian Republic was; it is not the right place to ask what the Council of Ten voted on in March 1583.

The reasoning model reads the graph through four different lenses simultaneously: a semantic lens over the prose, a structural lens over the state variables, a property-signature lens over the typed fields, and two positional lenses over the time-respecting graph itself. The four lenses surface different signals on purpose. When they agree, the signal is strong. When they disagree, that disagreement is information — usually the most interesting information available — not noise to be averaged away.

The graph's refusals are the work. What it will not do is what makes what it does do trustworthy.

For the full technical design — predicate vocabulary, node taxonomy, edge attributes, the walk algorithms, the embedding channels, the canonicalisation rules, and the query interface — see docs/CARD_TO_KG.md in the project repository.