On Mon, 29 Apr 2013, Ferran Jorba wrote:
>> I was actually looking at invenio.conf but since I am new to this
>> area I didn't connect the dots. What is the difference between
>> external number and external OAI_ID? What takes precedence during
>> replace/update?
>
> I think that in this case they overlap; Invenio uses OAI_ID (or OAIID)
> and external identifier as synonyms; at least, I use 035 for any
> external source, either OAI or batch load.  If I'm wrong, please
> somebody correct me.

The details can be found in bibupload.py's retrieve_rec_id().  The
matching precedence goes like this:

   001 - record ID
   970 - external system ID (CFG_BIBUPLOAD_EXTERNAL_SYSNO_TAG)
   035 - external system ID (CFG_BIBUPLOAD_EXTERNAL_OAIID_TAG)
   909COo - internal OAI ID (CFG_OAI_ID_FIELD)
   0247_2 - DOI

I agree the names are confusing, e.g. the difference between 035 and 970
is purely historical, so to speak.  You can safely use only 001 and 035,
as Ferran does.  As a bonus the use of 035 is more MARC-friendly.

> Sorry, I have no experience with those STRONG_TAGS, so I cannot
> answer.

Strong tags are meant to resist any replace operation.  The wanted usage
was as follows.  Imagine you use another system to keep track of your
holdings, say, and you have some synchronisation process running every
night that will update some MARC tag in your records to store the number
of copies a book has.  In this scenario, if you are using BibEdit or
synchronisation of metadata from some other system, you don't want to
replace this information that is got from the holdings system.  Hence
the declaration of the concerned tag as `strong' so that it would resist
replace operations and would not get erased.  In the usual case, you
probably don't need to use this feature.  It was born before Invenio had
its own circulation module.

>>     If you use 035, the records will be either inserted (new records)
>>     or updated (overwritten). You will get the list in the bibupload
>>     log.
>>
>> Does this mean that the records will be updated based on 035 even when
>> the bibupload is not run in replace/update mode?

In case bibupload runs with `insert' mode, and the incoming record has
035 that matches some existing record, then the bibupload process will
stop with an error saying something like ``sorry you wanted to insert a
new record but it seems there is already a record in the system with the
some persistent ID, hence I cannot create new record''.

If you use `bibupload -i -r' combination, then this combines insert mode
and replace mode, and the usage of a persistent identifier tags like 035
will help bibupload to determine whether to use insert or replace for
the given incoming record.  The use of `-i -r' is like asking bibupload
``I want to load all these records and if they exist, update what
exists, and if they don't, then insert them.''.

So the behaviour of bibupload is trying to respect the input mode of the
user.  In case it can resolve references, it will do it.  In case it
would conflict with user's desired input mode, it will stop with an
error.

Best regards
--
Tibor Simko

Reply via email to