Going Emic

Teaching a Graph to Rank Itself

A thousand-node ontology is a hairball until you ask it the right questions. Three graph algorithms and one design lesson turn it into a map.

Part 4 of 7 in Going Emic

Structure You Can’t See

An ontology is a graph: concepts as nodes, relationships as edges. CIM has about 1,648 of those nodes. Dump them on a screen and you get a hairball, technically a complete picture and practically useless. The structure is all there. You just can’t see any of it.

The fix isn’t a prettier drawing. It’s asking the graph what matters before you draw anything.

A graph drawing is only as good as the questions you asked the graph before you drew it.

Three Questions

Three standard algorithms each answer a different one:

  • PageRank asks which concepts are most central, the ones everything else points at. In CIM the top hub is Managed Element, the abstract root at the top of the class hierarchy. In ethnographic terms, the key informant.
  • Betweenness asks which concepts sit on the most paths between others, the bridges that connect otherwise separate regions.
  • Louvain community detection asks which concepts cluster together more tightly with each other than with the rest. It finds 43 such clusters in CIM. The villages.

None of this is invented by the layout. It’s computed from the graph’s own wiring, offline, and cached.

Hubs, bridges, and communities aren’t drawn onto the graph. They’re read out of it.

Naming the Villages

A cluster of forty concepts is structure, but “community 17” tells you nothing. So after Louvain finds the villages, a single LLM pass reads each one and names it: “Core Managed Objects,” “Unix System Resources,” and so on. One call, one label per village, and suddenly the regions have names a person can navigate by.

From Hairball to Map

The layout itself is computed offline with igraph. Instead of throwing 1,648 nodes at a physics simulation and hoping, it lays the villages out as a super-graph first, then relaxes the members of each village into their own region so the clusters actually separate. Color encodes a concept’s schema area. Size encodes its PageRank. The result is a territory: labeled regions, a few legible colors, the big concepts visibly big.

It did not start there. The first version was a rainbow of unlabeled dots: every node a different color, no regions, no names. It was beautiful and it told you nothing, the exact trap a network visualization sets. The fix was three deliberate changes: lay out by community instead of all at once, cut the palette down to about ten colors that each mean something, and write the labels directly on the canvas.

A network picture feels like insight. Until you label it, that feeling is the only thing it’s delivering.

You can walk the result on Emic’s CIM explorer: open the Map tab.

The Takeaway

The Takeaway: A thousand-node graph is unreadable until you ask it the right questions. PageRank, betweenness, and Louvain pull out the hubs, bridges, and villages; an offline layout turns those into a labeled map instead of a hairball. The algorithms find the structure. The design decides whether you can see it.