cernopendata / opendata.cern.ch

Source code for the CERN Open Data portal
http://opendata.cern.ch/
GNU General Public License v2.0
656 stars 147 forks source link

OAI-PMH server #716

Open espacial opened 9 years ago

espacial commented 9 years ago

We are planning to include the data records on INSPIRE, mainly to track references to the DOIs. It would be great to harvest them automatically, @tiborsimko can you set up the server? We will take care of the other side!

suenjedt commented 9 years ago

We would need IDs for every record. We could reuse the last part of the DOIs as OAI Ids. That should make it easier to implement.

suenjedt commented 7 years ago

I am closing as we need to restart this topics in collaboration with INSPIRE later in the year or even next year. Everything changes with Invenio 3 anyway.

tiborsimko commented 6 years ago

Reopening the issue as we are getting OAI-PMH enquiries.

Note that a working OAI-PMH prototype was made when moving to Invenio 3; we should just revive and rebrush it and decide on nice IDs.

$ git grep -i oai
cernopendata/config.py:OAISERVER_ID_PREFIX = 'oai:cernopendata:recid/'
cernopendata/config.py:OAISERVER_ID_PREFIX = 'oai:opendata.cern.ch:recid/'
cernopendata/modules/fixtures/cli.py:    from invenio_oaiserver.fetchers import onaiid_fetcher
cernopendata/modules/fixtures/cli.py:    from invenio_oaiserver.minters import oaiid_minter
cernopendata/modules/fixtures/cli.py:            pid_value = record.json.get('_oai', {}).get('id')
cernopendata/modules/fixtures/cli.py:                record.json.setdefault('_oai', {})
cernopendata/modules/fixtures/cli.py:                record.json['_oai']['id'] = pid.pid_value
cernopendata/modules/fixtures/cli.py:            pid = oaiid_fetcher(record.id, record.json)
cernopendata/modules/fixtures/cli.py:                pid = oaiid_minter(record.id, record.json)
cernopendata/modules/fixtures/cli.py:            assert record.json['_oai']['id']