Joe Ptacek


LC New Subjects

LC New Subjects is a Twitter bot for staying in touch with the latest subject heading updates from the Library of Congress (LC). LC releases updates en masse approximately once a month; LC New Subjects gathers these up and gradually Tweets its way through the heap.

My basic goal with this project is to help subject heading updates reach a broader audience. The Library of Congress posts its updates in the form of HTML-formatted "approved lists," but finding and keeping track of these lists can be a challenge. By using Twitter to steadily rebroadcast individual updates, I hope to make it easier for librarians (and non-librarians) to monitor Library of Congress decision-making. I also hope to create space for ongoing reflection and conversation regarding Library of Congress subject heading terminology—since Twitter is a public forum, anyone can share or comment on updates that resonate in one way or another, e.g., the recent decision to cancel the "Illegal aliens" subject heading.

LC New Subjects depends on two Python scripts—one for scraping the Library of Congress website, and another for programmatically sending out Tweets. I've documented and published relevant code in two GitHub repositories, lc-scrape and lc-tweet.

The repository for lc-scrape also includes an archive of approved lists scraped from the Library of Congress website, both in the original HTML and derived JSON formats. An example of an update represented as JSON is given below (scroll horizontally to view overflowing text) →

{
  "headingType": "mainSubjectHeading",
  "listDate": "2021-11-12",
  "listSource": "https://classweb.org/approved-subjects/2111b.html",
  "LCLinkedDataURI": "http://id.loc.gov/authorities/subjects/sh85003553",
  "LCCNPermalink": "https://lccn.loc.gov/sh85003553",
  "statusApprovedBeforeMeeting": false,
  "statusSubmittedByCoopLib": false,
  "statusNewHeading": false,
  "statusChangedHeading": false,
  "statusCancelledHeading": true,
  "statusUpdatedField": false,
  "statusAddedField": false,
  "statusDeletedField": false,
  "statusUpdatedGeog": false,
  "statusAddedGeog": false,
  "statusDeletedGeog": false,
  "statusChangedGeog": false,
  "lines": [
    "150 Illegal aliens CANCEL HEADING",
    "682 This authority record has been deleted because the heading is covered by the subject headings Noncitizens (DLC)sh 85003545 and Illegal immigration (DLC)sh2016000739"
  ]
}