CoolFace
Datasetpublic

incrediblecrab/crs-constitution

US Constitution Annotated (Congressional Research Service) The Constitution of the United States of America: Analysis and Interpretation, which the Congressional Research Service (CRS) prepares and the United States Congress prints as a Senate Document: every edition and supplement that GovInfo holds, with the full text of each part of the book and GovInfo's record of it. Nothing here is edited by hand. The pipeline, its tests and its schedule are in… See the full description on the dataset page: https://huggingface.co/datasets/incrediblecrab/crs-constitution.

sourceHugging Faceotherupdated 4h agoView on Hugging Face
1likes83downloads
Dataset Card

US Constitution Annotated (Congressional Research Service)

The Constitution of the United States of America: Analysis and Interpretation, which the Congressional Research Service (CRS) prepares and the United States Congress prints as a Senate Document: every edition and supplement that GovInfo holds, with the full text of each part of the book and GovInfo's record of it.

Nothing here is edited by hand. The pipeline, its tests and its schedule are in github.com/incrediblecrab/crs-service-products, and this card is rendered from manifest.json in the same commit.

Status

495 of 495 units (100.0%) as of 2026-09-26T00:29:11Z UTC, when GovInfo last listed 495. 495 rows have text. 0 units failed 3 times and are retried every 24 hours; their errors are in manifest.json.

Last complete sync: 2026-09-25T17:39:04Z UTC.

PackageRowsWith textListedComplete
GPO-CONAN-1992494949yes
GPO-CONAN-1996111yes
GPO-CONAN-1998111yes
GPO-CONAN-2000111yes
GPO-CONAN-2002484848yes
GPO-CONAN-2004111yes
GPO-CONAN-2006111yes
GPO-CONAN-2008111yes
GPO-CONAN-2010111yes
GPO-CONAN-2012494949yes
GPO-CONAN-2013494949yes
GPO-CONAN-2014494949yes
GPO-CONAN-2014-SUPP111yes
GPO-CONAN-2017494949yes
GPO-CONAN-2018-SUPP111yes
GPO-CONAN-2020-SUPP222yes
GPO-CONAN-2022434343yes
GPO-CONAN-2024-SUPP111yes
GPO-CONAN-REV-2014494949yes
GPO-CONAN-REV-2015494949yes
GPO-CONAN-REV-2016494949yes

Use

python
from datasets import load_dataset
conan = load_dataset("incrediblecrab/crs-constitution", split="train")
sql
-- DuckDB, straight from the Hub: the parts of the newest edition, in the book's order
SELECT sequence, subsequence, title, pages FROM 'hf://datasets/incrediblecrab/crs-constitution/data/*.parquet' WHERE kind = 'edition' AND date_issued = (SELECT max(date_issued) FROM 'hf://datasets/incrediblecrab/crs-constitution/data/*.parquet' WHERE kind = 'edition') ORDER BY sequence, subsequence;

Files

  • —data/{package}.parquet: one row per unit of one GovInfo package, sorted by id. A unit is a granule, GovInfo's part of a book, or a whole package that GovInfo does not split into granules (most supplements).
  • —manifest.json: per package, the row count, SHA-256, rows with text and whether it is complete; failed units with their errors; the last listing; the last 20 runs.

Schema

ColumnTypeDescription
idstringGovInfo's granule id (GPO-CONAN-2022-8), or the package id for a package without granules (GPO-CONAN-2024-SUPP)
package_idstringThe GovInfo package: one printed edition or supplement
package_titlestringThe package's title as GovInfo's collection listing gives it
kindstringedition or supplement, from the package title
titlestringThe granule's title, a part of the book such as "Article I - Legislative Branch"; for a package without granules, its title
sequenceint32The granule's number in its package (8 in GPO-CONAN-2022-8); null for a package without granules
subsequenceint32For a granule under a heading, its number there (1 in GPO-CONAN-1992-9-1); else null
date_issuedstringGovInfo's dateIssued (YYYY-MM-DD)
pagesint32Pages in the PDF, as pdftotext counts them
textlarge_stringThe PDF's text layer, pages separated by form feeds, so page n is text.split("\f")[n - 1]; null when the PDF has no text layer
urlstringThe unit's page on govinfo.gov (the record's detailsLink)
pdf_urlstringThe GovInfo API link the PDF was fetched from; the API needs an api.data.gov key
pdf_sha256stringSHA-256 of the PDF's bytes
updated_atstringThe package's lastModified when this row was written. A changed value triggers a re-fetch; one that finds the unit unchanged keeps the row and records the new value in manifest.json instead
metadatalarge_stringGovInfo's summary record for the unit, as JSON
fetched_atstringWhen the fetch that wrote this row ran (UTC)

How it stays current

A GitHub Actions job is scheduled at 00:00 and 12:00 UTC. It lists the GPO-CONAN packages in GovInfo's collection of additional government publications (GPO) and the granules of each, then fetches the units that are new or whose package's lastModified changed, removes the ones GovInfo no longer has, and commits the changed packages with this card. lastModified is GovInfo's stamp, not the book's: on September 25, 2026, every package's was from March 7 to 8 or August 18, 2025, long after it was printed. A unit whose record and PDF did not change keeps its row, and its package file is not rewritten.

The job writes with Hugging Face Trusted Publishing, so no write token is stored anywhere. manifest.json names each run's writer: github-actions for this job, local for the same pipeline run from a computer. GitHub starts scheduled jobs late, or drops them, when it is busy, so a new supplement can take more than 12 hours to appear. Each run downloads manifest.json, and the Hub counts a download for each 5 minutes in which a run reads files, so part of this dataset's download count is this job.

Known gaps

  • —This is the printed book, not the web edition at constitution.congress.gov, which CRS updates between printings. That site answers automated requests with a Cloudflare challenge, which this pipeline does not try to get past.
  • —A granule that only heads others, such as GPO-CONAN-1992-9 ("The Constitution of the United States of America (With Annotations)") over GPO-CONAN-1992-9-1 to -9-8, has no PDF of its own and is not a row; its parts are. On September 25, 2026, 9 editions had 2 such headings each.
  • —text is the PDF's text layer: it keeps running heads, page numbers and footnote markers, and has no table structure. The first page of the 2020 Supplement's errata sheet (GPO-CONAN-2020-SUPP-2) has text in its text layer that the rendered page does not show, such as "115th" beside the visible "116th Congress", so its text interleaves the two.
  • —A PDF without a text layer gives a row with null text, fetched again every 7 days.

License

The Constitution Annotated is a work of the United States Government and is not subject to copyright in the United States (17 U.S.C. § 105).