A tool for working with archival description for public access. description_harvester reads archival description into a minimalist data model for public-facing archival description and then converts it to the Arclight data model and POSTs it into an Arclight Solr index using PySolr.
description_harvester is designed to be extensible and harvest archival description from a number of sources. Currently the only available source harvests data from the ArchivesSpace API using ArchivesSnake. It is possible in the future to add modules for EAD2002 and other sources. Its also possible to add additional output modules to serialize description to EAD or other formats in addition to or in replace of sending description to an Arclight Solr instance. This potential opens up new possibilities of managing description using low-barrier formats and tools.
The main branch is designed to be a drop-in replacement for the Arclight Traject indexer, while the dao-indexing branch tries to fully index digital objects from digital repositories and other sources, including item-level metadata fields, embedded text, OCR text, and transcriptions.
This is still a bit drafty, as its only tested on ASpace v2.8.0 and needs better error handling. Validation is also very minimal, but there is potential to add detailed validation with jsonschema
.
pip install description_harvester
First, you need to configure ArchivesSnake by creating a ~/.archivessnake.yml
file with your API credentials as detailed by the ArchivesSnake configuration docs.
Next, you also need a ~/.description_harvester.yml
file that lists your Solr URL and the core you want to index to. These can also be overridden with args.
solr_url: http://127.0.0.1:8983/solr
solr_core: blacklight-core
last_query: 0
Once description_harvester is set up, you can index from the ASpace API to Arclight using the to-arclight
command.
You can provide one or more IDs to index using a resource's id_0` field
harvest --id ua807
harvest --id mss123 apap106
You can also use integers from ASpace URIs for resource, such as 263 for https://my.aspace.edu/resources/263
harvest --uri 435
harvest --uri 1 755
Index collections modified in the past hour: harvest --hour
Index collections modified in the past day: harvest --today
Index collections modified since las run: harvest --new
You can delete one or more collections using the --delete
argument in addition to--id
. This uses the Solr document ID, such as apap106
for https://my.arclight.edu/catalog/apap106
.
harvest --id apap101 apap301 --delete