The base plugin for EPHAMSS (EPrints Plugins for Harvesting Article Metadata
From Secondary Sources). Provides the framework a source plugin (e.g. a
future ephamss_oa_switchboard ingredient) plugs into - this ingredient has
no knowledge of any specific secondary source's API.
candidateeprint status - a new status for records created by a harvest, kept out of the normal review queue/user inbox until an editor retains or discards them. Implemented the same waydark_archiveadds itsdarkstatus: an extendedeprint_statusset, a virtual dataset, andown-candidate/edit-candidateroles.ephamss_sourcedataset (EPrints::DataObj::EPHAMSS::Source) - one record per configured connection to a secondary source: which harvester plugin implements it, its endpoint/parameters/credentials, harvest frequency, churn delay, and last-harvest timestamp.ephamss_transactiondataset (EPrints::DataObj::EPHAMSS::Transaction)- an append-only log of harvest attempts: source, candidate eprint produced (if any), identifiers found, raw source payload, and outcome.
- Abstract harvester API (
EPrints::Plugin::EPHAMSS::Harvester) - the framework a source plugin subclasses. Handles churn-delay/from-date/to-date arithmetic, candidate EPrint creation, and transaction logging; a source plugin only implementsfetch_records()andepdata_from_record(). - Scheduled harvesting -
bin/ephamss_harvest(run from system cron) decides which sources are due and queues the actual work through the EPrints task scheduler (EPrints::Plugin::Event::EPHAMSS), so a harvest never runs synchronously in a web request. - Candidate actions -
Screen::EPrint::EPHAMSS::Retain(move to inbox, join the normal deposit workflow) and::Discard(move to deletion). - Repository-level configuration (
cfg.d/z_ephamss_config.pl) - institution RoR ID/name variants, harvest frequency options, default churn delay and initial lookback window. - Sources admin screen (
Screen::Admin::EPHAMSS::Sources) - lists configured sources with quick enable/disable, and links into EPrints' genericScreen::Workflow::{Edit,View,Destroy}/Screen::NewDataobjscreens (driven byworkflows/ephamss_source/default.xml) for full add/edit/delete, rather than a hand-rolled form. - Transactions report (
Screen::Report::EPHAMSS::Transactions) - a searchable, exportable view of the transaction audit log, built on thereportsingredient'sScreen::Reportframework. - Candidate EPrints Report (
Screen::Report::EPHAMSS::Candidates) - lists candidates with inline Retain/Discard actions and a duplicate warning where another harvest transaction shares one of the candidate's identifiers. Discard is confirmed via a small jQuery handler (static/javascript/ephamss_candidates.js, loaded only on this screen).
- Duplicate detection compares a candidate's identifiers against I
harvest transactions' identifiers only. It does not yet search arbitrary
existing eprints' own identifier metadata for matches (e.g. a
human-deposited record that was never itself harvested) - see
Screen::Report::EPHAMSS::Candidates::duplicate_transactions. - No side-by-side compare/merge UI for a candidate against a flagged duplicate - the report currently only warns and links to the other record; merging metadata into an existing EPrint is a follow-up.
- The
harvesterfield on a source is free text naming aEPrints::Plugin::EPHAMSS::Harvester::*subtype; it isn't yet validated against, or offered as a dropdown of, actually-installed harvester plugins. - Any source plugin - this ingredient does nothing on its own until one
implements
EPrints::Plugin::EPHAMSS::Harvester.
reports- generic report screen framework, used by the Transactions and Candidates reports.jquery- used for the Candidates report's discard confirmation.
Not yet packaged for installation - under active development. Once installable:
- Enable the ingredient for the repository (along with
reportsandjquery). - Set
$c->{ephamss}->{institution}->{ror_id}and$c->{ephamss}->{institution}->{name_variants}in repository config. - Add at least one
ephamss_sourcerecord (via Admin > Harvest Sources) naming a source plugin's harvester subtype (e.g.OASwitchboard). - Add a system cron entry to run
bin/ephamss_harvest <repoid>frequently (e.g. every 15 minutes) - see the script's own documentation.