Skip to content

[Proposal] [OAI-PMH] Extensible record search #60

@rekt-hard

Description

@rekt-hard

Motivation

Why are we doing this? What user stories does it support? What is the expected outcome?

Currently, there is no support for different record data models (f.e. LOM, Marc21). Modules that bring support for other record data models should also have their own elasticsearch index (f.e. lom-records, marc21-records), database tables, services, etc., as the metadata format differs from rdm-records.

This change would allow other modules to hook into the invenio-oaiserver module and provide the respective records via the OAI protocol, without having to implement this themselves.

Outcome is to have one endpoint for a combined harvesting possibility of all records - no matter the model. Further filtering can be achieved via sets.

Summary

What are you proposing to change (high-level overview only)?

  • Introduce data model configuration variable(s) which other modules can extend
    • f.e.
      OAISERVER_DATA_MODELS = {
        'rdm_records': {
          'es_index': 'rdmrecords-records',
          'record_cls': invenio_rdm_records.records.api:RDMRecord,
          ...
        }
      }
  • Adapt implementation of OAI-PMH verbs to take data model configuration into account
  • Provide endpoint per data model and/or one global endpoint

Resources

Which resources do you have available to implement this RFC and what is your overall timeline?

2 days per week from my side (as of right now)

Metadata

Metadata

Labels

Proposal: PendingProposal for new RFC, pending triage

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions