Home

Awesome

What is MARC::MIR

The current repo comes with 2 things that must be clearly seperated at some point:

see lib/MARC/MIR/Tutorial.pod for futher informations.

MARC::MIR out of the Perl world

Quo vadis, MARC::MIR ?

First steps of this project came fast and promising before it was discontinued about 2 years ago (last CPAN release in 2013 january).

So if someone want to take over my modules, please feel free. Also, there are 2 ways to increase my own motivation:

Todo

Canceled projects

normalize, validate and query MARC records

As a MIR is just an array of array, very simple validations can be written using any existing tool which can query/validate a datastructure. I gave Kwalify a try, you can find the [eg/validate](documented source).

Although, some other pages deserve further reads and tests:

But i guess this method would consume a lot of ressources to validate or query a large set. Plus, rules can be really boring to write if you come with some cases rarely seen out of the MARC world. What it you want to find a title matching "rome", "romulus" or "remus" (assuming title can be 200$a, 200$b or 200$c).

For those range of problems, i use MARC::MIR helpers directly from Perl

use MARC::MIR;
use Perlude;

sub keep_roman_books {
    print if 
            grep $_
            , map_values { /rome|romulus|remus/ }
                [ 200, [qw( a b c )] ]
                ,  from_iso2709
}

Also i can't expect librarians to do so. that's why we need more tools whom

S-expr would be perfect. not only because it will be very easy to implement and port but also because it would be a very pleasant to read and edit

(any 200$[abc] (~ "rome|romulus|remus"))

Both GUI and DSL would store a query as a datastructure that can be used by validation tools. The first to come idea would be (written in YAML).

any:
  - field: 200
  - subfield: [a, b, c]
  - value: [match, "rome|romulus|remus" ]

I made a lightning talk of a prototype during the French Perl Workshop 2013 and a nicer version i now use daily for other purposes is in my github.

ISO-5426 from/to UTF-8

I wrote a ICU Unicode Charmap and tested it using Perl encoding system. It was very fast but we had to deal with some unexpected symbols so i didn't release the whole thing.

Now it's pretty clear unexpected symbols come from our ILS extension of the charmap. We came to the idea to write a 'ISO-5426-loose-unistra' table but we never took time for it.

MARC::MIR::Template

MARC::MIR::Template works very well if you don't care about field indicators. I never had to deal with those indicators so "it worked for me".

Also, there is a known bug but i documented the work around and never got time to investigate on it. I wrote a test in a suite that can be uncommented in the case someone fix it.