Handling DOI with multiple resolution addresses
Describe the bug A small number of DOI point to a split resolution page before landing on the DOI page (domestic vs oversea URL). Weird handling in many places, but focused on how to best respond in Scholia with this scenario.
To Reproduce Steps to reproduce the behavior:
- using the /doi/ lookup - try 10.13703/j.0255-2930.20240604-0003
- see response error
- Scroll down to '....'
- See error
Expected behavior Instead of a blank response, improve the error message. Related to, but the #2734 changes currenlty only apply to missing metadata. This metadata exists, but crossref doesn't get anything and its not due to it not being present. I don't know, but this might not conform to the DOI standard expectations?
Screenshots
Scholia Response:
Original:
Translated:
Crossref response (reported to crossref, this is odd):
Desktop (please complete the following information):
- OS: Winodws
- Browser Firefox
- Version 145
Hmmm... One should think that CrossRef could contain the metadata regardless of where the redirect for the ends up.
That was my thought as well, the response from Crossref was very helpful.
That's a (not-uncommon) misunderstanding. There is no single metadata API or single source for DOI metadata. Crossref's API only includes metadata for Crossref-registered DOIs
The only infrastructure that works for all DOIs, regardless of registration agency, is the Handle system which facilitates the DOIs resolution to the provided URLs. There is a Handle system API, but it doesn't contain bibliographic metadata. It only has the DOI, resolution URL, a timestamp, and some administrative data (for example, the registration agency each prefix belongs to).
Crossref, DataCite, and mEDRA have collaborated to support Content Negotiation, which will work for DOIs from those three agencies to get some basic bibliographic metadata and therefore also formatted citations. Details are available here: https://citation.doi.org/docs.html
They shared an API endpoint to retrieve the agency the Metadata is registered which if not currently a check before a DOI lookup via the Crossref API, probably should be a check in place. Lookup then could either use the applicable registrar OR provide a response about the limitation to Crossref or other APIs that are available.
This failure would need its own error message to respond to the user such as "This DOI metadata is not avaialble from Crossref [insert any other agencies] and instead is handled by [insert agency name] which is not currently supported by Scholia lookup. If you would like to add support for [agency name] please look at [insert link to applicable documentation]":
Our API does have an endpoint that will lookup the registration agency for a given DOI, for example https://api.crossref.org/works/10.13703/j.0255-2930.20240604-0003/agency
I noted the empty response makes it hard to handle the lookup.
You're correct to point out that our Metadata Search interface should ideally provide something other than that empty response. It would be preferable if the response could differentiate between DOI-like strings of characters that are not registered identifiers at all and DOIs that are registered through non-Crossref RAs for which we don't have metadata. I will pass that suggestion on to the Metadata Search product manager.
This suggests modifying the lookup to include agency context and enhance the DOI success. The takeaway: a DOI lookup should first check the DOI agency then use the applicable metadata lookup, crossref will not work for all DOI.
It was also noted DOI scope includes non scholarly works from some other agencies (for other handing considerations on what content Scholia should import).