Graph explorer

One subject, only its rows.

The graph explorer opens any .graph.json. Ask about one node, and the graph reads just that node's rows of every table that holds it, through an index of plain files.

An index of tables by subject

Byte ranges, not whole files.

The importer writes the index from the tables it stored. A query reads the manifest, the key's shard, then the rows: at most 8 MB and 1,500 reads in all.

How a graph query reads one subject's rowsA graph query names a node, such as iso3:USA. The graph asks the index for every alias of it, geo:US and iso2:US. It reads the manifest of public datasets, then the shard of each key in each dataset, about 64 KB, then each table's rows by HTTP range reads, at most 8 MB and 1,500 reads, shared so every table that holds the subject is read. A table whose size or hash differs from its index is reported as a problem, never as rows.node=iso3:USAand its aliasesgeo:US, iso2:USindexes/world--model/public.c-sva row a publicdataset<dataset>/key-s.csvkey → file, byteranges; 64 KBshardsThe tables'rowsRange reads, ≤ 8MB, ≤ 1,500Nodeseach value with itsfileHow a graph query reads one subject's rowsA graph query names a node, such as iso3:USA. The graph asks the index for every alias of it, geo:US and iso2:US. It reads the manifest of public datasets, then the shard of each key in each dataset, about 64 KB, then each table's rows by HTTP range reads, at most 8 MB and 1,500 reads, shared so every table that holds the subject is read. A table whose size or hash differs from its index is reported as a problem, never as rows.node=iso3:USAand its aliases geo:US, iso2:USindexes/world-model/public.csva row a public dataset<dataset>/keys.csvkey → file, byte ranges; 64 KB shardsThe tables' rowsRange reads, ≤ 8 MB, ≤ 1,500Nodeseach value with its file

The United States, in 9 seconds.

CommandAGI's own account asked its world-model graph on dev about iso3:USA. The answer took 9.1 s on the stored read (15 s on the first). It is 5 nodes, 4 edges and 485 values of the country's history from 16 tables, each value with the file it came from.

GET /v1/graphs/query?path=world-model.graph.json&node=iso3:USA&depth=1real answer · dev · 2026-11-04
node iso3:USA       United States of America  country  aliases geo:US, iso2:US, isonum:840
node fred:DGS10     Market Yield on U.S. Treasury Securities at 10-Year Constant Maturity  describes_location
node fred:CPIAUCSL  Consumer Price Index for All Urban Consumers: All Items in U.S. City Average  describes_location
node fred:CPILFESL  Consumer Price Index for All Urban Consumers: All Items Less Food and Energy…  describes_location
node fred:PCEPI     Personal Consumption Expenditures: Chain-type Price Index  describes_location
history 485 values  first 2000-01-01 usda:sow_slaughter 3054  ← statistics/agriculture/usda/usda_fas_psd/sow_slaughter.csv
problem sameAs: one wikidata id is the alias of two company records

What the answer carries

Every value names its file.

The query, its answer and its time are kept in case-studies/graph-explorer/stats.json in CommandAGI's Drive.

Evidence to the raw line

An edge carries its record's evidence: the dataset, the stage and its hash, and the line in the raw input.

Problems, not wrong rows

A conflict, such as one alias of two records, comes back as a problem beside the answer. Nothing is merged to hide it.

A cap that is shared

The read budget is split across the tables that hold the subject. In this answer all 485 history values came from 16 USDA tables, and the FRED series came as their own nodes.

Ask the graph about anything.

Open a .graph.json in the workbench, or call graph_query from any MCP client.