Hi Ferran,

Ferran Jorba wrote :

[...]
we have a collection of records that used to belong to an OAI set. For several reasons, they are not exportable any more. We have deleted the
OAI set definition via oaiarchiveadmin, but those records continue to
exist in our system.  As a matter of fact, they still have their OAI
name set and OAI id in their records (ex,
http://ddd.uab.cat/record/11358?ln=en&of=hm).

that's an interesting question that calls for multiple answers.

First let me precise that what you describe is the expected
behaviour of the system: to apply the settings defined for a set
in the web interface, you have to run the 'oaiarchive' CLI by
specifying the set you want to consider. This is also applicable
when deleting sets:

$ oaiarchive --delete po 'setname'

This simply removes the OAI set(s) and OAI identifier (if needed)
from the metadata.  Note that it implies that the corresponding
set definition is still in the web admin interface...

So in your case if you want to update the metadata of your
records to reflect this modification, you could add this set
again, run the oaiarchive tool, and then delete the set...

Fortunately (or not, depending on your usage of the system) this
behaviour is going to change in future versions of CDS Invenio:
any modification of the settings defined in the web admin
interface will have an impact on your records, no need to
add/remove sets! You might therefore want to get prepared and
clean the set definitions you do not need in the admin interface
of your repository.

In the light of what precedes, how can you mark a record
as "OAI-deleted"?  We have to turn to the the specifications of
the OAI protocol to get a detailed answer:
<http://www.openarchives.org/OAI/openarchivesprotocol.html#DeletedRecords >

By default CDS Invenio supports the "no" mode. It is also
possible to set it to work in the "persistent" or "transient"
modes (as you seem to have done), but they do not behave well in
the case you describe, since we do not keep track if a record
was ever OAI-exported, as we just remove any OAI indication from
the metadata (however it works well when you simply delete a
record).

So in your case, how can you mark your record as OAI-deleted in
transient mode, without actually deleting the record?  Well you
cannot for the moment.  A basic solution would be to set the
value of some dedicated field to "OAIDELETED" when the record is
no longer exported, and adapt the OAI gateway to understand this
information. I will think about it and will provide you with a
patch.

What if you "remove" a record from your OAI repository, and bring
it back later? Is the OAI identifier preserved? Yes, it does:
even though we delete the OAI idenfier from the metadata, we can
re-generate it as it was, since it is built on the basis of the
record ID. However this case if not well defined in OAI-PMH, so
one never know how harvesters will behave if you choose to expose
you deleted records again.

Best regards,
--
Jerome Caffaro ** CERN Document Server ** <http://cds.cern.ch/>


Reply via email to