Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOAJ plugin not including correct fullTextUrl urls in XML #11093

Open
1 task done
jnugent opened this issue Mar 14, 2025 · 4 comments
Open
1 task done

DOAJ plugin not including correct fullTextUrl urls in XML #11093

jnugent opened this issue Mar 14, 2025 · 4 comments
Assignees

Comments

@jnugent
Copy link
Member

jnugent commented Mar 14, 2025

Valid Title

  • I have updated the title to accurately reflect the bug description

Description

The DOAJ plugin uses a Filter class to build an XML document, and in that XML document there are elements that are supposed to contain URLs to the full text galleys. The code is instead building URLs to the article landing page:

https://github.com/pkp/ojs/blob/stable-3_4_0/plugins/importexport/doaj/filter/DOAJXmlFilter.php#L190

as $pubObject in that context is the Submission object. If a journal has previous DOAJ content and tries to resubmit their XML, they'll get an error like

Either the DOI or Fulltext URL has been changed. This operation is not permitted

which causes the deposit to fail.

Steps to Reproduce

The steps to reproduce here will be tricky here unless you can test this against DOAJ but

  1. Use the Export function in the DOAJ plugin
  2. Examine the XML, and see that the fullTextUrls are not full text URLs but are instead links to the article

Expected Result

The system should include a full text url to the galley.

Actual Result

The galley URL should be present. I am not entirely sure what the result should be if there is more than one galley.

Environment Details

No response

Application Version

OJS 3.4

Logs

No response

Additional Information

No response

@bozana
Copy link
Collaborator

bozana commented Mar 17, 2025

Hmmm... It seems it was always so... And I do not know why (any more)... So, it seems the user has submitted the data differently (not using the plugin) earlier?
I am wondering: if we change it now, the users that submitted it this way will have a problem when upgrading...
But it does sounds/looks logical that the galley URLs should be exported there.
I will maybe ask DOAJ for a case...

@jnugent
Copy link
Member Author

jnugent commented Mar 17, 2025

Hi @bozana so, some more information about how this client of ours ended up in this situation. The DOAJ provides a portal for their users where you can enter all of the metadata in manually. They had been doing this, and were using the full text URL to the HTML galley in all cases.

This creates a problem if you start using the OJS plugin after because the DOAJ uses the full text URL and the DOI to "version" the article. However I don't think you can do this versioning with the plugin - when this client tried to update records they receive a "Forbidden" error through the DOAJ API.

If there was a way to do this versioning with the plugin or maybe fail a bit more gracefully, maybe this would be better.

@bozana
Copy link
Collaborator

bozana commented Mar 17, 2025

Hi @jnugent, now I believe I know why we are register the article landing page: because DOAJ XSD allows only one fullTextURL to be registered. It is also used as an identifier of the article (except the DOI) by DOAJ.
I will double check with DOAJ what would be best to do and how, also if they maybe plan to do/improve something, but I am afraid that we currently cannot do much, eventually maybe only enter additional information what could be the case, in case that specific error occurs.

EDIT:
Once I tested updating the metadata in DOAJ from OJS (plugin) and it worked, because the DOI and/or the URL were the same. I would not lead to a new version just the metadata update.

@bozana
Copy link
Collaborator

bozana commented Mar 19, 2025

Hi @jnugent, maybe also to double check what do you mean with versioning above? What did the user exactly wanted to do -- to update registered metadata with DOAJ?
What do you think would be a more graceful failure?
Somehow I believe we cannot do much here. We cannot change the fullTextUrl to be a galleyURL because it needs to be unique (and in case of several galleys we would need to exactly know which one to take, and it could be that the user removes a galley or adds a new version for the galley that would have a new ID, etc).
We return the message that we get from DOAJ API and I think we should also not change this in order to handle this rare/specific case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants