CVoc retrieval filtering enhancement#11793
Merged
ofahimIQSS merged 4 commits intoIQSS:developfrom Oct 23, 2025
Merged
Conversation
This was referenced Sep 5, 2025
stevenwinship
approved these changes
Oct 17, 2025
Contributor
|
very nice, everything checks out - merging |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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=myvalas 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:
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: