Turun ja naapurikuntien kunnankirjastojen Vaski-kirjastokimppa julkaisi aineistotietokantansa avoimena datana vähän aikaa sitten. Avoimen datan idea on, että hyödyllinen annetaan esteettä kaikkien käyttöön. Tällainen ajattelu sopii erinomaisesti kirjastoihin. Yksi hauska puoli avoimessa datassa on se, että data on silloin myös meidän itsemme käytössä. Tämä ei ole ollenkaan itsestäänselvää – normaalisti voimme itsekin käsitellä MARC-tietueitamme vain yhdellä työkalulla, nimittäin kirjastojärjestelmällämme. Vaskissa käytämme Axiellin PallasProta, jolla ei voi tehdä kaikkea. On tärkeää päästä dataan käsiksi monin eri tavoin, ja monien eri tahojen toimesta.
Tässä kaksi casea, joissa kuluneella viikolla hyödyin siitä, että minulla (kuten kakikilla maailman ihmisillä) on esteetön pääsy luettelointidataamme.
Case 1: tuplakontrollia
Täällä Vaskissa me valmistaudumme vaihtamaan PallasPron toiseen Axiell-tuotteeseen, Auroraan. Samassa tietokantaamme tulee mukaan lisää kirjastoja, ja siirrymme FinMARC -luettelointiformaattista MARC21:een. Anna valvoo ja suunnittelee sitä, yhdessä muiden luetteloijien ja Axiellin kanssa.
Vaski, kuten muutkin kirjastotietokannat ovat sangen sotkuisia monellakin tapaa. Esimerkiksi yhdestä teoksesta saattaa olla useita luettelointitietueita (ns. tuplia (tai tripliä (tai quadruplia (ad nauseaum)))). Ne ovat tietokannan käytön kannalta ärsyttäviä, ja niitä yritetään nyt siivoilla pois.
Tein Annalle tällaisen Perl-ohjelman, joka etsii tuplia ISBN-koodin perusteella (joka on tallennettu kenttään 021‡a
):
#!/usr/bin/perl # lists ISBN-codes which appear in more than one MARC record use MARC::Batch; my $file = "vaski-kunnostettu.mrc"; my $batch = MARC::Batch->new('USMARC', $file); $batch->strict_off(); # First, let's create a magnificient hash or arrays, with ISBNs as keys, and # lists of record ids as values while ($record = $batch->next()) { for my $field ($record->field('021')) { my $isbn = $field->subfield('a'); push(@{$recsperisbn{$isbn}}, $record->field('001')->data()); } ++$i; } # then let's see through the hash, and print all the ISBNs which appear in more # than one record, and list all the records ids per ISBN too while (my ($key, $value) = each(%recsperisbn)) { if (@$value > 1) { print($key, ": "); foreach $recid (values($value)) { print($recid,","); } print("\n"); } }
Tämä ohjelma käy järjestyksessä läpi kaikki tietueemme, ja muodostaa kaikista esiintyvistä ISBN-koodeista listan missä kaikissa tietueissa se esiintyy. Lopuksi se tulostaa kaikkien sellaisten tietueiden tunnisteen (kentästä 001
), joiden ISBN esiintyy useammassa kuin yhdessä tietueessa. Näitä löytyi reilu 15 000. Anna arvioikoot, mitkä niistä voisi yhdistää keskenään. Yllä oleva Perl-ohjelma on rakennettu MARC::Record
ja MARC::Batch
-ohjelmointikirjastojen päälle, jotka ovat ilmaisia, standardin mukaisia ja avointa lähdekoodia.
Case 2: verkkokirjaston pystyttäminen
Toinen tämänviikkoinen näpertelyn kohde on VuFind. Se on täysiverinen verkkokirjasto-ohjelmisto, verrattavissa esim. KDK-hankkeessa pilotoitavana olevaan ExLibriksen Primoon. Hakumoottorina VuFind käyttää Solria. Vain paras on kyllin hyvää! Sanomattakin selvää, että sekä VuFind että Solr ovat avointa lähdekoodia ja vapaasti käytettävissä.
Taustajärjestelminä VuFind voi suoraan käyttää Alephia, Voyageria, Innovativen Milleniumia, avoimen lähdekoodin eXtensible Catalogia, Kohaa ja Evergreeniä, OCLC PICAa ynnä muita. Kuten erittäin hyvin tiedämme, me suomalaiset yleiset kirjastot olemme marginalisoituneita kansainvälisistä kollegoistamme omine Axiell-järjestelminemme, mutta VuFindin ja Axiellin järjestelmien väliin voi kyllä rakentaa yhteyden. Tämä tapahtuu laatimalla ohjelma, jota VuFindissa kutsutaan ILS -ajuriksi. Toisessa päässä, eli Axiellin kirjastojärjestelmän päässä käytetään Axiell Web Services -rajapintaa, joka on useiden suomalaisten Axiellin tuotteita käyttävien kirjastojen käytettävissä.
Suomessa VuFind on käytössä ainakin Helsingin yliopiston Viikin kampuskirjastossa, jonka palvelu on nimeltään eViikki. Maailmalta löytyy paljon kirjastoja, jotka ovat valinneet VuFindin.
En perjantaina jaksanut alkaa säätämään virallisen tietohallinnon kanssa tai ehdottelemaan mitään toimiryhmien perustamista ja kerran kuukaudessa pidettäviä pullakahvikokouksia, joten laitoin omin nokkineni palvelimen pystyyn Amazonin EC2 -pilveen. Se oli asiaan jo ennalta tutustuneena oikeastaan pöyristyttävän helppoa ja siihen meni alle tunti. VuFindin olen aiemmin asentanut omalle läppärilleni, mutta nyt pystyttämääni palvelimeen indeksoin myös Vaskin bibliografisen datan ja katsoin järjestelmää muutenkin tarkemmin. Datamme on FinMARCia, mutta olen konvertoinut sen itse MARC21:ksi Kansalliskirjaston ylläpitämillä konvertointisäännöillä sekä USEMARCON-ohjelmalla (kiitos Ulla, Ere ym.). Näitä Axiellkin käyttää kun teetätämme heillä konvertointityötä.
Hyvältä ja selkeältä näyttää toi VuFind kyllä 🙂
Laadukas viikko takana 🙂