logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Catmandu::MARC - Catmandu modules for working with MARC data

Author

       Patrick Hochstenbach, "<patrick.hochstenbach at ugent.be>"

Contributors

       •   Nicolas Steenlant, "<nicolas.steenlant at ugent.be>"

       •   Nicolas Franck, "<nicolas.franck at ugent.be>"

       •   Johann Rolschewski, "jorol at cpan.org"

       •   Chris Cormack

       •   Robin Sheat

       •   Carsten Klee, "klee at cpan.org"

Description

       With Catmandu, LibreCat tools abstract digital library and research services as data warehouse processes.
       As  stores  we  reuse  MongoDB or ElasticSearch providing us with developer friendly APIs. Catmandu works
       with international library standards such as MARC, MODS and Dublin Core, protocols such as  OAI-PMH,  SRU
       and open repositories such as DSpace and Fedora. And, of course, we speak the evolving Semantic Web.

       Follow   us  on  <http://librecat.org>  and  read  an  introduction  into  Catmandu  data  processing  at
       <https://github.com/LibreCat/Catmandu/wiki>.

License

       This program is free software; you can redistribute it and/or modify it under the terms  of  either:  the
       GNU General Public License as published by the Free Software Foundation; or the Artistic License.

       See <http://dev.perl.org/licenses/> for more information.

perl v5.38.2                                       2024-08-03                                Catmandu::MARC(3pm)

Modules

       •   Catmandu::MARC::Tutorial

       •   Catmandu::Importer::MARC

       •   Catmandu::Importer::MARC::ALEPHSEQ

       •   Catmandu::Importer::MARC::ISO

       •   Catmandu::Importer::MARC::Line

       •   Catmandu::Importer::MARC::Lint

       •   Catmandu::Importer::MARC::MARCMaker

       •   Catmandu::Importer::MARC::MicroLIF

       •   Catmandu::Importer::MARC::MiJ

       •   Catmandu::Importer::MARC::RAW

       •   Catmandu::Importer::MARC::Record

       •   Catmandu::Importer::MARC::XML

       •   Catmandu::Exporter::MARC

       •   Catmandu::Exporter::MARC::ALEPHSEQ

       •   Catmandu::Exporter::MARC::ISO

       •   Catmandu::Exporter::MARC::Line

       •   Catmandu::Exporter::MARC::MARCMaker

       •   Catmandu::Exporter::MARC::MiJ

       •   Catmandu::Exporter::MARC::XML

       •   Catmandu::Fix::marc_add

       •   Catmandu::Fix::marc_append

       •   Catmandu::Fix::marc_copy

       •   Catmandu::Fix::marc_cut

       •   Catmandu::Fix::marc_decode_dollar_subfields

       •   Catmandu::Fix::marc_in_json

       •   Catmandu::Fix::marc_map

       •   Catmandu::Fix::marc_paste

       •   Catmandu::Fix::marc_remove

       •   Catmandu::Fix::marc_replace_all

       •   Catmandu::Fix::marc_set

       •   Catmandu::Fix::marc_sort

       •   Catmandu::Fix::marc_spec

       •   Catmandu::Fix::marc_xml

       •   Catmandu::Fix::Bind::marc_each

       •   Catmandu::Fix::Condition::marc_all_match

       •   Catmandu::Fix::Condition::marc_any_match

       •   Catmandu::Fix::Condition::marc_has

       •   Catmandu::Fix::Condition::marc_has_many

       •   Catmandu::Fix::Condition::marc_match

       •   Catmandu::Fix::Condition::marc_spec_has

       •   Catmandu::Fix::Inline::marc_map

       •   Catmandu::Fix::Inline::marc_add

       •   Catmandu::Fix::Inline::marc_remove

       •   Catmandu::Fix::Inline::marc_set

Name

       Catmandu::MARC - Catmandu modules for working with MARC data

See Also

       Catmandu, Catmandu::Importer, Catmandu::Fix, Catmandu::Store, MARC::Spec

Synopsis

        # On the command line

        $ catmandu convert MARC to JSON < data.mrc

        $ catmandu convert MARC --type MiJ to YAML < data.marc_in_json

        $ catmandu convert MARC --fix "marc_map(245,title)" < data.mrc

        $ catmandu convert MARC --fix myfixes.txt < data.mrc

        myfixes:

        marc_map("245a", title)
        marc_map("5**", note.$append)
        marc_map('710','my.authors.$append')
        marc_map('008_/35-35','my.language')
        remove_field(record)
        add_field(my.funny.field,'test123')

        $ catmandu import MARC --fix myfixes.txt to ElasticSearch --index_name 'catmandu' < data.marc

        # In perl
        use Catmandu;

        my $importer = Catmandu->importer('MARC', file => 'data.mrc' );
        my $fixer    = Catmandu->fixer('myfixes.txt');
        my $store    = Catmandu->store('ElasticSearch', index_name => 'catmandu');

        $store->add_many(
           $fixer->fix($importer)
        );

See Also