[librecat-dev] binder with MARC to MARC convertor
j at minorscience.com
Wed Oct 12 19:33:31 CEST 2016
This is very helpful, Patrick. Thanks much.
On Mon, Oct 3, 2016 at 1:53 AM, Patrick Hochstenbach <
Patrick.Hochstenbach at ugent.be> wrote:
> A MARC record in Catmandu is just a ‘record’ key containing an array of
> arrays (one array for each MARC field). To make it easier to manipulate
> this array-of-arrays Catmandu marc_map, marc_add, marc_set etc fixes were
> There is a Bind marc_each() that loops over a MARC record (it loops over
> all the fields). You use this most often in combination with a marc_match
> do marc_each()
> # If the current field is 100 and matches some regex
> if marc_match(“100”,”.*”)
> The marc_each is only required when you do no-trivial things on repeated
> fields. The 100 field is usually not a repeated field so the Fix below
> would do exactly the same (and much faster):
> The marc_add field adds new (sub)fields to the record. E.g. add a 101a to
> the MARC
> marc_add(‘100', a, 'test’ )
> or an 100a with indicators set:
> marc_add(‘100', ‘ind1', 1 , ‘ind2', 4, ‘a', 'test’ )
> Indicators are not required..in Catmandu that is..maybe they are in MARC
> for some fields but that is another topic
> > On 02 Oct 2016, at 23:34, Jason Loeffler <j at minorscience.com> wrote:
> > I've worked through CSV to JSON and JSON to JSON converters using binds
> in order to operate on an object-value pair using the contents of an
> external text file/dictionary.
> > E.g.
> > # linked_agents.ref
> > do list(path => linked_agents)
> > add_field("foor","bar")
> > replace_all("ref","[^a-zA-z0-9\s]","");
> > lookup("ref","list.csv");
> > end
> > This works very well. But is there a way to execute a similar task with
> a MARC to MARC conversion?
> > Something like firing a lookup in the marc_each context?
> > do marc_each()
> > lookup('some datafield', 'list.csv')
> > end
> > Jason Loeffler
> > Technology Consultant | The American Academy in Rome
> > _______________________________________________
> > librecat-dev mailing list
> > - send list mails to librecat-dev at lists.uni-bielefeld.de
> > - to unsubscribe or change options, visit https://lists.uni-bielefeld.
> > - project website: http://librecat.org/
> Patrick Hochstenbach - digital architect
> University Library Ghent
> Sint-Hubertusstraat 8 - 9000 Ghent - Belgium
> patrick.hochstenbach at ugent.be
> +32 (0)9 264 7980
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the librecat-dev