Expose internal data model to allow mapping configurations

  • Status: proposed

  • Date: 2022-03-21

Context and Problem Statement

Single instances of target repositories may need specific fields to be mapped. Therefore, mapping from our data model to the required model for these repos must be configurable, through either

  • a mapping file

  • a required function

Our deliverable should also include base templates for vanilla InvenioRDM and Dataverse installations of the latest* version.

Decision Drivers

  • Ensure usability for customized instances, i.e., instances that use data models extending the vanilla repo data models, such as providing custom metadata blocks, different versions of the data model, forks, etc.

  • Must be packagable to provide to end users, who shouldn’t need to configure individually

Considered Options

  • Mapping file

  • Required mapping function

  • Provide both ways

Decision Outcome

Chosen option: “”, because comes out best.

Pros and Cons of the Options

Mapping file

  • Good, because Simple to configure (no Python knowledge needed)

  • Good, because Could be provided as a simple function reading a csv/*ML file

  • Bad, because Need to definbe a semantic

Required mapping function

  • Good, because extremely versatile

  • Good, because Can implement, e.g., composed fields (many fields to one composed field and vice versa)

  • Bad, because Python knowledge needed