Data
The full Uplink archive — 1,838 articles from 145 issues, October 1990 through March 2007 — is available as JSON. It documents how computer-assisted reporting was actually practiced as it evolved: the tools, the data sources, and the stories, issue by issue for sixteen years.
Downloads
data/uplink-articles.json— the complete corpus in one file, including full text (~8 MB). Wrapped as{name, description, publisher, source, generated_at, count, articles: [...]}.article/<slug>.json— one JSON file per article, alongside its HTML page, with related-article links added (example). Every article page links to its JSON version.
Field dictionary
| Field | Type | Description |
|---|---|---|
id |
string |
Permanent identifier, minted once into the corpus. Never changes, even if the headline is later corrected. |
slug |
string |
URL slug derived from year, month, and headline. Currently identical to id, but regenerated at build time — use id for longitudinal work. |
url |
string |
Canonical URL of the article page on this site. |
year / month / monthNum |
number / string / number |
Issue date. monthNum is 1–12 for sorting; some issues cover two months (e.g. "July/August"), in which case monthNum reflects the first. |
headline |
string |
Article title as printed. |
kicker |
string |
Section label or eyebrow above the headline (e.g. "ENERGY"). Often empty. |
author_name |
string |
Byline name. Empty for unsigned items (about a third of the corpus — many short listings ran without bylines). |
author_title |
string |
The author’s job title only. |
affiliation |
string |
The author’s publication or organization. |
summary |
string |
One-paragraph abstract, generated during archival processing. |
keywords |
string[] |
Free-text tags assigned during archival processing. |
topics |
string[] |
One to three entries from a controlled 12-topic taxonomy (see data/taxonomy.json in the repository). |
technologies |
string[] |
Software, hardware, formats, and services mentioned in the article, normalized against a controlled vocabulary (data/technologies.json) and alias map (data/technology_aliases.json). Useful for tracing tool adoption over time. |
full_text |
string |
Complete article text, OCR-extracted from the original scanned PDFs. Occasional OCR artifacts remain. |
provenance |
object |
How the record was produced: extracted_by (extraction model or "pre-v2" for legacy records), extracted_at, and verified (whether the extraction passed anchor checks against the source text). |
similar |
{slug, score}[] |
Per-article JSON only: top five related articles by TF-IDF cosine similarity, computed at build time. |
Example
Count technology mentions by year with curl and jq:
curl -s https://dwillis.github.io/uplink/data/uplink-articles.json \
| jq -r '.articles[] | .year as $y | .technologies[] | "\($y) \(.)"' \
| sort | uniq -c | sort -rn | head
Notes for researchers
- Use
idas the stable key when tracking articles across corpus revisions. topicsandtechnologiesare controlled vocabularies;keywordsare free text.- The underlying per-issue source files, extraction pipeline, and data-quality report live in the GitHub repository. Original publication: NICAR (National Institute for Computer-Assisted Reporting).