Esittelyssä kirjastojen avoin rajapinta SRU

Asiaan liittymätön, mutta naurusta kangistunut kissa

Julkaisempa tämän SRU:ta käsittelevän jutun luonnos-kansiostani, kun SRU on tullut puheeksi viime aikoina useampaan kertaan.

Kirjastoilla on pitkät perinteet aineistoluetteloidensa ohjelmointirajapinnoissa. Vaikka alallemme on hakeutunut sangen niukalti tietokone- ja ohjelmointiosaamista, ja vaikka ilmeisen harvat näitä asioita aktiivisesti ajattelevat, eräs asia mistä puhutaan paljon ovat ohjelmointirajapinnat. Nämä tulevat esiin KDK:n, Auroran, Arenan, CS Library ym. kaltaisissa hankkeissa, joissa nimenomaan avoimet ohjelmointirajapinnat ovat keskeisiä jotta eri järjestelmät voivat keskustella keskenään.

Kenties olisi itua kerätä yhteen paikkaan, kenties data.kirjastot.fi:hin tietoa käytössä ja saatavilla olevista rajapinnoista, erityisesti sellaisista joihin on nyt heti tänään pääsy sekä meillä kirjastoihmisillä itsellämme, että myös muilla organisaatioilla, kansalaisilla ja toimijoilla. Näitä tietojahan on esim. Nelli-portaalin myötä kerätty Kansalliskirjastolle.

Search/Retrieval via URL

Eräs yleinen ja tutustumisen arvoinen kirjastomaailman ohjelmointirajapinta on Search and retrieve via URL (SRU). Kyseessä on standardi, ja tavallaan nykyaikainen versio Z39.50:stä (aka ”Z” aka. ”Zing”) jota olemme kauan käyttäneet ns. kopio- eli poimintaluettelointiin. Kuten nimi sanookin, on kyseessä rajapinta tiedonhakuun. Z, SRW ja SRU ovat kaikki oikeasti eri asioita, mutta nimiä kuulee käytettävän ristiin. Z39.50:n juuret ylettävät kauas, kauas aikaan ennen WWW:tä (kuka muistaa WAIS -tiedonhakujärjestelmän?), SRU on tuoreempaa perua.

SRU:ta käytettäessä hakulausekkeet kuvaillaan Contextual Query Language (CQL) -kielellä. SRU:ta varten on toki olemassa valmiita ohjelmointikirjastoja esimerkiksi Perliin. Kun katsot alla olevia esimerkkejä, tuon query parametrin kaverina on CQL:llä kuvailtuja yksinkertaisia hakulausekkeita. CQL on kyllä sangen ilmaisuvoimainen, ja palvelimesta sitten lopulta riippuu miten se lausekkeita tulkitsee.

Kansalliskirjaston NelliWiki kertoo SRUsta ihan kattavasti.

PallasPro -järjestelmien SRU -rajapinnat vaikuttavat olevan verkkokirjastojen /Zing? -osoitteissa, ja mahdollisesti perustuvat Index Datan tekemiin komponentteihin, jotka sinänsä ovat avointa lähdekoodia ja vapaasti netistä ladattavissa ja käyttöön otettavissa. SRU-palvelimen pystyyn säätäminen ja ylläpito ei taida olla erityisen hauskaa, mutta se on mahdollista.

Varsinais-Suomen yleisten kirjastojen kirjastokonsortion Vaskin SRU-rajapinta palveli aiemmin osoitteessa http://borzoi.kirja.turku.fi/Zing?, mutta on poistunut käytöstä Auroraan siirtymisen myötä. Vaskin nykyinen SRU-rajapinta taitaa olla palomuurin takana. Lapin osoite on http://intro.rovaniemi.fi:8001/Zing? ja Ratamo -kirjastojen http://ratamo.kirjas.to:8005/Zing?.Mitäs muita on, miten nuo Axiellilla hostatut palvelut menevät (esim. http://outi.kirjas.to/). Nämä osoitteet eivät taida olla missään mainostettuja, vaan olen deduktiivisesti päätellyt ne itse, eikä niiden käyttöä näytä olevan mitenkään erityisesti estetty. Joissain kirjastoissa, esim. Vaskissa ja PIKIssä on SRU-rajapintoihin pääsy kokonaan palomuurilla estetty. Kansalliskirjaston palveluista on tietoa täällä ja USA:n Kongressin kirjaston http://z3950.loc.gov:7090/voyager?.

Löpinät sikseen, näin haet 10 kissoja tai koiria käsittelevää teosta Lapista:

http://intro.rovaniemi.fi:8001/Zing?operation=searchRetrieve&query=dc.subject=kissa%20or%20dc.subject=koira

Vastaus näyttää sitten tällaiselta

<?xml version="1.0" encoding="UTF-8"?>
<SRW:searchRetrieveResponse xmlns:srw_dc="info:srw/schema/1/dc-v1.1" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:cld="http://www.ukoln.ac.uk/metadata/rslp/schema/" xmlns:DIAG="http://www.loc.gov/zing/srw/diagnostic/" xmlns:mods="http://www.loc.gov/mods" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:SRW="http://www.loc.gov/zing/srw/" xmlns:zng="urn:z3950:zng_prototype1" xmlns:rec="info:srw/schema/2/rec-1.0">
 <SRW:version>1.1</SRW:version>
 <SRW:numberOfRecords>2382</SRW:numberOfRecords>
  <SRW:records>
 <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Joiku 2007 2 : Lapin nuuskut ry:n jäsentiedote</dc:title>
<dc:subject>koira</dc:subject>
<dc:subject>noutajat</dc:subject>
<dc:description>4 kertaa vuodessa</dc:description>
<dc:publisher>Lapin nuuskut ry</dc:publisher>
<dc:date>2007</dc:date>
<dc:language>fin</dc:language>
   </SRW:recordData>
   <SRW:recordPosition>1</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_10067478</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Burda 2005/10</dc:title>
<dc:subject>koira</dc:subject>
<dc:subject>vaatteet</dc:subject>
<dc:subject>kaavat</dc:subject>
   </SRW:recordData>
   <SRW:recordPosition>2</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_10050294</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Suuri käsityölehti 2005/4</dc:title>
<dc:subject>koira</dc:subject>
<dc:subject>vaatteet</dc:subject>
   </SRW:recordData>
   <SRW:recordPosition>3</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_10050187</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Suuri käsityölehti 2005/2</dc:title>
<dc:subject>koira</dc:subject>
<dc:subject>vaatteet</dc:subject>
<dc:subject>neuleet</dc:subject>
   </SRW:recordData>
   <SRW:recordPosition>4</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_10050185</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Suuri käsityölehti 2003/10</dc:title>
<dc:subject>koira</dc:subject>
<dc:subject>vaatteet</dc:subject>
   </SRW:recordData>
   <SRW:recordPosition>5</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_10036034</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Suuri käsityölehti 2001/11-12</dc:title>
<dc:subject>koira</dc:subject>
<dc:subject>vaatteet</dc:subject>
<dc:subject>neuleet</dc:subject>
   </SRW:recordData>
   <SRW:recordPosition>6</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_10021521</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Lappalaiskoirat : iloisesti läsnä / [teksti Sanna Karppinen] ; [kuvat Lappalaiskoirat ry]</dc:title>
<dc:creator>Karppinen, Sanna</dc:creator>
<dc:creator>Lappalaiskoirat</dc:creator>
<dc:subject>koira</dc:subject>
<dc:subject>suomenlapinkoira</dc:subject>
<dc:subject>lapinporokoira</dc:subject>
<dc:subject>ruotsinlapinkoira</dc:subject>
<dc:subject>porokoirat</dc:subject>
<dc:subject>lappalaiskoirat</dc:subject>
<dc:subject>historia</dc:subject>
<dc:subject>harrastukset</dc:subject>
<dc:subject>paimenkoirat</dc:subject>
<dc:subject>paimennus</dc:subject>
<dc:publisher>Kirjakaari</dc:publisher>
<dc:date>2012</dc:date>
<dc:identifier>978-952-5969-06-1</dc:identifier>
<dc:language>fin</dc:language>
   </SRW:recordData>
   <SRW:recordPosition>7</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_541666</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Ketterä kisu / [Sarah Phillips ; suunnittelu: Mark Richards ; suomennos: Anu Karvinen]</dc:title>
<dc:creator>Phillips, Sarah</dc:creator>
<dc:creator>Richards, Mark</dc:creator>
<dc:creator>Karvinen, Anu</dc:creator>
<dc:subject>lastenkirjallisuus</dc:subject>
<dc:subject>kuvakirjat</dc:subject>
<dc:subject>koskettelukirjat</dc:subject>
<dc:subject>paksulehtiset kirjat</dc:subject>
<dc:subject>etsintä</dc:subject>
<dc:subject>kissa</dc:subject>
<dc:subject>eläimet</dc:subject>
<dc:description>Tunnustelukirja</dc:description>
<dc:description>BTJ, T121015, BTJ Kirjo 2012 : 17a, 20121015, 7,25EUR, 9%, 22, 2,47, ACF-, 021, http://www.btj.com/btjcgi/arvo/get_add_info.cgi?type=PRES&key=4525480053575466, Kuvaus, http://www.btj.com/btjcgi/arvo/get_add_info.cgi?type=IMAGE&key=4525480053575466, Kansikuva</dc:description>
<dc:publisher>Kirjalito</dc:publisher>
<dc:date>2012</dc:date>
<dc:identifier>978-951-28-5523-0</dc:identifier>
<dc:language>fin</dc:language>
   </SRW:recordData>
   <SRW:recordPosition>8</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_541515</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Leikkisät pennut / [Sarah Phillips ; suunnittelu: Mark Richards ; suomennos: Anu Karvinen]</dc:title>
<dc:creator>Phillips, Sarah</dc:creator>
<dc:creator>Richards, Mark</dc:creator>
<dc:creator>Karvinen, Anu</dc:creator>
<dc:subject>lastenkirjallisuus</dc:subject>
<dc:subject>kuvakirjat</dc:subject>
<dc:subject>koskettelukirjat</dc:subject>
<dc:subject>paksulehtiset kirjat</dc:subject>
<dc:subject>etsintä</dc:subject>
<dc:subject>ystävät</dc:subject>
<dc:subject>leikki</dc:subject>
<dc:subject>koira</dc:subject>
<dc:subject>pennut</dc:subject>
<dc:description>Tunnustelukirja</dc:description>
<dc:description>BTJ, T121015, BTJ Kirjo 2012 : 17a, 20121015, 7,25EUR, 9%, 22, 2,47, ACF-, 021, http://www.btj.com/btjcgi/arvo/get_add_info.cgi?type=PRES&key=2226144582534108, Kuvaus, http://www.btj.com/btjcgi/arvo/get_add_info.cgi?type=IMAGE&key=2226144582534108, Kansikuva</dc:description>
<dc:publisher>Kirjalito</dc:publisher>
<dc:date>2012</dc:date>
<dc:identifier>978-951-28-5522-3</dc:identifier>
<dc:language>fin</dc:language>
   </SRW:recordData>
   <SRW:recordPosition>9</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_541505</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  <SRW:record>
   <SRW:recordPacking>XML</SRW:recordPacking>
   <SRW:recordSchema>info:srw/schema/1/dc-v1.1</SRW:recordSchema>
   <SRW:recordData>
     <dc:title>Jakt med älghund : från valp till älghund / Rolf Westerberg ; [illustrationer: Rolf Svensson ; foto: Anna-Sara Persson]</dc:title>
<dc:creator>Westerberg, Rolf</dc:creator>
<dc:subject>metsästys</dc:subject>
<dc:subject>hirvi</dc:subject>
<dc:subject>koira</dc:subject>
<dc:subject>metsästys</dc:subject>
<dc:subject>hirvikoirat</dc:subject>
<dc:subject>jämtlanninpystykorva</dc:subject>
<dc:subject>harmaa norjanhirvikoira</dc:subject>
<dc:subject>valkoinen ruotsinhirvikoira</dc:subject>
<dc:subject>musta norjanhirvikoira</dc:subject>
<dc:subject>karjalankarhukoira</dc:subject>
<dc:subject>laika</dc:subject>
<dc:subject>jakt</dc:subject>
<dc:subject>älg</dc:subject>
<dc:subject>hund</dc:subject>
<dc:subject>jakt</dc:subject>
<dc:subject>älghund</dc:subject>
<dc:subject>jämthund</dc:subject>
<dc:subject>norsk älghund, grå</dc:subject>
<dc:subject>svensk vit älghund</dc:subject>
<dc:subject>norsk älghund, svart</dc:subject>
<dc:subject>karelsk björnhund</dc:subject>
<dc:subject>lajka</dc:subject>
<dc:subject>hälleforshund</dc:subject>
<dc:publisher>Settern</dc:publisher>
<dc:date>2011</dc:date>
<dc:identifier>978-91-7586-634-5</dc:identifier>
<dc:language>swe</dc:language>
   </SRW:recordData>
   <SRW:recordPosition>10</SRW:recordPosition>
   <SRW:extraRecordData>
     <rec:id>Ppro698_541413</rec:id>
   </SRW:extraRecordData>
  </SRW:record>
  </SRW:records>
 <SRW:echoedSearchRetrieveRequest>
  <SRW:version>1.1</SRW:version>
  <SRW:query>dc.subject=kissa or dc.subject=koira</SRW:query>
  <SRW:startRecord>1</SRW:startRecord>
  <SRW:maximumRecords>10</SRW:maximumRecords>
  <SRW:recordPacking>xml</SRW:recordPacking>
  <SRW:recordSchema>dc</SRW:recordSchema>
 </SRW:echoedSearchRetrieveRequest>
</SRW:searchRetrieveResponse>

Siis ihan mukavaa XML:ää jolla voi tehdä kaikkea hauskaa. Eli ei muuta kuin parsimaan!! Jos tykkää ylläolevan Dublin Coren sijasta enemmän MARCista (kröhöm), voi vastauksen pyytää MARCXML:nä antamalle SRU-kutsulle parametrin recordSchema=marcxml, näin:

http://intro.rovaniemi.fi:8001/Zing?operation=searchRetrieve&recordSchema=marcxml&query=dc.subject=kissa or dc.subject=koira

SRU:n explain -operaatiolla voi kysyä palvelimelta mitä metadataformaatteja palvelin osaa palauttaa, ja indeksejä on haettavissa.

Muita mielenkiintoisia, olemassaolevia ohjelmointirajapintoja suomalaisiin kirjastoon ovat ONKI -ontologiapalvelimen rajapinnat sekä Kirjastot.fi:n Labsin rakentamat XML ja JSON -muotoiset rajapinnat HelMet -aineiston kyselyä varten. Tuleeko muita mieleen?

Oma lukunsa on sitten niinkutsuttu screenscraping. Tätä menetelmää voidaan toisinaan käyttää sellaisissa skenaarioissa, joissa palvelin ei oikeasti tarjoa mitään kunnollista ohjelmointirajapintaa. Näin toimivat Frank-monihaku sekä Kymenlaakson Kyyti.

Lisää avoimia rajapintoja on tulossa Axiellin kirjastojärjestelmiin (kröhöm) sekä Kansalliseen digitaaliseen kirjastoon KDK:hon.

Tänään viimeinen päiväni Turun kaupunginkirjastolla ja Vaski-kirjastoissa

Kiittimoi

  • ☑ Jätä pyyntö sähköpostin ja kalenterin sulkemisesta
  • ☑ Laadi ja laita sähköpostiin automaattivastaus
  • ☑ Jätä avainkortti
  • ☑ Palauta VPN-avain
  • ☑ Palauta työpuhelin
  • ☑ Palauta kahviautomaatin avain
  • ☑ Palauta nimikyltti
  • ☑ Kirjaa projektinhallinnasta tehtävät pois itseltäsi
  • ☑ Kuulumisten, ideoiden, palautteiden yms. vaihto Inkerin kanssa
  • ☑ Jätä pyyntö Rondo -tunnusten sulkemisesta
  • ☑ Jätä pyyntö Populus -tunnusten sulkemisesta
  • ☑ Tyhjennä työpöytä ja lokerikot
  • ☑ Käännä monitori pivotista normaaliasentoon
  • ☑ Kollegoiden kakutus
  • ☑ Kollegoiden halailu
  • ☐ Päätä mitä teet tulevaisuudessa
  • ☑ Aurinkoinen sää ulkona

Nyt katse Vilnaan, IFLA WLIC2012:een ja tulevaisuuteen. Kiitti moi, ikävä tulee. Onnea valitsemallanne tiellä ja palaillaan.

Projektinhallintatyökalu Redmine tyhjä omalta osaltani

Oma 2do -lista kondiksessa

Yrjö Lappalaisen heuristinen evaluaatio PIKIn Arenasta


Luin juuri Yrjö Lappalaisen pro gradun Verkkokirjaston informaatioarkkitehtuurin heuristinen evaluaatio — PIKI-verkkokirjasto Tampereen Informaatiotutkimuksen ja interaktiivisen median laitokselle (vmsno.). Jos olet mukana verkkokirjaston rakentamisessa, niin kannattaa lukaista tämä, ja sen viimeiseltä sivulta löytyy vielä viitteitä muihin vastaaviin, suomalaisia verkkokirjastoja käsitteleviin tutkimuksiin. Kesälukemistoa parhaimmillaan 😀

Ja jos olet ihan oikeasti, vakavissasi tekemässä verkkokirjastoa, seuraa Lappalaisen jalanjäljissä ja tee vastaava evaluaatio omastasi 3-5 hengen työryhmällä. Turun seudun Vaski-verkkokirjastoa syksystä 2010 asti rakentaneena Lappalaisen gradussa oli paljon tuttuja asioita, ja systemaattinen analyysi ja/tai muitakin testejä olisi ollut hienoa tehdä meilläkin ennen julkistusta. Mitenhän samojen ongelmien toistumista voisi välttää? Periaatteessahan mekanismi meillä Suomessa on nyt sellainen, että verkkokirjastojen rakentamisen opit keskittyvät järjestelmätoimittajallemme Axiellille, ja hankintaprosessin myötä opit sitten periytyvät ensinnäkin heidän Arena-tuotteeseensa sekä käyttöönottoprojektien myötä. Käytännössähän minä väitän että tämä on täysin rampa, riittämätön ja jopa vaarallinen kuvio, ja haluan työskennellä asian parantamiseksi.

Seuraavaksi kesälukulistallni taitaa olla jo aloittamani, mutta kesken jäänyt Nasrine Olsonin Taken for granted–the construction of order in the process of library system decision making (Borås, Valfrid 2010). Sehän se vasta mielenkiintoinen onkin.

PS. voitaisiko pliis edes kirjastoalaa lähellä olevilla aloilla julkaista tällaiset dokumentit myös jossain PDF:ää mukavammassa muodossa, vaikkapa sitten sellaisena ePUBina (ns. ”e-kirjana”).

Näkemiin Axiell PallasPro

Viimeinen kunnon silmäys PallasProhon.

Viimeinen kunnon silmäys PallasProhon.

Varsinais-Suomen yleisten kirjastojen konsortio Vaski uudistuu. Vaihdamme kirjaston taustajärjestelmän, Axiellin PallasPron saman tutun toimittajan Auroraan. Rakennamme myös nettisivuston Axiellin Arenalla. Lisäksi Vaskiin tulee lisää kirjastoja, kollegoita, aineistoa ja toki myös asiakkaita mukaan. Kolme viikkoa kestävä yliheittomme alkaa nyt.

Keskeisen työvälineen, kuten kirjastojärjestelmän vaihtamiseen liittyy aina paljon kaikenlaista muutakin kuin varsinainen ohjelman asentaminen; esimerkiksi Aurora ei tuo mitään periaatteiltaan ja toiminnoiltaan kovin uutta tai erilaista PallasProhon verrattuna; Aurora on jo hyvinkin tutun ILS-konseptin uudelleentoteutus. Vaihto on kuitenkin huomattava kirjaston sisäisesti: prosessin käytännön järjestelyt teettävät paljon työtä, uusia ja vanhoja työtapoja arvioidaan ja niistä neuvotellaan, palveluja rukataan vastaamaan uutta järjestelmää, väännetään kättä näkyvästä ja näkymättömästä vallasta, argumentoidaan, neuvotellaan, päätetään, päätetään uudelleen, leivotaan asiantuntijoiden ja päättäjien välisiä suhteita, joustetaan, hämmästellään, viestitään, tulkitaan sähköposteja, innovoidaan, säädetään, bondaillaan kollegoiden kanssa, kouluttaudutaan jne. Ja tietenkin kökötetään kokouksissa… joista sitten toki keskustellaan jälkikäteen 😉 Ja muodostetaan suurta tarinaa esimerkiksi nostalgisoimalla.

Järjestelmän vaihtoa tuleekin tarkasteltua muistakin kuin teknillis-rationaalisesta näkökulmista. Luonnollisesti tätä tulee tehtyä kollegoiden kesken kasvotusten, mutta tekstiksi asti asiaa on vääntänyt Nasrine Olson: Taken for granted–the construction of order in the process of library system decision making (Borås, Valfrid 2010). Olsonin väikkärissä järjestelmän vaihtamisen alkuvaiheita eli hankintaa, määrittelyä ja suunnittelua tarkastellaan sosiaalisena prosessina. Jarmo Saarti on laatinut Olsonin teoksesta suomenkielisen arvion Informaatiotutkimuksen vol 29. no 4:ään 2010 otsikolla Onnen kauppaako?: kirjastojärjestelmän hankinta sosiaalisena prosessina. Jarmolle kiitos kirjoituksestaan, sekä myös näiden kahden julkaisun vinkkaamisesta. Suosittelen ehdottomasti kaikkia kirjastojen järjestelmävaihdoksista ja/tai sisäisistä kulttuureista kiinnostuneita tutustumaan näihin kahteen tekstiin.

Vaskilla on ehdottomasti Suomen kirjastopalveluista hienoin logo (Kirjastot.fi:llä on paljon hienoja myös)

Meillä on täällä Vaskissa melkoinen hulina ja vilinä, mutta koska tänään oli viimeinen PallasPro -päivä ennen järjestelmän sulkemista huomenna, soin itselleni hieman aikaa tunnustella omaa ja muutamien kollegoideni suhdetta PallasProhon. Haluaisin ajatella että eräs aika tulee tänään päätökseensä, ja on uuden ajan aatto (romantiikkaa tietenkin).

Itselläni on lyhyt ja löyhä suhde Pallakseen sinänsä, mutta oli mielenkiintoista jututella muutamia kollegoita heidän PallasPro -fiiliksistään. Oheisessa videossa Mari Tammela.

Näkemiin PallasPro.

No nyt Kansalliskirjastokin kyllästyi Primoon

ExLibris Primo

KDK-hanketta luotsaava Kansalliskirjastokin irtautui asiakasliittymäohjelmistosta Primosta. Uutinen on sikäli melkoinen pommi – joskin ihan tervetullut sellainen – että KDK:n käyttöliittymäprojekti pitää kiinni lupauksestaan olla ottamatta käyttöön ohjelmistoa ellei se ole sopiva. Kuulostaa hieman oudolta, mutta tämä liittyy aiempiin päätöksiin jatkaa pilotointia (”pilotointia”) kunnes ohjelmisto vastaa määrityksiä ja tarpeita.

Oma osuuteni tähän on se, että olen ollut täällä Turun kaupunginkirjastolla reilun vuoden, työstämässä Primoa meidän Vaski-kirjastoille (laajennumme, olemme pian 300 000 asiakasta, 20M€ tulot, 45 toimipistettä). Me irtauduimme KDK-asiakasliittymähankkeesta noin kuukausi sitten. KDK-loppuraporttimme on työn alla (älkääkä kysykö miten aiomme asiakasliittymäämme kehittää).

Lukaise Kansalliskirjaston laatima, tänään julkaistu tiedote. Kansalliskirjasto lähtee nyt etsimään muita vaihtoehtoja KDK:n asiakasliittymäksi. Minä, ja monet muutkin tervehdimme mahdollisuutta avoimempaan ratkaisujen etsintään ilomielin. Kiitos Kansalliskirjastolle että yritätte aukoa näitä kiperiä solmuja ja umpikujia joihin tässä melko ilmeisesti on jouduttu sekä Primon, että itse KDK asiakasliittymähankkeen kanssa. On rohkeaa (ja oikein) sanoa ”okei tää feilaa, tehdään jotain muuta”.

Onnea matkaan. May the source be with you.

KDK-projektin virallisen tiedotuksen uutisotsikot kertovat omaa metatarinaansa

Samaan aikaan toisaalla: Tukholman kaupunginkirjaston uudet webbisivut julkaistiin tänään. Kävin Tukholmassa maanantaina tapaamassa asianosaisia tuttaviani siellä. Vakuuttavaa menoa. Scrum -projektinhallintamenetelmällä ohjattu hanke on toteutettu omin voimin Virtuella Enheten -yksikössä, osittain ostotyönä siten, että konsultoivia ohjelmoijia ja suunnittelijoita on pidetty kirjaston omissa toimistotiloissa. Nyt ohjelmointiosaamista rekrytään omaan taloon ja ostopalvelun osuutta vähennetään. Teknologiana on Axiellin BookIT-kirjastojärjestelmä, sen Alma -rajapinta sekä avoimen lähdekoodin Drupal-julkaisujärjestelmä.

Howto: FinMARC→MARC21 video

Tein 14 minuutin opetusvideon miten kirjaston aineistotietokanta muunnetaan FinMARC -formaatista MARC21:een.

Työkaluna Kansalliskirjaston ylläpitämä USEMARCON, jota Axiellkin ilmeisesti (=toivottavasti) käyttää.

Jos USEMARCON -konversiosääntöjä haluaa itse muokata, ne näyttävät tältä:

100I1           | 100I1           | If (I1=1 Or I1=2) Then '1' Else S
100I2           | 100I2           | ' '
100$a           | <E00$a          | S
100$h           | <E00$a          | + ', '+S; RegReplace('\\s*\\([^\\.]{2,} [^\\.]{2,}\\)\$', '')
100$f           | <E00$c          | S
100$c           | <E00$d          | S
100$x           | <E00$e          | S; RegReplace('^\\((.*)\\)\$', '\\1')
E00             | 100             | S;
                                    MoveBefore ('d', $e);
                                    MoveBefore ('c', $d);
                                    Replace ('$c' By ',$c');
                                    Replace ('$d' By ',$d');
                                    Replace ('$e' By ',$e');
                                    If (((RegFind('.*\\$(.)') < 0) Or (RegMatch(1) != '4')) And RegFind('\\.\$') < 0 And RegFind('\\-\$') < 0) S + '.'

Turku ja Vaski ovat irtisanoutuneet KDK:n Primosta

KDK

Noniin tätä (ja montaa muutakin asiaa) on haudottu, mutta it’s official: Turun kaupunginkirjasto ja muut Vaski-kirjastot irroittautuvat Kansalliskirjaston luotsaaman KDK-hankkeen asiakasliittymästä Primosta. Katso tiedote KDK-hankkeen sekä Kansalliskirjaston julkaisemana.

Tehtävänhallintatyökalu suljettu (paitsi loppurapsa on vielä jäljellä)

Turku ym. Vaski-kirjastot nyt avointa dataa

Kiitos kuvasta David Fulmer (dfulmer@flickr)

Moi, terveisiä Varsinais-Suomesta. Laitoimme tänään koko Vaski-kimppamme luettelointitietokannan sisällön sellaisenaan verkkoon.

Vaskin, eli Turun, Liedon, Maskun, Mynämäen, Naantalin, Nousiaisten, Raision, Ruskon ja Taivassalon kunnankirjastojen yhteisessä tietokannassa on noin 1.7 miljoonaa tietuetta ja niihin on vaihtelevalla tarkkuudella kuvailtu kaikki ne kirjat, lehdet, cd-levyt, DVD:t, nuottivihot, yksittäisiä musiikkikappaleita ynnä muita aineistoja, joita kirjastojen hyllyistä voit löytää. Juuri nämä bibliografiset tietueet ovat historiallisesti muodostaneet kirjastojen tiedonhaun keskeisimmän ytimen, ja haluamme tällä julkistuksella olla mukana kaikenlaisten tietovarantojen käytön esteitä vähentävässä avoin data -liikehdinnässä (engl. Open Data).

Tässä tiedoitteemme, joka lähti tänään lehdistölle sekä tietenkin myös Kirjastot.fi:hin:

Varsinais-Suomen kirjastojen data avoimeksi

30. syyskuuta 2011 10:00

Varsinaissuomalaiset Vaski-kirjastot ovat avanneet aineistotietokantansa sisällön julkiseen käyttöön. Aiemmin vain hakuliittymän kautta käytettävä tietokanta on nyt lisäksi ladattavissa verkosta kokonaisuudessaan, tietokoneella käsiteltävässä muodossa. Tämä mahdollistaa kokonaisuudelle paljon uudenlaisia käyttömahdollisuuksia. Vaski-tietokanta sisältää noin 1.7 miljoonan kirjan, levyn, musiikkikappaleen ynnä muiden teosten julkaisutiedot sekä kirjastoammattilaisten tekemät luokittelu- ja hakusanatiedot.

Open data, tai suomalaisittain avoin data on pyrkimys avata erilaisia tietolähteitä mahdollisimman vapaaseen käyttöön. Erityisesti julkisin varoin tuotettua ja ylläpidettyä dataa ollaan Suomessa avaamassa monilla eri tahoilla.

Kirjastot ovat merkittävä osa yhteiskunnan avointa ja yhdenvertaista tietoinfrastruktuuria. Niiden tietokannat sisältävät paljon huolellisesti koottua tietoa erilaisista kulttuurijulkaisuista ja luonnollisesti kirjastot haluavat edistää näiden tietojen monipuolista saatavuutta. Suomessa kirjaston aineistotietokantojen saatavuutta pyrkivät parantamaan kirjastojen yhteinen Kirjastot.fi Labs -hanke, sekä Kansallinen Digitaalinen Kirjasto, jonka rakentamiseen Vaski-kirjastot myös osallistuvat. Vaski-kirjastoihin kuuluu tällä hetkellä yhdeksän kaupungin- ja kunnankirjastoa (vuonna 2012 17), ja ne palvelvat noin 340 000 suomalaista.

Lisätietoja antavat Varsinais-Suomen maakuntakirjastona toimivan Turun kaupunginkirjaston projektisuunnittelija Mace Ojala (mace.ojala@turku.fi) ja palvelujohtaja Ulla-Maija Maunu (ulla-maija.maunu@turku.fi).

Vaski-kirjastojen tietokanta on avattu yhteistyössä sisältöä tuottavan BTJ:n kanssa.

Henkilökohtainen kiitokseni kollegoilleni täällä Vaski-kirjastoissa ja erityisesti pomoille ja luetteloijille, sekä BTJ:lle jolta suuri osa suomalaisten kirjastojen luettelointityöstä on ostettu ja joka on käytännössä meidän yhteisluettelomme. Terkut myös kansainväliselle open data -yhteisölle 🙂

Nyt avattu Vaski-kirjastojen data on ladattavissa isona läjänä sekä XML-muodossa että MARCille tyypillisessä ISO-2709 -siirtomuodossa osoitteesta http://data.kirjastot.fi. Lisenssinä on erittäin salliva Creative Commons CC0. Kirjastoalan yhteisestä bibliografisesta MARC-standardista on erilaisia versioita, olemme Suomessa vielä siirtymävaiheessa FinMARCista kansainväliseen MARC21:een. MARCista sekä sen eri formaateista löydät lisää tietoa Kansalliskirjaston sivuilta ja meillä on myös erityinen sähköpostilista MARC-asioille… joka on tosin nykyään erittäin hiljainen. Olen bloggaillutkin silloin tällöin MARCista.

Tämä Vaski-julkistus on siis FinMARCia, ja yksittäinen tietue näyttää esim. tällaiselta:

00791nam a22002533 450
001 Ppro853_148215
008 921022s1992 fi 8
021 $a 951-581-008-6 $c sid. $d 162 FIM
041 1 $a fin $c rus
057 $a 68
064 $a 68.22
065 $a 68.22
068 $a 68.22
098 $a 68.22
100 1 $a Ponomareva $h Julia
241 $a Gribnaja kuhnja
245 2 $a Vaskiratsastajan sienisalaatti $b 201 mainiota sieniohjetta $d [Julia Ponomareva & Aleksei Ponomarev] $e [toimittanut ja suomentanut Liisa Viitanen]
260 $a Helsinki $b Taifuuni $c 1992 $e [Pieksämäki] $f RT-paino
300 $a 231 s. $b kuv. $c 22 cm
652 $a keittokirjat
652 $a sieniruoat
700 10 $a Ponomarev $h Aleksei
745 $a 201 mainiota sieniohjetta
745 $a Vaskiratsastajan sienisalaatti

Tai vastaavasti XML:nä

<record>
<leader>00791nam a22002533  450 </leader>
<controlfield tag="001">Ppro853_148215</controlfield>
<controlfield tag="008">921022s1992    fi                      8</controlfield>
<datafield tag="021" ind1=" " ind2=" ">
<subfield code="a">951-581-008-6</subfield>
<subfield code="c">sid.</subfield>
<subfield code="d">162 FIM</subfield>
</datafield>
<datafield tag="041" ind1="1" ind2=" ">
<subfield code="a">fin</subfield>
<subfield code="c">rus</subfield>
</datafield>
<datafield tag="057" ind1=" " ind2=" ">
<subfield code="a">68</subfield>
</datafield>
<datafield tag="064" ind1=" " ind2=" ">
<subfield code="a">68.22</subfield>
</datafield>
<datafield tag="065" ind1=" " ind2=" ">
<subfield code="a">68.22</subfield>
</datafield>
<datafield tag="068" ind1=" " ind2=" ">
<subfield code="a">68.22</subfield>
</datafield>
<datafield tag="098" ind1=" " ind2=" ">
<subfield code="a">68.22</subfield>
</datafield>
<datafield tag="100" ind1="1" ind2=" ">
<subfield code="a">Ponomareva</subfield>
<subfield code="h">Julia</subfield>
</datafield>
<datafield tag="241" ind1=" " ind2=" ">
<subfield code="a">Gribnaja kuhnja</subfield>
</datafield>
<datafield tag="245" ind1="2" ind2=" ">
<subfield code="a">Vaskiratsastajan sienisalaatti</subfield>
<subfield code="b">201 mainiota sieniohjetta</subfield>
<subfield code="d">[Julia Ponomareva &amp; Aleksei Ponomarev]</subfield>
<subfield code="e">[toimittanut ja suomentanut Liisa Viitanen]</subfield>
</datafield>
<datafield tag="260" ind1=" " ind2=" ">
<subfield code="a">Helsinki</subfield>
<subfield code="b">Taifuuni</subfield>
<subfield code="c">1992</subfield>
<subfield code="e">[Pieksämäki]</subfield>
<subfield code="f">RT-paino</subfield>
</datafield>
<datafield tag="300" ind1=" " ind2=" ">
<subfield code="a">231 s.</subfield>
<subfield code="b">kuv.</subfield>
<subfield code="c">22 cm</subfield>
</datafield>
<datafield tag="652" ind1=" " ind2=" ">
<subfield code="a">keittokirjat</subfield>
</datafield>
<datafield tag="652" ind1=" " ind2=" ">
<subfield code="a">sieniruoat</subfield>
</datafield>
<datafield tag="700" ind1="1" ind2="0">
<subfield code="a">Ponomarev</subfield>
<subfield code="h">Aleksei</subfield>
</datafield>
<datafield tag="745" ind1=" " ind2=" ">
<subfield code="a">201 mainiota sieniohjetta</subfield>
</datafield>
<datafield tag="745" ind1=" " ind2=" ">
<subfield code="a">Vaskiratsastajan sienisalaatti</subfield>
</datafield>
</record>

Olisko kellään kokemusta PallasPron verkkokirjaston logien penkomisesta?

What's this then?

Onkohan kellään tietoa PallasPro-Intro -verkkokirjaston hakulogien tonkimisesta? Siinä ei käsittääkseni ole minkäänlaista raportointityökalua sinänsä, mutta ainakin sellaisilla kirjastoilla joilla on pääsy oman verkkokirjastonsa (aka näyttöluettelon aineistoluettelon aka OPACin) webbipalvelimeen on mahdollisuus tutkia sen logeja. Meidän (siis Vaskin) verkkokirjasto esittäytyy näin:

Server: PallasPro-Intro3 (liw3srvr kirjasto 13.6.2011 klo 12.10.03 HP-UX B.11.00 U II 2.0)

Onko kellään kokemusta tällaisen palvelimen logien tonkimisesta? Hakulausekkeethan eivät PallasPro-Introssa näy hakutulossivun URLissa vaan HTTP-headerissa. Onko tähän jotain työkaluja olemassa? Apachen logien tonkimiseen on vaikka mitä työkaluja, mutta tämä liw3srvr on mulle tyystin tuntematon.

Mikäli PallasPro-Intro juttelee taustajärjestelmän kanssa SRU:lla, tuon rajapinnan tarkkailu olisi toinen herkullinen paikka nuuskia mitä asiakkaat etsivät. Webbipalvelimen logista näkyy tosin kaikkea muutakin hauskaa.

Unelma: hakutuloksia seurattaisi systemaattisest päivittäin, ja tietoa hyödynnettäisi luetteloinnissa ja luetteloinnin apuvälineiden (esim. sanastot) kehittämisessä, kokoelmapolitiikassa, tapahtumien järjestämisessä ja käyttöliittymäsuunnittelussa. Näen asian niin, että tuohon PallasPro Intron hakulooraan asiakkaat kertovat tuhansia kertoja päivässä mitä he haluavat. Logien tutkiminen on tämän viestinnän kuuntelua. Näiden seuraaminen, tutkiminen ja julkaisu (sekä datana että jalostetusti) voisi minun mielestäni olla arkipäiväistä kirjastorutiinia.

Aloitin säikeen myös Kirjasto-kaapelilla.

Another day in the office

Oh dear, my cubicle is a mess

Today on 25th of July i participated in Library day in the life -campaign. This was already the 7th time for the campaign, and the idea that all sorts of library workers tell about their everyday job for a day (some are reporting all week). The background of the campaign is explained better elsewhere. Today afternoon when i started writing this there were 144 registered reporters and many, many more by the evening. Even more unregistered people were active, especially on tag #libday7 on Twitter.

Ok let’s get to the (everyday) business, this is what i do on this random day in the office:

Just before 9 when i arrived at the library office it seemed that the holiday-season was coming to an end as it seemed more lively than the previous few weeks at the Turku city library’s main building. This day i intended to read some ExLibris Primo documentation and see if i could come up with a way to generate lists of new titles from it via it’s servlet programming interface (API). We are piloting Primo in National Digital Library of Finland -project.

The morning didn’t go too well in that regard, that i was interrupted a few times (quite useful interruptions though, i’m not saying that). First we discussed with my boss how i could get my hands on the access logs of the online catalogue (OPAC) of our Vaski -libraryconsortia for doing some analysis of them. After that we agreed, that i am allowed to travel to and attend Online Information 2011 -conference (where i will be presenting), if i take unpaid leave for it.

11:20 a late morning coffee at the excellent Café Art around the corner.

After coffee i actually managed to spend about 30 minutes looking for and asking for the Primo documentation before the next interruption. This time i had to figure out my own extra salary (päivärahat) for the duration of the IFLA 2011 -conference, where i will be presenting my pet-project Cycling for libraries. I spent a little more than half an hour on this task of calculating my salary.

After that i downloaded primo4j, eyeballed it’s documentation and tried out an example program that came with it.

14 o’clock pasta at Café Sirius.

After food i opened the Primo CSS-stylesheet, which i haven’t really touched during all summer. I have the CSS under version control system (i’m using Bazaar aka bzr), and i reoriented myself to how i had arranged the files there. I also thought about how to organize CSS and other customizable components of the Primo user interface in a version control system (and issue management system), if we wanted to collaborate with other pilot-organizations of the National Digital Library. I wrote a proposal to our NDL-mailing list about finally getting together and starting a collaboration with some such tool.

At about 15:30 i found and installed a version of Firebug that is compatible with my version of Firefox, Firefox 6.0. I started to fiddle with the CSS, and tune it to look like what our ad agency KMG is building our Vaski-consortia’s new website to look like. So i was tuning the colours and layout of our navigation menu etc. It’s quite meditative, really.

I left the office a little after 18, i had tickets to an art performance (which was great, i may add).

Arkipäivä kirjastotyössä

Primon CSS:n säätelyä. Varjo-IT FTW! =)

Osallistuin tänään 25.7. Library day in the life -kampanjaan. Se järjestettiin nyt jo seitsemättä kertaa ja ideana on, että päivän mittaan erilaiset kirjastoihmiset kertovat arkipäivästään netissä; kamppiksen taustoja on selitelty tarkemmin muualla. Tätä kirjoittaessa meitä rekisteröityneitä on 144 kappaletta, ja rekisteröitymättömiä on varmasti enemmän, etenkin Twitterin #libday7 -tagilla.

Asiaan, eli sattumanvarainen maanantai kirjastoammattilaisen arjessa:

Vähän ennen klo 9 toimistolle saapuessani vaikutti, että lomakausi on pikkuhiljaa päättymässä ja toimistolla täällä Turun pääkirjastolla on jo hieman enemmän elämää kuin aiemmilla viikoilla. Tarkoitus oli lueskella Kansallisessa Digitaalisessa KDK:ssa pilotoitavana olevan ExLibris Primon dokumentteja sillä ajatuksella, että keksisinkö jonkun menetelmän tuottaa Primosta uutuusluetteloita sen servlet-ohjelmointirajapintojen kautta.

Aamupäivä meni tämän kannalta kuitenkin melkolailla harakoille muutaman (sinänsä ihan hyödyllisen) keskeytyksen vuoksi; ensiksi juttelimme pomoni kanssa miten saisin Vaskin -verkkokirjaston logeja tutkittavakseni ja sen jälkeen sovimme, että voin matkustaa Online Information 2011 -konferenssiin (jossa minulla on puheenvuoro), mikäli otan palkatonta lomaa.

11:20 viivästyneet aamukaffit mainiossa Cafe Artissa tuossa kulman takana.

Kerkesin etsiskelemään ja kyselemään noita Primon dokumentteja jonkin puolisen tuntia ennen seuraavaa keskeytystä: nyt oli tarpeen laskea päivärahat IFLA 2011 -konferenssiin osallistumisesta, johon menen esittelemään Cycling for librariesia. Päivärahojen selvittelyyn ja laskemiseen meni reilu puoli tuntia.

Sen jälkeen lueskelin latasin primo4j:n, selailin sen dokumentteja ja kokeilin sen mukana toimitettua esimerkkiohjelmaa.

Klo 14 ruokana pastaa Café Siriuksessa.

Ruoan jälkeen aloin katselemaan Primon tyylitiedostoja (eli CSS:ää), jolle en ole tehnyt oikeastaan mitään kesän aikana. CSS:t ovat minulla versionhallintajärjestelmässä, katselin vähän miten olen sen sinne aiemmin organisoinut ja mietin miten Primon CSS:ää (ja muuta käyttöliittämän muokkausta) olisi paras versionhallintajärjestelmään tallentaa, jos haluaisi tehdä sitä yhdessä muiden KDK-pilottien kanssa. Kirjoitin KDK-pilottien sähköpostilistalle ehdotuksen yhteisestä työkalusta tähän hommaan.

Noin klo 15:30 löysin sellaisen version Firebugista, joka toimii käyttämäni Firefox 6.0:n kanssa. Aloin säätämään KDK:n Primon Vaski-näkymää sen henkiseksi, millaiseksi käyttämämme mainostoimisto KMG on tekemässä uutta, kirjastokonsortiomme yhteistä verkkosivustoa. Säätelin siis Primon navigointivalikon värejä ja asetteluja. Se on oikeastaan aika tyydyttävää työtä.

Toimistolta lähdin hieman klo 18 jälkeen, sillä minulla oli lippu Salainen retki -esitykseen, joka on osa Elämyspuisto Turkua.

Vaskin asiasanat, jotka eivät ole YSAssa

Sanaston pengontaa

Kävin läpi Vaski-kirjastojen aineistotietokannan ja etsin asiasanat, jotka eivät esiinny tesauruksessa. Ohessa lista yleisimmistä:

esiintymien lkm termi
202 sotaromaanit
108 Lieto-kokoelma
100 korjausoppaat
66 eräkirjat
38 matkakirjat
29 sisustusoppaat
27 Suomen historia
23 kansanmusiikki: Venäjä
23 jouluaskartelu
22 posliinimaalaus
21 viihdetaiteilija : Suomi
21 salapoliisiromaanit
20 Yhdistyneet kansakunnat
20 kirjasto- ja informaatiopalveluala
20 1980-LUKU
18 vaateompelu
17 rock and roll
16 MURRENÄYTTEET
16 itämaiset taistelulajit
15 sosiaali- ja terveydenhuolto
15 rajavartiolaitos
15 paperiaskartelu
15 laivaluettelo
15 DVD-elokuvat
14 tiedeakatemiat
14 Suomen taideyhdistys
14 piirroselokuvat
13 tabulatuurinotaatiot
13 ranskalainen keittiö
13 nuorten aikuisten kirjat
13 Jeesus Kristus
13 äänentoistotekniikka
13 šamanismi
12 YKSINLAULU
12 vauvanhoito
12 Titanic
12 tilastollinen tutkimus
12 punk rock
12 kaupunkihistoriat
12 historia : 1900-luku
12 arabialainen musiikki
12 1960-luku
11 tšekin kieli
11 säveltäjät : Suomi
11 rentoutuminen
11 muodin historia
11 kuultokudos
10 varastaminen
10 Uusi testamentti
10 taitelijat
10 seminaarit (kokoukset)
10 samanismi
10 rockmusiikki
10 kiinalainen keittiö
10 1800-LUKU

Ohjelman (kts. alla) antamista tiedoista näkee myös, että esim. asiasana muodin historia (jota ei ole YSAssa) esiintyy Vaskin tietueissa Ppro853_137785, Ppro853_541141, Ppro853_541143, Ppro853_541144, Ppro853_541145, Ppro853_541146, Ppro853_541634, Ppro853_561083, Ppro853_561086, Ppro853_561087 sekä Ppro853_561088.

Eri asiasanoja joilla on vain yksi esiintymä Vaskissa löysin 1761 kappaletta. Kymmesti esiintyviä asiasanoja on kahdeksan kappaletta. Miten tällaista dataa olisi parasta havainnoillistaa? Ideoita vastaanotetaan.

Vaski on FinMARC 1998 -muotoa ja kyseisen standardin mukaan kentässä 652 olevat asiasanat ovat peräisin Yleisestä suomalaisesta asiasanastosta, eli YSA:sta (kansainvälisessä MARC21:ssä asia ilmaistaan hieman toisin, kuvaamalla asiasanakenttien osakentässä ‡2 mikä sanasto on kyseessä, tyyliin 650 #7 ‡a bibliografinen valvonta ‡2 ysa).

Tein aiemmin pienen työkalun jolle voi antaa yksittäisiä MARC-tietueita ja se kyselee ONKI-palvelun ohjelmointirajapintaa (APIa) käyttäen ovatko tietueen asiasanat YSO-ontologiassa. Kun YSA julkaisiin vastikään avoimena datana, tuli nyt tekemäni massakäsittely helpommaksi. Työn voi nykyään tehdä omalla koneella, pommittamatta ONKIn rajapintaa noin suurella kyselymäärällä.

Prosessi

Noukin ensin YSA:n SKOS-muotoisesta tiedostosta varsinaiset sanat (prefLabel ja altLabel) tekstitiedostoon yhdeksi pitkäksi, pitkäksi listaksi. 14.6.2011 lataamassani tesauruksessa oli 36991 termiä.

Sekä MARC-data että sanasto ovat saatavilla myös XML:nä, jonka käyttäminen olisi oikeaoppisempaa, mutta en nyt jaksanut säätää niiden kanssa sillä XML:n käsittelytyökalut ovat minulle aika tuntemattomia. Sensijaan olen tottunut operoimaan unixin komentoriviltä ja opettelen myös Perliä.

Tässä kirjoittamani Perl-kielinen ohjelma jota käytin:

#!/usr/bin/perl

use MARC::Batch;

my $file = "vaski-kunnostettu.mrc";
my $batch = MARC::Batch->new('USMARC', $file);
my $sanasto = "~/ysa.lista.alt_too";

$batch->strict_off();
while (my $record = $batch->next()) {
        for my $termi ($record->subfield('652', 'a')) {
        if (system("grep -q -i \"$termi\" $sanasto")) {
            print($termi, ";", $record->field('001')->as_string,"\n");
        }
    }
}

Kuten ehkä huomaat, tämä on hyvin kaukana elegantista. Ensinnäkin käsiteltävät tiedostot on nimetty ohjelman sisällä ja toisekseen kukin termi etsitään sanastosta käyttäen ulkoista ohjelmaa. Tämä aiheuttaa yhden forkin per asiasana, joka on huono asia. Oikeasti vertailu pitäisi tehdä tämän ohjelman sisällä, lukemalla asiasanat tiedostosta yksiulotteiseen taulokkoon tai listaan. Mutta toimii tämä näinkin, kun huonoa ohjelmistosuunnittelua voi korvata prosessoriteholla 🙂 Miniläppärini (joka on ainoa käyttämäni työväline) rouskutteli tätä useita tunteja.

Mutta tämän ei olekaan tarkoitus olla eleganttia. Tämän on tarkoitus osoittaa kirjastoammattilaisille, että me itse voimme ottaa aloitteen käsimme sen sijaan, että odottelemme että järjestelmätoimittajamme tekee kivoja asioita puolestamme (sitä on turha odotella).

Vielä pari huomiota laatimani menetelmän puutteista: se ei huomioi asiasanaketjuja, ja tuon kaltainen huoleton merkkijonojen etsintä johtaa vääriin tuloksiin mikäli etsittävä epäkelpo asiasana esiintyy osana kelpoa asiasanaa. Tälle asialle pitäisi todella tehdä jotain.

Mitä välii?

Ymmärtääkseni kaikkien 652-kentässä olevien termien pitäisi olla peräisin YSA:sta. Näin sanoo myös FinMARC -formaatti. Asiasanoja joita ei YSAssa ole, ei pitäisi käyttää ainakaan kyseisessä kentässä. Kuten tiedämme, ei asiasanasto kuvaa kaikkia maailman ilmiöitä. Siksi paikallisille sanastoille onkin tarvetta.

Minua paremmin luettelointiin perehtyneet tietänevät mitä sisällönkuvailussa oikeasti kuvaillaan. Jossain lienee sovittu, onko sisällön lisäksi aiheellista kuvailla muotoa. Esim. Vaskissa käytetään termejä ”Nintendo Wii”, ”sotaromaanit” ja ”elämäkerrat” kuvailemaan muotoa. Nämä teokset eivät kerro Nintendon Wii-peleistä, sotaa kuvaavista romaaneista tai elämäkertojen kirjoittamisesta, vaan ovat niitä. Ehkä tämä on ookoo – en jaksa nyt lueskella luettelointisäännöstöä asiaa tarkistaakseni enkä muista ulkoa mitä siellä sanotaan. Mutta ei ole vaikea nähdä että tämä on problemaattista. Ihmettelin samaa asiaa aiemmin, kun mietin minkähänlaista olisi “ihan oikea kirjastotyö” pelien parissa?

Mainiot luetteloijat ovat arvatenkin tämän muoto vs. sisältö -asian ratkaisseet jollain sopimuksella (joka siis lienee kirjattuna luettelointisääntöihin). Käytännössä ainakin Vaskissa kuvaillaan surutta sekä muotoa että sisältöä 652 -kentässä.

Tässä on muitakin mielenkiintoisia puolia: MARC-tietueessa ei esimerkiksi ole mitään tietoa siitä, mitä YSAssa on ollut tietueen luontihetkellä. YSA muuttuu ajan myötä, kenties osa nyt listaamistani termeistä on ollut kyseisen luetteloijan käyttämässä YSA:n versiossa luettelointihetkellä… MARC-tietueesta itsestään puuttuu tällainen tekninen metadata.

Kirjoitusvirhe luetteloinnissa on fataali virhe, ja teos katoaa kyseisen aiheen kannalta mustaan aukkoon. Varsinaisia kirjoitusvirheitä löysin Vaskista onneksi vain ihan muutaman.

Monet löytämäni, YSA:n ulkopuoliset termit ovat hyvin käytännöllisiä ja olen oikeasti onnellinen että niitä on tietueisiin luettelointisääntöjen vastaisesti tallennettu. Tämä kertoo sanaston puutteellisuudesta ja myös luokitusjärjestelmän puutteista, sekä kirjastoihmisten omatoimisista ongelmanratkaisupyrkimyksistä. Se on tietenkin aivan oikein. Nämä itse keksityt termit voisi eristää omaan sanastoonsa, jolla YSAa täydennetään, ellei ole YSAn tarkoituksenmukainen ylläpito ole mahdollista. Lisäksi meillä on käytettävissämme useampia sanastoja YSAn rinnalla ja niitä olisikin hyvä käyttää MARC-tietueen sellaisissa paikoissa, jotka eivät ole YSAlle varattuja.

Axiell saa palautetta; miten parannettaisi tilannetta?

Axiell

Ei kannata missata Kirjastot.fi:ssä käytävää keskustelua Axiellista sekä PIKI-alueen verkkokirjastouudistuksesta. Heikki Poroila aloitti blogissaan otsikolla PIKI-uudistus Tampereella epäonnistunut – asiakaspalaute murskaavaa ja sittemmin keskustelua on käyty Kirjasto-kaapelin puolella.

Jos minulla olisi kirjasto, se olisi varmasti Auroraton ja luultavasti Arenaton. Kirjastojen ja yritysten suhde on kiusallinen, eivätkä kirjastojen suhteet Axielin kanssa tunnu kuulopuheideni mukaan olevan kovin lämpimät. Tämä varmaan tiedetään Axiellissa kyllä, mutta itselleni lähinnä HelMetin Innovative -umpiossa kasvaneena epäluottamuksen määrä on kuitenkin ollut yllätys. Tilanne ei tietenkään ole kenenkään etu, ei kirjastojen, ei Axiellin eikä Suomen kansan etu.

Hyvä kuitenkin että tätä keskustelua käydään. Eilen taas seikkailin avoimen lähdekoodin maailmassa, ihailusta pakahtuneena. Aivan eri maailma. En nyt tarkoita tuotteita (siis tietokoneohjelmia) vaan avointa lähdekoodia kokonaisuudessaan. Mitä tapahtuisi jos avaisimme Axiellin kanssa tai ilman Axiellia jonkun issue trackerin, jonne dokumentoisimme ohjelmistohankkeitamme? Voisimme tehdä sen heti, siihen ei kauaa menisi sillä Kirjastot.fi on pitkään tarjonnut alallemme keskitettynä projektinhallintatyökaluna Redmineä.

Julkiset ongelmien raportointi-, dokumentointi- ja seurantatyökalut ovat olleet arkea avoimen lähdekoodin maailmassa vuosikausia. Vaikka Axiellin Arena ja Aurora -tuotteet eivät avointa lähdekoodia olekaan, voisimme aivan hyvin valita tehdä projektinhallintaa avoimesti, mieluusti Axiellin kanssa yhteistyössä.

Tässä vielä täydellisyyden (ja tautologian) vuoksi Kirjasto-kaapeli -foorumille kirjoittamani haaste:

Hyvää keskustelua täällä. Mutta hmm-hmm miten voitaisi parantaa tilannetta?

En tiedä moniko meistä tuntee esim. issue trackereiden kaltaisia projektinhallintatyökaluja enkä tiedä millaista ohjelmistoprojektien hallintaa Axiell sisäisesti tekee, mutta ehdotan, että avaamme julkisen issue trackerin.

Kirjastot.fi on jo pitkään tarjonnut Redmine -ohjelmistoa kirjastojen erilaisiin projektinhallintatarpeisiin, olen itse käyttänyt sitä 23 asiaa -verkkokurssin ja Suomen EuropeanaLocal -hankkeen yhteydessä. Redmine on ihan hyvin toimiva ongelmapohjaiseen projektinhallintaan, tosin en ole mikään projektinhallinnan ammattilainen enkä ole aktiivisesti käyttänyt montaakaan vastaavaa ohjelmistoa. Avoimen lähdekoodin maailmassa joitain yleisesti käytettyjä ovat Bugzilla, Launchpad, Trac (mm. Europeana), SourceForge, Google Code, Redmine.

Tällaisethän ovat tuolla ”Oikeassa Maailmassa”, kirjastokuplamme ulkopuoellla aivan arkipäiväisiä ohjelmistonkehityksen työkaluja. Avoin lähdekoodi ei ole edellytys tällaisen järjestelmän käyttämiseen (vaikka avoin lähdekoodi on tietenkin parempi asia kuin estetty lähdekoodi).

Vaski-kirjastoissa ollaan ottamassa käyttöön Auroraa. Asiakasliittymäksi tulee KDK, jota pilotoimme. Henkilökohtaisesti olen valmis sitoutumaan yllä kuvailemani kaltaiseen järjestelyyn käyttää jotain issuetrackeriä. Itseasiassa olisin hyvinkin kiinnostunut jos me Axiell -tuotteita kehittävät kehittävät päättäisimme ottaa tuollaisen jokapäiväikseksi työkaluksemme ja yhteistyöalustaksemme.

Olisiko kiinnostuneita? Tämä on erityisesti suunattu kollegoilleni Vaski-kirjastossa, Axiellille ja Kansalliskirjaston kirjastoverkkopalveluyksikölle, sekä mukaan haluaisin tietenkin kollegoita muualtakin jossa Axiellin kanssa toimitaan. Äkkiseltään tuntuisi hyvältä perustaa omat issue trackerit Axiellin Auroralle ja Axiell Arenalle, ja KDK:llekin olen kaipaillut sellaista. Miten on?

Bibliografista infopornoa, tätä et järjestelmätoimittajaltasi saa

Aineiston ikä kustantajittain

Mainio Matti Lassila on leiponut kirjastojen Open Data -julkaisujen perusteella erilaisia karttoja kirjastoaineistoon Kaukomieli -blogissaan. Lähdemateriaalina on tässä HelMetin avoin data, joka avattiin Kirjastot.fi:n Labsin voimin; muut Suomen kirjastothan eivät vieläkään saaneet aikaiseksi avoin data -julkaisua. Minulla on Vaski-tietokanta sekä pari muuta Varsinais-Suomalaista tietokantadumppina ja olen niitä hieman kopeloinut ja kartoittanut lähinnä ajatus- ja ohjelmointiharjoituksina. Matti on ottanut huomattavasti perusteellisemman otteen ja esittänyt aineistolle mielenkiintoisempia kysymyksiä R:llä.

Täällä Vaski-alueellakin sekä avointa dataa että tällaisia visualisointeja on käsitelty johtoryhmässä, mutta edelleen tavara istuu tiukasti piilossa uteliailta ja ahkerilta. Kokoelman visualisointi olisi erinomainen työkalu kokoelmanhallintaan, ja tätä yritetään ajaa nyt täällä Vaski-alueella.

Kiitos Matti ensinnäkin mielenkiinnosta kirjastoaineistoa ja sen visualisoimista kohtaan, sekä työn tulosten julkaisusta. Kirjastoalalla on sekä kiinnostusta että tarvetta tällaiselle, mutta osaamista ja ennenkaikkea aloitekykyä kyllä puuttuu. Tässä olisi työmaata!

Nyt se yhteisluettelo pystyyn

Noni, yleisten kirjastojen yhteisluettelotyöryhmän rapsa on valmis ja ulkona uunista. Lukekaa (1.1MB PDF).

Yhteisluettelosta on kuultu ennenkin, esim. Ranskan vallankumouksessa ja klassisten bibliografien kirjoituksissa. Jo tuttuja yhteisluettelohankkeita kotimaasta: KDK, Linda, kaikkien kimppojen omat ”paikalliset yhteisluettelot” (Vaski, PIKI, HelMet, Kyyti jne jne), BTJ, Open Data, Frank, Mandis. Nyt nämä yhteen ja hyvä tulee!