Get the data

One table, 813,039 rows, one row per mandate (person × position × term). Public domain. No sign-up, no API key, no database to run — the Parquet answers queries straight over HTTP.

Version 1.0.0 · released 2026-09-01 · page rebuilt 2026-09-01

Hugging Face

Browse, search and query in place — or pull one file. The working copy, updated monthly.

mandates.parquet · 60 MB

Zenodo

The citable copy. Every version archived with a DOI, for papers that need a frozen reference.

DOI per release

GitHub Releases

Versioned files next to the pipeline that produced them, with SHA-256 checksums.

CSV · 82 MB gz

Quick start

DuckDB reads the Parquet over HTTP with range requests — this runs anywhere, downloads almost nothing:

SELECT person_name, position, start_date, end_date
FROM 'https://huggingface.co/datasets/rossigab/the-long-register/resolve/main/mandates.parquet'
WHERE country = 'PL' AND level = 'national'
  AND start_year <= 1935 AND (end_year >= 1935 OR end_year IS NULL)
ORDER BY position;
import polars as pl
df = pl.read_parquet("hf://datasets/rossigab/the-long-register/mandates.parquet")

One row, concretely

The grain, shown rather than described — machine-readable schema at schema.json, catalogue record at dcat-ap.json:

fieldvalue
statement_idQ8016-b5597e15-4207-53bc-2a5f-48cfa79196ce
person_nameWinston Churchill
person_qidQ8016
positionPrime Minister of the United Kingdom
position_qidQ14211
jurisdictionUnited Kingdom
countryGB
levelnational
start_date1940-05-10
end_date1945-07-26
parliamentary_groupnull
source_urlhttps://www.wikidata.org/entity/Q8016

Updates

The pipeline re-runs on the first of each month: discovery → fetch → normalise → validate, then an agent researches open anomalies (proposals only — it never writes to the data), and a release is cut if anything moved.

versiondaterowscoverage
v1.0.02026-09-01813,039683–2026files

What the record holds, by country

Each line spans a country's record, from earliest mandate to latest; spans reaching into antiquity are drawn from the year 0 (the true year is in the tooltip — Turkey's record begins 2400 BCE). Depth varies far more than the lines suggest: hover for counts. Coverage is Wikidata's coverage — absence of a row is not evidence an office was vacant.

Schema

Primary key statement_id — the Wikidata statement GUID. Full machine-readable versions ship with every release (schema.json, dcat-ap.json).

fieldtypedescription
statement_idstringWikidata statement GUID; stable primary key for the mandate
person_qidstringWikidata entity ID of the office-holder
person_namestringEnglish label of the office-holder
position_qidstringWikidata entity ID of the office
positionstringEnglish label of the office
countrystringISO 3166-1 alpha-2 of the primary present-day country
countries_allstringSemicolon-separated ISO codes incl. successor states of multinational polities
jurisdictionstringHistorical or present-day state the office belonged to
levelstringnational | supranational | subnational
jurisdiction_linkstringP1001 = office formally scoped to the jurisdiction (high precision); P17 = only country-of-origin known
start_datestringTerm start, ISO 8601 date, null if unknown
end_datestringTerm end, ISO 8601 date, null if in office or unknown
start_yearintegerSigned year of start; negative = BCE. Use this for filtering
end_yearintegerSigned year of end
parliamentary_groupstringParliamentary group / caucus for this mandate
electoral_districtstringConstituency for this mandate
parliamentary_termstringLegislative term this mandate belongs to
replaces_qidstringWikidata ID of predecessor in the office
replaced_by_qidstringWikidata ID of successor in the office
party_labelsstringPipe-separated parties of the person (person-level, not term-level)
party_qidsstringPipe-separated Wikidata IDs of those parties
sexstringSex or gender as recorded in Wikidata
birth_datestringDate of birth
death_datestringDate of death
birth_yearintegerSigned year of birth
sourcestringUpstream source; 'wikidata' for all rows in v1
source_urlstringResolvable URL for the person entity
fetched_atstringDate the record was retrieved
processing_versionstringVersion of this pipeline that produced the row

Read this before you use it

  • jurisdiction_link distinguishes precision: P1001 rows are offices formally scoped to a jurisdiction; P17 rows are only known to belong to the country and are a noisier population. Filter to P1001 for a high-precision subset.
  • level='subnational' rows (mayors, regional councillors) are included for completeness but are NOT the dataset of record; filter to national/supranational for the headline population.
  • party_labels is person-level, not mandate-level: a politician who changed party carries all their parties on every row. Use parliamentary_group for term-accurate affiliation where present.
  • Coverage inherits Wikidata's demographic and era biases: women and pre-20th-century figures are systematically under-represented relative to the historical record, and coverage density varies by country. Raw counts are not an unbiased sample of historical office-holding; weight or caveat accordingly.
  • Coverage is a function of Wikidata coverage. It is strong for heads of state/government across all periods and for post-1945 legislatures; it thins considerably for 19th-century and earlier legislatures, and is uneven between countries.
  • Multinational polities (Austria-Hungary, USSR, Ottoman Empire, Holy Roman Empire) are attributed to a primary successor in `country` and to every successor in `countries_all`. Aggregating on `country` alone will undercount the non-primary successors.
  • Dates before 1582 are proleptic and calendar systems vary by source; treat pre-modern dates as year-precision at best.
  • Absence of a row is not evidence that an office was vacant.

Questions agents and humans ask

What questions can this dataset answer?
Population-level questions about political office-holding: who governed a country in a given year, how long ministers survived in office, when women entered each parliament, how turnover moved around 1918 or 1989. It holds 511,969 national and supranational mandates for 250,846 people across 47 European states, one row per mandate (person × position × term).
Where does the data come from?
Every row is derived from Wikidata and carries a source_url resolving to the Wikidata entity it was read from, a fetched_at date, and the pipeline version that produced it. The pipeline, its validation rules and its open defect queue are public at https://github.com/Milziade21/the-long-register.
How current is it?
The register is rebuilt from source on the first of each month. The current version is v1.0.0, released 2026-09-01; this page was rebuilt 2026-09-01. Immutable versions are archived with DOIs on Zenodo.
Can I use it commercially, or without asking?
Yes. The dataset and pipeline are CC0 (public domain) — no permission, no attribution required, though citation is appreciated. Wikidata, the upstream source, is itself CC0.
A politician is missing — is that a gap in history or in the data?
In the data. Coverage is Wikidata's coverage: strong for heads of state and government in all periods and for post-1945 legislatures, thinner earlier. Absence of a row is never evidence an office was vacant. The best fix is to add the person to Wikidata — the next monthly refresh picks them up.
How are errors found and corrected?
A deterministic rule suite flags impossible dates, implausible ages, overlapping holders and unmapped jurisdictions (2,775 findings currently open — published, not hidden). Corrections are applied deterministically from a reviewed file, and every correction is recorded in the public changelog.

Related datasets

The Long Register does not replace the specialist datasets — it complements them with span and grain. Depending on the question, you may want:

  • Archigos — heads of state and government worldwide, 1875–2015, with exit modes (Goemans, Gleditsch & Chiozza).
  • ParlGov — parties, elections and cabinets for established democracies since 1945.
  • WhoGov — cabinet members worldwide since 1966 (Nyrup & Bramwell).
  • Party Facts — the party-ID crosswalk between political datasets.
  • EveryPolitician — mySociety's archived project; its effort continues inside Wikidata, which this register reads.
  • IPU Parline — authoritative current composition of every national parliament.
  • European Parliament Open Data — MEPs and EP activity, from the institution itself.

About the project

Built from Wikidata via the QLever SPARQL endpoint by a fully open pipeline: deterministic rules decide what is wrong, a language-model agent may propose what is right, and nothing an agent proposes enters the data without either a human or a narrow, audited auto-promotion rule. Every row carries its source URL and the pipeline version that produced it. Code, validation rules and open anomalies are on GitHub.

Cite it as:

Rossi, G. (2026). The Long Register: European political mandates
since state foundation (v1.0.0) [Data set]. Zenodo.
https://doi.org/10.5281/zenodo.22236882

Corrections, questions, suggestions

Three routes, in order of usefulness:

  • The fact is wrong? It is probably wrong in Wikidata — fix it there, and the correction flows into the next monthly release and to every other user of the source.
  • Wikidata is right and this dataset is wrong? That is a pipeline bug — file a correction or a coverage gap on GitHub, with a source.
  • Anything else — the form below opens an email draft.