Harvesting from OJS by Rosetta

Does anyone have experience with harvesting OJS content via OAI using the ExLibris Rosetta archiving software?

From our local Rosetta admins, we have learned that apparently:

  • Rosetta checks mimetype and file extension
  • there must be a file name mentioned in the OJS XML response
  • the bitstream url must contain file name and extension

This means that Rosetta does not accept OAI harvesting from OJS out of the box. Is there anyone who has already solved this problem for themselves?


I have no knowledge of Rosetta. But I have created a new oaiMetadataFormat plugin for our national library which matches the Marc format details they are using. It enables them to harvest our articles in the exact format they need. I do not know exactly what they use for harvesting.

So I suggest that you read the readme section here: https://github.com/pkp/ojs/tree/master/plugins/oaiMetadataFormats

Because I needed Marc, I started with the original Marc plugin, copied and renamed it to create a new plugin and started modifying that. Note that some of the plugins there are not working at the moment.

Thanks @ajnyga, that is very helpful!

As an idea @asmecher, I found that a number of repository software does contain the file name extension in the download url:

Is there a special reason why OJS does not state the file name extension?

For now, we will have to solve this on a case-by-case-basis, especially as the journals in question are still running OJS 2.x - but including the file name and extension in the download url could be an idea for future versions of OJS.

Hi @ojsbsb,

There’s no particular reason we’re not including suffixes on URLs, but nor is there any particular reason to do so, I don’t think – my sense is that we’re complying with the OAI spec and Rosetta seems to have a few requirements that go beyond the specification.

Alec Smecher
Public Knowledge Project Team

Hi @ojsbsb,

Is this issue already solved at your end ?

Wanted to make sure, before I am writing the plugin ?

Hi @Dulip_Withanage,

yes, the issue was solved. As far as I know, our Rosetta team wrote individual ingest configuration (XSLT) for the journals.

Thanks @ojsbsb

I have begun writing a OJS plugin to create the SIPs myself and putting them into Rosetta. I will release it ,when it is finished.