[librecat-dev] sorting MARC fields

Patrick Hochstenbach Patrick.Hochstenbach at UGent.be
Thu Jul 13 11:13:34 CEST 2017


There is no sorting of MARC fields in the Fix language. One can add fields by `marc_add` fixes. The order of the new fields is in the order you execute the marc_add commands.

With the marc_paste (the nephews of marc_copy and marc_cut) you can decide where in the record the new marc record should be pasted:

  # Paste mycopy after the last 300 field
  marc_paste(mycopy, at:300)

https://metacpan.org/pod/Catmandu::Fix::marc_paste

In general there is no condition how MARC records could be sorted. Marc tags can be repeated:

   500 $aZorro, this is my First note
   500 $aAlso a nice not, but not the first
   500 $aWell this is the last note

Sorting the notes will result in errors in the catalogging. MARC is not a table or database format but markup language ..

Catmandu::MARC doesn’t yet have a retain (or marc_filter) option. But it would be a nice addition if there are use cases (could you add an issue for this on github).

The remove_field(fld_type) is not required if you only export your records back to MARC. The Catmandu::Exporter::MARC only needs the content of the ‘record’ field, the rest is ignored.

> On 13 Jul 2017, at 10:25, Uldis Bojars <captsolo at gmail.com> wrote:
> 
> set_array(ok_fields, FMT, LDR,
>     008, 040, 041, 075, 100,
>     240, 245, 246, 260,
>     377, 380, 388, 400, 490,
>     600, 630, 650, 670, 677,
>     700, 720, 908, 910)
> 
> do marc_each()
> 
>     copy_field(record.0.0, fld_type)
> 
>     unless in(fld_type, ok_fields)
>         remove_field(record)
>     end
> 
>     remove_field(fld_type)                  # is this needed?
> 
> end
> 
> remove_field(ok_fields)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.uni-bielefeld.de/mailman2/unibi/public/librecat-dev/attachments/20170713/0545ff63/attachment.asc>


More information about the librecat-dev mailing list