PIKI-kirjastojen tietokantapöyhintäni lähdekoodi, työpäiväkirja ja raportti julkistettu

BaseX:llä ja XQueryllä MARC21 -tietueiden kimpussa

Tein marras-joulukuussa freelancena töitä PIKI-kirjastoille tietokannan  siivouksen parissa. Pöyhin about 2 miljoonaa MARC21 -tietuetta kokonaan kirjastojärjestelmän (Axiell Aurora) ulkopuolella ja hauskaa oli. Lisäksi suunnittelin miten kirjastojärjestelmän ulkopuolella tehtyjä muutoksia voi tuoda tuotantotietokantaan ym. ym.

Projektin- ja asianhallintaan käytin Kirjastot.fi:n tarjoamaa Redmineä, ja käytin sitä myös työpäiväkirjanani. Avasin sen julkiseksi ja se on siis kaikkien nähtävissä. Tonkimiseen paras alku lienee lista kaikista issue-trackeriin merkityistä asioista. Kaikki kirjoittamani XQuery -kielinen lähdekoodi löytyy sensijaan GitHubista ja minua, sinua ja lähdekoodia suojaa GNU GPL-lisenssi. Työpäiväkirja ja lähdekoodi ovat mielestäni mielenkiintoisimmat dokumentit työstäni ja analyyseistä. Laadin myös raportin, joka löytyy Google Docsista, jossa sitä voi myös kommentoida.

(: Check all classification fields which claim to get their value from
YKL classification systems, see if they are really define there. Based
on my screenscraped YKL :)

declare namespace srw="http://www.loc.gov/zing/srw/";
declare namespace marc="http://www.loc.gov/MARC21/slim";

declare variable $yklres := fn:doc('ykl.xml');
declare variable $ykl := $yklres/ykl/class/@no/data();

<yklClasses>{
for $field in /records/record/srw:recordData/marc:record/marc:datafield[@tag="084"]
  let $classNo := $field/marc:subfield[@code="a"]/data()
  where $field[marc:subfield[@code="2"] = "ykl"]
  return <yklClass
    inYkl="{if ($classNo = $ykl) then 'true' else 'false'}">{
      $classNo
  }</yklClass>
}</yklClasses>

Esitelmöin ja toivottavasti myös demoan hommiani Kansalliskirjaston järkkäämillä sisällönkuvailun tiedostuspäivillä lounaan jälkeen keskiviikkona 20.3.2013 Helsingin yliopiston päärakennuksen pienessä juhlasalissa. Päivillä on muutakin mukavaa ja mielenkiintoista aihetta tarjolla. Tilaisuuteen voi osallistua etänä, ja webinaari ilmeisesti myös taltioidaan. Toivottavasti siellä tavataan.

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.

Tein esittelyvideon ehdottamastani issue trackeristä

Ehdottelin pari päivää sitten useissakin paikoissa (blogissa, Kirjasto-kaapelilla, privana useamman henkilön kanssa), että me kirjastolaiset voisimme perustaa issue trackerin sekä Axiellin verkkokirjastotuotetta Arenaa että heidän taustajärjestelmäänsä Auroraa varten ja mahdollisesti muuhunkin käyttöön. Ehdotus on saanut paljon kannatusta eri puolilta, eiköhän näillä puheilla pistetä homma pystyyn. Kirjastot.fi päivittänen Redminen uusimpaan versioon, niin päästään alkuun.

Pohjille voisi varmaan laittaa nykyiset aikataulut (testivaihe, tuotantoon meno jne), tiedossa olevat päivitykset, vaatimusmäärittelyt ja mitä ominaisuuksia on kaavailtu tulevaisuudessa sekä tietenkin bugit ja sensemmoiset.

Tein pienen esittelyvideon Kirjastot.fi:n tarjoamasta projektinhallintatyökalusta Redminestä, sekä siitä miten olen sillä itse hallinnoinut EuropeanaLocal -hanketta.

Korkearesoluutioisemmista videoista näet lukea tekstinkin, niin saat paremman kuvan miten olen järjestelmää käyttänyt.

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?

Vilkaisu vuoteen 2011

Vuosi vaihtuu. Katsotaas mitä on tulossa; itkutipaton tammikuu 2011 (pelkästään Facebookissa ilmoittauneita on peräti 454 henkilöä), järjestämämme Cycling for libraries -pyöräilykonferenssi Kööpenhaminasta Berliiniin tapahtuu alkukesästä, hyvin herkulliseksi hankkeeksi osoittautunut KDK tulee käyttöön alkaen yleisten kirjastojen osalta täältä Turusta ja sitten pian laajentuen. Tulevan vuoden aikana  vaihdamme Varsinais-Suomen kirjastokimppamme Vaskin PallasPro -taustajärjestelmän Auroraan ja samalla FinMARC vaihtuu MARC21:een. Näiden järjestelmäuudistusten pistetään pystyyn myös julkaisujärjestelmä, nähtävästi siten että se on tulee OKM:n alaisten kirjastojen käytettäväksi.

Mitäs muuta? Rakenteilla oleva kirjastoalan yhteinen intranetti otetaan käyttöön, yhteisluettelo-hanke etenee ja Kirjasampokin saa ohjelmointirajapintojen lisäksi käyttöliittymän. Europeanan semanttinen tietomalli EDM astuu käyttöön ja e-kirjamarkkinat ehkä lämpenevät täällä Pohjolassakin. Itselläni on muutama koulutus jo sovittuna ja omat digitaalisen kulttuurin tutkimuksen opinnot jatkuvat Turun avoimessa yliopistossa. Toivottavasti pääsen käymään 77. IFLAn WLIC -konferenssissa Puerto Ricossa. Ja tietenkin asuinkaupunkini Turku on Euroopan kulttuuripääkaupunki ja luminen talvi lupaa sammakkomiesten mukaan kuumaa kesää. Vuoden ensimmäinen päivä on vieläpä caturday.

Kun tuota ylle koottua listaa katsoo, se näyttää saumattomalta. Loistavaa!

KDK:sta kirjoittelen kuulumisia täältä Turusta kohtapuolin. Pahoittelen ettei täältä ole vielä kuulunut julkisesti oikein mitään, vaikka olen ollut jo muutaman kuukauden Turussa. KDK:n on Twitterissä (@kdkhanke) ja asiakasliittymän etenemisestä saa uutisia sen omasta blogista, ottakaapa sekin seurantaan.

En nyt millään keksi kuvitusta tähän kirjoitukseeni joten menkööt ilman. Jos lukijoille tulee mieleen joku hyvä kuvitus, niin laittakaapa kommenttiin.

**** HYVÄÄ UUTTA VUOTTA TYYPIT ****

Kohan suomennos on nyt jossain vaiheessa

Tässä talven mittaan on ollut meneillään epämuodollinen ja aika impulsiivinen Kohan suomennos. Vielä keskeneräinen käännös on nyt jonkin aikaa ollut näkyvillä Labs.kirjastot.fi:n tarjoamassa Koha-asennuksessa , eli osoitteessa http://koha.kirjastot.fi. Se on toiminnalliselta puolelta melkolailla suomenkielinen. Kommentteja vastaanotetaan.

Aineistona tuossa Koha-asennuksessa on Project Gutenbergin sisältö. Auktorisoitua asiasanastoa ei tässä vaiheessa tosin ole, sellainen tarvittaisi kyllä sekä suomennoksen testaamiseksi että muutenkin. Onko kellään ideoita miten sellaisen saisi haltuunsa ja miten sen kikkailisi Kohaan? Periaatteessa yksi hailee mikä asiasanasto, mutta YSA olisi varmaan käytännönläheisin Kohan testailuun. Pitäisi varmaan fiilailla tuota testi-Kohaa parempaan esittely- ja demoilukuntoon.

Aloitin myös KirjastoWikiin sivun Kohan suomentamisesta.

Ja kysytäämpä vielä täälläkin: mikä sinusta on ”tag” suomeksi? ”Tagi”, ”tägi” ja ”avainsana” ovat ne ilmeiset ehdokkaat. Merkkasin nuo KirjastoWikissä olevaan termitaulukkoon, käykääpä äänestämässä tuon termin suomennosta laittamalla plus- (+) tai miinus (-) -merkkejä tuohon taulukkoon. Samalla voi kurkistaa ko. wikisivun rinnalla käytävää keskustelua.

Jos ei vielä ole selvää, niin Koha on avoimen lähdekoodin kirjastojärjestelmä. Siis vähän niin kuin PallasPro, Origo, Voyager, Aleph, Innovative Millenium ja tuleva Axiell Aurora, mutta ohjelman toiminta ei ole salaisuus. Esim täältä voi katsoa ja muokata miten haku ihan oikeasti toimii ja mitä relevanssialgoritmi tekee.

Suomennetaas piruuttaan toi Koha

Aloitimme viime viikolla Kohan suomentamisen. Nyt käännetään aineistoluettelon l. näyttöluettelon l. OPACin l. verkkokirjaston puoli, eli se asiakkaille näkyvä osa. Työn alla on Koha 3.0:n OPAC.

Meillä on pieni ryhmä Google Groupsissa jossa on puitu terminologiaa. Kohasta on muutenkin tullut sähköpostiteltua tässä talven mittaan muutaman suomalaisen kirjastoaktivistin sekä sellaisten kirjastojen kanssa, joissa se on käytössä. Niitä ei tosin ole montaa kappaletta. Mutta riittävän monta, jotta suomeksi kääntäminen kannattaa tehdä (eli enemmän kuin 0 kpl). Kerran kääntämisestä hyötyvät kaikki, mutta voi olla olemassa monta erilaista suomennosta. Itse teen työtä Kirjastot.fi:n Labs-hankkeen nimissä ja Labs onkin asentanut Kohan kaikkien niiden kokeiltavaksi, joita kyseinen avoimen lähdekoodin kirjastojärjestelmä kiinnostaa. Myös Evergreen on asennettu tutkittavaksi. Teen suomentamista ”virkamiestyönä”, eli ilman mitään erityistä projektisuunnitelmaa tms. sekoilua. Virkamiestyön ja talkootyön ero on hienonhieno 🙂 En tiedä miten muut Kohan suomentamisessa mukana olevat ovat omaa työtään organisoineet, eikä oikeastaan kiinnostakaan – kunhan saadaan jotain aikaan ja hyvä pysyy kierrossa. Koha käyttää PO-tiedostoja ja kääntämistä eri kielille tehdään Pootle -ympäristössä. Tai voi muitakin käännöstyökaluja käyttää jos haluaa, mutta ainakin tässä vaiheessa tuo Pootle on osoitteutunut näppäräksi.

Tässä käännöshankkeessa on muutamakin kiehtova puoli. Ensinnäkin tämä on konkreettnen osoitus siitä, miten avoin lähdekoodi ja yhteisöllinen kehittäminen yleensäkin toimii. Uskoisin, että tuota Kohan OPACin suomennosta päästään kokeilemaan ensi viikon loppupuolella. Vertailun vuoksi HelMet-alueella on vähän aikaa sitten otettu käyttöön Innovativen mobiilituote AirPAC, joka on siis käytännössä helmet.fi -sivusto älypuhelimille sopivammassa muodossa. Se on saatavilla Innovativelta vain englanninkielisenä. Niinsanotusti kansainvälinen versio on pääkaupunkiseutulaisten käytössä ehkä 2012. Todellisuudessa kääntäminen varmasti sujuisi päivässä parissa, jos siihen vain olisi mahdollisuus. Pointti on, että avoimen lähdekoodin ohjelmistoissa ei ole mitään yhtä tahoa, joka voi estää halukkaita tekemästä omasta ja toisen elämästä parempaa.

Toinen kiehtova puoli Kohan kääntämisessä on se, että edes hieman mahdollistaa kirjastojärjestelmistä ja niiden valitsemisesta keskustelemista. Tilannehan on Suomen yleisissä kirjastoissa nyt se, että järjestelmätoimittajia on tasan yksi kappale. Axiell. No pääkaupunkiseutu uloslukien. Ei minulla periaatteessa ole mitään Axiellia vastaan, mutta sitä vastaan on, ettei ole mitään vaihtoehtoja joista edes keskustella, tai joihin verrata käytössä olevaa järjestelmää. Tulevaisuudessahan se tulee olemaan Axiellin Aurora, kun Axiell siirtää Pallas ja Origo -asiakkaansa siihen.