v1.0.0·4,619 records·0 files·2.6 MB
Aug 5, 20262
README

UMass holdings

Where each preprint by a UMass Amherst author sits relative to ScholarWorks.

Derived rather than scraped. It joins umass/preprints to umass/scholarworks-items, which is work neither source can do alone: the repository cannot see what was never deposited, and OpenAlex cannot see the catalogue. The join is the reason these are separate collections in the first place.

Result of this build

4,618 preprints. 345 have a copy in ScholarWorks. 4,273 do not, which is 92.5%.

Match method Count
handle 14 OpenAlex gave a ScholarWorks landing page carrying the item handle
legacy path 96 It gave a pre-migration bepress URL that still matches the item's legacyPath
DOI 3 Both sides carry the same DOI
title + author 232 Exact normalised title with a shared author surname
title only 6 Recorded at low confidence and not counted as held

The DOI join barely works, and that is the finding

25,204 catalogue items carry a DOI and 4,137 preprints carry one, yet they agree on three records. Preprints carry the server's DOI (10.48550/arxiv…, 10.2139/ssrn…) while the deposit carries the repository's own (10.7275/…) or the publisher's. The identifier everyone assumes will line these up does not. Matching had to go through handles, dead bepress URLs and titles instead.

Where this disagrees with OpenAlex

OpenAlex records which repositories hold a copy, and names ScholarWorks for 216 of these preprints. That claim is carried through untouched and compared, never used as the answer.

Count
Both say held 133
Both say not held 4,190
OpenAlex says held, this join finds nothing 83
This join finds it, OpenAlex does not 212

The 83 are mostly not a matching failure. Following the URLs, 88 of those claims point at works.bepress.com, which is bepress personal profile pages, not the repository. OpenAlex has filed them under its ScholarWorks source. Only 3 point at scholarworks.umass.edu.

The 212 in the other direction are deposits OpenAlex has not connected to the preprint.

Reading a false

inScholarWorks: false means no evidence of a deposit. It is not proof there is none. A deposit under a different title, or one whose metadata carries neither identifier, is invisible to all five passes. Every record keeps its matchMethod and confidence so a consumer can set its own bar.

Run

Both source scrapers must have run first, since this reads their data/ output.

pnpm scrape umass/preprints
pnpm scrape umass/scholarworks-items
pnpm scrape umass/holdings          # seconds
pnpm push umass/holdings --env dev