This repository is cataloging University Library access to scholarly literature. Scholarly articles are identified using their DOIs. The impetus for this project was this discussion on the Sci-Hub Coverage Study.
The code in this repository facilitates fetching indicators of full-text availability for a list of DOIs from an OpenURL resolver. In this way, it enables large-scale analysis of bibliographic holdings / availability.
The code files in this repository assume that your working directory is set to the top-level directory of this repository.
-
LICENSE-*.md: License text to accompany the License section of this Readme below. -
environment.yml: Conda environment file (see Environment below). -
.gitattributes: File with information for tracking files using Git Large File Storage (LFS). -
library_management_system_downloadercontains the following scripts, to be used in the following order:downloader_configuration_file_TEMPLATE.pyshould be copied todownloader_configuration_file.pyand edited for your own institution's OpenURL resolver (These scripts were specifically tested using the OpenURL resolver that comes with Ex Libris' Alma management software).- Within
downloader_configuration_file.py, the variableapi_base_urlwill be based on the OpenURL resolver / vendor that your institution uses, and thus will be different from institution to institution. To find out what that base URL should be, it may be necessary to ask your local library technology team for help and/or documentation. - It is additionally the case that different OpenURL resolvers may return slightly different formats of data. Thus, it may be necessary to modify the function
fulltext_indicationin the fileevaluate_api_response_for_fulltext_indication.pyto look for an XML field that the data from your institution's OpenURL resolver contains.
- Within
run_api_download_and_parse_results.pycopy_and_compress_database_and_extract_tsv.py
-
evaluate_library_access_from_output_tsvcontains the following scripts, to be used in the following order:create_stratefied_sample_of_dois.Rjoin_doi-200_dates_to_doi-500.R- [Run
facilitate_going_through_dois_manually.Rto help fill in the.tsvfiles created by the scripts above] penntext-accuracy-200.ipynbpenntext-accuracy-500.ipynb
-
data: [This is where datasets will be saved by the above scripts.]
This repository uses conda to manage its environment as specified in environment.yml.
Install the environment with:
conda env create --file=environment.ymlThen use source activate library-access and source deactivate to activate or deactivate the environment.
On windows, use activate library-access and deactivate instead.
The files in this repository are released under the CC0 1.0 public domain dedication (LICENSE-CC0.md), excepting those that match the glob patterns listed below.
Files matching the following glob patters are instead released under a BSD 3-Clause license (LICENSE-BSD-3-Clause.md):
*.py*.md.gitignore*.r*.sh