Status: Volunteer Needed (View Workflow)
Affects Version/s: 3.0, 3.1, 3.2, 4.0
Fix Version/s: None
In order to support future evolutions of the dspace metadata schema, DCAT identified a need for developers to be able to phase out metadata fields in favor of new ones. In the current codebase, we see challenges for a number of fields because of hard coded references to these fields. As a result, "phasing out" such fields would require a great amount of changes on different locations of the code.
We think those hard coded dependencies need to be identified and made configurable as a first step.
A main priority here are those fields that are represented as qualified dublin core, e.g. specified by both a field name and a qualifier. The prime example here is dc.contributor.*, such as dc.contributor.author.
This is why we are proposing, as the scope for this particular JIRA ticket, to identify all hard coded occurrences of dc.contributor.* fields in the codebase, and to make them configurable in a next step.
Examples where such hard coded references exist include
What remains to be decided is where the configuration should be place. It could be as simple as adding the following to dspace.cfg but maybe there is a need for more subtle configuration:
#Main metadatafield where the repository is storing information about the author of an item.
#The data model assumes that there is at least one value per item for this field.
author = dc.contributor.author
The general context for this JIRA request is the ongoing work from DCAT to refine requirements to align DSpace with current metadata standards.
We believe that a first step in this direction would be the identification and removal of any hard-coded dependencies on specific metadata fields in the DSpace codebase. Once configurable, any migrations to different fields should in theory be easier as changes will be more centralized.