Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ephamss_base

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.

What this provides

  • candidate eprint 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 way dark_archive adds its dark status: an extended eprint_status set, a virtual dataset, and own-candidate/edit-candidate roles.
  • ephamss_source dataset (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_transaction dataset (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 implements fetch_records() and epdata_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' generic Screen::Workflow::{Edit,View,Destroy} / Screen::NewDataobj screens (driven by workflows/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 the reports ingredient's Screen::Report framework.
  • 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).

Known scope gaps

  • 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 harvester field on a source is free text naming a EPrints::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.

Dependencies

  • reports - generic report screen framework, used by the Transactions and Candidates reports.
  • jquery - used for the Candidates report's discard confirmation.

Setup

Not yet packaged for installation - under active development. Once installable:

  1. Enable the ingredient for the repository (along with reports and jquery).
  2. Set $c->{ephamss}->{institution}->{ror_id} and $c->{ephamss}->{institution}->{name_variants} in repository config.
  3. Add at least one ephamss_source record (via Admin > Harvest Sources) naming a source plugin's harvester subtype (e.g. OASwitchboard).
  4. Add a system cron entry to run bin/ephamss_harvest <repoid> frequently (e.g. every 15 minutes) - see the script's own documentation.

About

Eprints Plugins for Harvesting Metadata from Secondary Sources

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages