Skip to content

Conversation

qqmyers
Copy link
Member

@qqmyers qqmyers commented Sep 5, 2025

What this PR does / why we need it:
Dataverse's external vocabulary mechanism includes an option for Dataverse to retrieve and cache metadata about a given vocabulary/PID indentifier by calling an external service (e.g. ORCID, ROR, SkosMos, OntoPortal) and filtering the returned JSON results to get the desired subset of information. As the range of examples has expanded, the syntax for specifying that filtering is being expanded. For example, #11762 allows retrieving the nth entry in a JSON array rather than the whole array.

This PR extends a related functionality which allows retrieving a JSON object from an array based on a matching key:value pair, i.e. one can retrieve the object with the key:value "mykey":"myval" by specifying /mykey=myval as part of the path in the filter "params" entry. Currently this functionality only works if the value of the key is a JSON String. However, with the ROR v2 API, we have a case where we'd like to retrieve the object which has the value "ror_display" for the "types" key where "ror_display" is a string within a JSON array of values. (The entry with the "ror_display" is the organization name that is used for display on the ROR page and is nominally the canonical name for the organization.

This PR modifies the parsing in Dataverse to support this case. As the ROR v2 updates are included in the gdcc/dataverse-external-vocab-support repo, examples and further description of the retrieval-filtering syntax will be added there.

Which issue(s) this PR closes:

  • Closes #

Special notes for your reviewer: Nominally we want ROR v2 support to work well before v1 is retired in Dec. 2025.

Suggestions on how to test this: Configure a field to use the ROR v2 script (as in #46 and change the termName/params entry to be /names/types=ror_display/value (instead of /names) and verify that the OAI_ORE export includes the name of the organization (e.g. for author affiliation) and that the DataCite xml export also includes it.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:

Is there a release notes update needed for this change?: I'll add a generic one to say that this version extends the retrieval-filtering - to cover both this and #11762.

Additional documentation:

@qqmyers qqmyers added the Size: 10 A percentage of a sprint. 7 hours. label Sep 5, 2025
@qqmyers qqmyers moved this to Ready for Triage in IQSS Dataverse Project Sep 5, 2025
@qqmyers qqmyers added this to the 6.9 milestone Sep 5, 2025
@coveralls
Copy link

coveralls commented Sep 5, 2025

Coverage Status

coverage: 23.526% (-0.01%) from 23.539%
when pulling 81aa56b on QualitativeDataRepository:CVoc-improvement
into f79a02b on IQSS:develop.

@ofahimIQSS ofahimIQSS moved this from Ready for Triage to Ready for Review ⏩ in IQSS Dataverse Project Sep 9, 2025
@cmbz cmbz added FY26 Sprint 5 FY26 Sprint 5 (2025-08-27 - 2025-09-10) FY26 Sprint 6 FY26 Sprint 6 (2025-09-10 - 2025-09-24) labels Sep 10, 2025
@cmbz cmbz added the FY26 Sprint 7 FY26 Sprint 7 (2025-09-24 - 2025-10-08) label Sep 24, 2025
@cmbz cmbz added the FY26 Sprint 8 FY26 Sprint 8 (2025-10-08 - 2025-10-22) label Oct 8, 2025
@stevenwinship stevenwinship self-assigned this Oct 16, 2025
@stevenwinship stevenwinship moved this from Ready for Review ⏩ to In Review 🔎 in IQSS Dataverse Project Oct 16, 2025
@qqmyers qqmyers removed their assignment Oct 16, 2025
@github-project-automation github-project-automation bot moved this from In Review 🔎 to Ready for QA ⏩ in IQSS Dataverse Project Oct 17, 2025
@stevenwinship stevenwinship removed their assignment Oct 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FY26 Sprint 5 FY26 Sprint 5 (2025-08-27 - 2025-09-10) FY26 Sprint 6 FY26 Sprint 6 (2025-09-10 - 2025-09-24) FY26 Sprint 7 FY26 Sprint 7 (2025-09-24 - 2025-10-08) FY26 Sprint 8 FY26 Sprint 8 (2025-10-08 - 2025-10-22) Size: 10 A percentage of a sprint. 7 hours.

Projects

Status: Ready for QA ⏩

Development

Successfully merging this pull request may close these issues.

4 participants