Skip to content
pkpPublic

About

OJS Inspec plugin

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Inspec Export Plugin

An OJS plugin to export journal articles as JATS XML packages and deposit them to Inspec, the IET's abstracting and indexing service.

What it does

For each selected article the plugin builds a zip package containing:

  • the article's uploaded JATS XML, and
  • the article's PDF galley (referenced from the XML with a <self-uri> element).

Packages can either be downloaded for manual delivery, or deposited directly to Inspec's SFTP endpoint. With Automatic deposit enabled, newly published articles are deposited by a daily scheduled task.

Deposits are queued: clicking Deposit (or the scheduled task running) dispatches one job per article, which builds that article's package and uploads it. The request returns as soon as the jobs are queued, so a slow endpoint never blocks the browser, and each article's outcome is recorded against it individually.

Versioning

Inspec only indexes the first published version of an article. Any subsequent versions are excluded from their feed, and they match articles by DOI otherwise.

The plugin is built around that rule:

  • An article is deposited once, when it is first published, and is never re-deposited. Publishing, versioning, or unpublishing a later version does not make it depositable again.
  • Articles are always listed and deposited at the submission level, even on journals that assign a separate DOI to each version. Individual versions are never deposited as separate objects, so the export page shows a single list of articles rather than a per-version list.

A consequence worth being aware of: if a later version corrects the original, Inspec will continue to index the uncorrected first version. There is no mechanism to push the correction.

Requirements

  • OJS 3.6 or newer.

  • A way of running queued jobs, since deposits are dispatched as jobs: either OJS's scheduled ProcessQueueJobs task (which runs with the rest of the scheduler) or a dedicated worker, php lib/pkp/tools/jobs.php work.

  • A valid JATS XML file uploaded to each publication. OJS-generated JATS has no usable body or media files, so a publication without an uploaded file fails to export.

  • The league/flysystem-sftp-v3 library, bundled with OJS. If it is missing, the settings page will say so; install it with:

    composer -d lib/pkp require league/flysystem-sftp-v3

Settings

Journal Settings → Distribution → Inspec, or the plugin's Import/Export page.

Setting Description
Automatic deposit Deposit newly published articles on the daily scheduled task.
Host, Port, Path, Username, Password SFTP connection details. Port defaults to 22. The password is stored encrypted.

The SFTP account is optional — a journal can use Export to download packages and deliver them manually instead — but partially filling it in is not: either all of host, username, and password, or none. Automatic deposit requires a complete account. Deposit actions only appear once host, username, and password are all set.

Naming

Package and file names are built from the journal abbreviation (Journal Settings → Masthead), falling back to the journal's URL path when no abbreviation is set, the submission ID, and the version (e.g. VoR1), with all non-alphanumeric characters removed:

JHS_123_VoR1_20261002143015.zip
└── JHS_123_VoR1/
    ├── JHS_123_VoR1.pdf
    └── JHS_123_VoR1.xml

The package name carries a timestamp. When several articles are downloaded at once the result is a timestamped zip of per-article zips (e.g. JHS_20261002143015.zip) — unpack it and deposit the individual article packages, not the outer file.

Deposit status

Each article records its deposit state, visible in the Status column of the export list: Not deposited, Submitted (queued, not yet delivered), Deposited, Failed, or Marked registered. Failures store the error message, viewable by clicking the status.

License

GNU General Public License v3. See LICENSE.

About

OJS Inspec plugin

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages