Details
-
Type:
Improvement
-
Status: Volunteer Needed (View Workflow)
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: 3.0, 3.1, 3.2, 4.0
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Attachments:
-
Comments:1
-
Documentation Status:Needed
Description
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
Item Mapper search:
https://github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/mapper/SearchItemForm.java#L117
PDF Packager:
https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/content/packager/PDFPackager.java#L341
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.
https://wiki.duraspace.org/display/DSPACE/Proposal+to+Update+DC+Registry+and+Add+DCTERMS+Registry
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.