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.

Kirjastotietokantojen laatua käsittelevä tohtorisväikkäri

Törmäsin Cycling for libraries -yhteisön kautta sattumalta väitöskirjaan Latvian yliopistosta vuodelta 2007, Baiba Mūzen Bibliotēku elektroniskie katalogi un to kvalitāte.

Mitä on tietokannan ja datan laatu?

Laadukasta teetä teehuoneella Kaliningradissa

Kun katsotaan kirjastojen bibliografista dataa ja tietokantaa jossa se asuu, mitä teidän mielestänne on ”laatu”?

Mitä laatu yleensäkin on, miten sitä nykyään mitataan kirjastojen tietokannoissa ja mistä voimme tietää, että tämä kirjastojen tietyllä tavalla key asset on hyvä? Näissä tietokannoissa on paljon rahaa, aikaa, vaivaa, kunnianhimoa ja jopa ammatti-identiteettiä kiinni, miten voimme varmistua siitä että ne oikeasti ovat hyviä?

Mitä tapahtuisi jos yrittäisi hankkia vaikkapa ISO-9000 -sarjan laatusertifikaatin kirjaston bibliografiselle metadatalle, aineistotietokannalle ja siihen liittyville prosesseille?

Mielenkiintoisia kysymyksiä, ja tärkeitä koska kirjastojen palveluja on suunniteltu enemmän ja enemmän sen varaan että tietokanta ja sen käytettävyys on erinomaista (kts. varaukset).

Q. Ethan McCallum: Bad Data–Mapping the World of Data Problems

O’Reilly on vastikään julkaissut huonoa dataa käsittelevän oppaan Q. Ethan McCallum ja työryhmä: Bad Data Handbook – Mapping the World Of Data Problems (O’Reilly Media, 2012, ISBN 9781449321871).

Q. Ethan McCallum: Bad Data Handbook–Mapping the World of Data Problems

Q. Ethan McCallum: Bad Data Handbook–Mapping the World of Data Problems

Miltäs tämän teoksen MARC-tietue mahtaa näyttää? Ai täydelliseltä ja tyhjentävältä? Kiva. Entäs 5 vuoden päästä kun tietueparka on vedetty läpi parista formaattikonversiosta ja järjestelmäuudistuksesta?

Ostin e-kirjana, tästä on luultavasti iloa nykyisessä työssäni kun siivoan PIKI-kirjastojen tietokantaa.

Cycling for libraries -läksyni epäonnistui: en löytänyt syitä miksi kirjastot eivät ole avointa dataa

Esteet veke äkkiä että päästään pöllyttämään dataa

Epäonnistuin vähän aikaa sitten päättynyttä Cycling for libraries -epäkonferenssiamme varten valitsemani ”läksyn” teossa. Läksynäni oli löytää vähintään viisi argumenttia jolla kirjastot puolustavat kantaansa vastustaa avoimeen dataan siirtymistä. En löytänyt yhtäkään perustetta Cycling for libraries -osallistujilta enkä niiltä vierailemistamme Liettuan, Latvian ja Viron kirjastoilta joissa onnistuin ottamaan asian puheeksi.

Ainoa mielestäni vakavasti otettava argumentti johon olen aiemmin törmännyt on, että emme voi parantaa bibliografisen datamme saatavuutta Avoimen Datan myötä siksi, että me kirjastot emme omista dataamme, vaan niiden tekijänoikeudet ovat sisällöntuottajallamme eli käytännössä BTJ:llä. Tämä argumentti on ainakin Suomen tekijänoikeuslain nojalla virheellinen, sillä

  1. yksittäiset MARC (tms.) tietueet eivät ole tekijänoikeuden suojaamia
  2. tietokanta kokonaisuutena on tekijänoikeuden suojaama (49 §)
  3. työsuhteessa tehdyn tietokannan tekijänoikeus siirtyy poikkeuksellisesti tekijältä työnantajalle, eli luetteloijalta/ylläpitäjältä kirjastolle (40 b § 3)

Pyynnöistäni huolimatta en ole saanut selvyyttä millaisilla sopimuksilla BTJ:ltä tietueita ostetaan heidän Arvo-palvelustaan, ja mitä niissä sopimuksissa sanotaan. Kirjastojärjestelmien sopimukset eivät ymmärtääkseni siirrä tietokannan omistajuutta kirjastolta järjestelmätoimittajillemme Axiellille tai Innovativelle.

Erilaisia spekulaatiota tietenkin liikkuu, tyyliin kirjastojohtajien tai luettelointiammattilaisten taidottomuus, nousevien tietoliikennekustannusten pelko, välinpitämättömyys, kirjasto datan heikon laadun tuoma epävarmuus sen hyödyllisyydestä jne. Tällaisiä argumentteja en tietenkään ole kuullut kirjasto-organisaatioilta, vaan kollegoilta.

Kirjastotietokannat ovat kirjastojen immateraalista omaisuutta. Kirjastokimpoissa omistajuus on hieman epäselvää, mutta kirjastojen on pystyttävä perustelemaan omaisuutensa suojelemisen avoimessa tietoyhteiskunnassa.

Sillävälin YLEllä: ontologiat+Onki+Drupal+avoin lähdekoodi

YLE

Drupal

Onki-ontologiapalvelu

YLE käyttää Drupal -julkaisujärjestelmää monissa sivustoissaan. Ilahduin kovasti, kun viime lauantaisessa DrupalCampissa Isolla pajalla Teemo Tebest esitteli Svenskalle kehitettyä Drupal-moduulia, joka helpottaa YLEn sisällöhallintaa.

Resource Description Framework

Drupalhan ymmärtää itsekin semanttisen webin perustana olevaa RDF:ää, mutta nyt nähty moduuli on kirjastomaailmasta katsellen erityisen kiinnostava; moduuli yhdistää Drupalin Onki -ontologiapalveluun. Näin YLEn sisällöntuottajat voivat noukkia ontologioista sisältöään kuvailevia termejä. Kirjastoihminen voisi kutsua tätä vaikkapa luettelointi 2.0:ksi tai auktoriteettikontrolli 2.0:ksi. Vastaavaa ei meidän alallamme Suomessa tehdä kuin Kirjasammossa SAHA-annotaatioeditorilla. DrupalCampissa puhuttiinkin hieman myös siitä, sekä Onkin ja ontologioiden ylläpidon tulevaisuudesta.

YLE on avoimen lähdekoodin hengessä julkaissut moduulin Drupal.org:issa, jossa se on paraikaa menossa Drupal-yhteisön vertaisarviointiprosessin läpi. Moduulin lähdekoodi on jo saatavissa tarkastelua ja muutosten tekoa varten.

Viimeaikaisten järjestelmäkehitysten myötä kirjastot ovat ottaneet lähinnä takapakkia auktoriteettikontrollin ja muunkin automaattisen tietojenkäsittelyn osalta, mutta hienoa nähdä että tietotyön ammattilaiset toisaalla, esim. juuri YLEläiset, ottavat metadatan, avoimuuden ja muulla tehtävän metadatatyön (esim. ontologiat) näin vakavasti ja kunnianhimoisesti. Pisteet YLElle (taas)!

[edit 24.09.2012: upotin videotaltioinnin tähän mukaan, Teemo aloittaa kohdassa 16:30]

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 + '.'

Avoin kirje Tuijalle viitteidenhallintatyökaluista kuten Zotero, Mendeley ja RefWorks

Minulta kyseltiin privana suhteestani näihin RefWorksin yms. kaltaisiin viitteidenhallintatyökaluihin joista on kollegoiden kesken ollut toisaalla puhetta. Tässä avoin kirjeeni:

Suhteeni kirjallisuusviitetyökaluihin on lähinnä poleeminen. Mainitsemasi Mendeley on mennyt minulta täysin tutkan alta, en ole moista edes huomannut. En ole täten erityisesti suunnitellut Zoterosta siihen siirtymistä.

Mendeley

Zotero

RefWorks

Vaikka Zotero on minulla kyllä koneellani asennettuna, ei sitä rehellisyyden nimissä tule koskaan käytettyä. Olen oikeastaan käyttänyt sitä vain muutamassa isommassa kirjoitusjutussa kun olen vääntänyt artikkelia kirjaan tms… itseasiassa kaikki Zoteron käyttötapaukseni taitavat olla juuri tuollaisten muodollisempien, kirjamaisempien tekstien laatimiseen liittyneitä… Lasken PDF-tiedostot (kuten raporttimme Kirjastojärjestelmät Nyt!) kirjamaisiksi, tai no e-kirjoiksi kai niitä pitäisi kutsua.

Kieltämättä tuntuu hassulta että joitain tietyntyyppisiä tuotoksia varten käyttää jotain tällaisia erityisiä työkaluja, kuten juuri tekstinkäsittelyohjelmaa ja viitteidenhallintatyökalua. Ehkä siitä tulee vähän tärkeä olo… kuin tekisi jotain oikeampaa kirjoittamista kuin normaalisti. Todellisuudessaan tekstin kirjoittamisen ja viitteiden hallinnan kanssa on tekemisissä joka-ikinen päivä, tuntikausia. Tekstinkäsittelyohjelmat ja erityiset viitteidenhallintatyökalut eivät tosin kuulu arkeen, vaan selain ja tietenkin mahdollisimman hyvät URL-osoitteet.

Yksi selkeä etu mikä Zoteron, RefWorksin tai vastaavan työkalun käytössä on, on siististi muotoiltu viiteluettelo. Luonnellisemmassa ympäristössäni eli verkossa tykkään aina laatia viitteet tekstin sisään, mutta printissä tai printtiä mallintavassa tekstissä (kuten juuri PDF:t), tämä ei ole tyypillisesti tapana. Silloin se, että napin painalluksella saa hienosti muotoillut viiteluettelon on ollut kiva juttu.

Normaalisti käytän viitteidenhallintaan lähinnä Diigoa. Aiemmin del.icio.usia. Ei näitäkään tule loppujenlopuksi niin paljoa käytettyä. Selaimen sivuhistoria ja Google ovat minulle aika kattavat viitteidenhallintatyökalut 🙂 Riippuu tilanteesta. Käytän aika paljon selaimen osoiteriviä tiedonhakuun. Näin käytän esim. valokuviani (jotka ovat Flickrissä, jolle voi tehdä kyselyjä suoraan URL-osoitteilla) sekä juuri selaimeni historiaa.

RefWorksista minulla ei ole oikeastaan mitään sanottavaa, paitsi että se on alansa establishmentti.

Zoterosta vielä yleisemmin. Sehän on Firefox-selaimen laajennos, ja sikäli aina naimisissa Firefoxiin. Stand-alone versio on kehitteillä, kuten Chrome ja Safari-versiotkin. Muistan kun Zoteroon tuli myös web-liittymä, jota voi nyt käyttää myös mobiilina. Se on ihan kiva. Zotero on kyllä monipuolinen ja varmasti kattava työkalu, mutta siistin, formaalin ja kontrolloidun metadatan ylläpitäminen vaatii aina työtä, joka monesti palvelee loppujenlopuksi jotain anaalista kontrollifriikkeyttä, eikä oikeaa tiedon käyttämistä aidosti (kirjastoihminen jos kuka tietää tämän). Tokihan tällaisen työkalut, niiden välinen tiedonsiirto ja ajatus jonkinlaisista ”rikkaammista”, ei suoraan perille johtavista linkeistä on kiehtovaa.

Zoteron tai muidenkaan viitteidenhallintatyökalujen ns. ”sosiaalisista” ominaisuuksista olen käyttänyt vähän. Deliciousin aikaan enemmän, ja jos on ollut jotain selkeitä porukoita joiden kanssa ja selkeä tehtävä, silloin tällaiset työkalut ovat olleet kyllä hyviä. Jos kirjoittaisin enemmän ”asiallista” ja ei-elävää tekstiä, niin käyttäisin enemmän. Varmaan jossain gradun ähläämisessä olisi hyvä, tai jos itse kirjottelisi akateemisa tekstejä niin voisi ehkä pitää omaa bibliografiaansa yllä tuollalailla.

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>

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.

Makupaloja Molesworth Instituutin sanastosta

Norman D Stevens: Archives of Library Research from the Molesworth Institute

Alla muutamia valitsemiani maistiaista aiemmin mainitsemastani Norman D. Stevensin kokoelman ”Archives of Library Research from The Molesworth Institute” (1985, ISBN 0-86656-466-7) ohessa olevasta sanastosta:

  • Administration: The term commonly applied to a small body of tyrants, usually male, who were assigned, but seldom adequately exercised, responsibility for the control and direction of libraries in the late twentieth century. […]
  • Audiovisual services: A manifestation of the antiquated practice of distinguishing oral and visual forms of information from written forms based on those characteristics, and of organizing library services around those distinctions. Analogous to the equally antiquated library practice of distinguishing printed material on the basis of format (e.g., monograph/serial). […]
  • Cataloging: An obsolete term for both a set of especially arcane procedures and a functional unit that dominated library practise in the twentieth century. The procedures, which were taught in hightly specialized courses in library schools and which governed by incomprehensible rules adopted by library associations, involved the most complex techniques imaginable for providing the individual library what if felt were the necessary bibliographic recoded needed to differentiate items in its collections. The quality of local cataloging was often a source of pride so that, despite the advent of shared systems such as OCLC in the last half of the twentieth century, cataloging procedures tended to continue to have a local flavor for a number of years thereafter. The functional unit known as the Cataloging Department was most often located in a remot part of the library building isolated from other staff and users. That unit, which was generally the largest single body of library staff, spent large amounts of time providing exact and precise bibliographic records that were difficult to interpret and of limited use. […]
  • Cooperation: A term, which many variants, used to describe a range of library activities in the nineteeth and twentieth century allegedly designed to enable libraries to work with each other in the sharing of resources to provide better service to all users but which, in effect, were a means whereby individual libraries sought to provide the best service to their own users with the least direct expenditure of funds while making the maximum use, at the least cost, of the resources and services of other libraries.
  • Cross-reference: The technique, once widely used in library and information systems, of confusing users by providing multiple alternative forms of reference to a term, linked to the obscure term actually used in the system, rather than the direct use of the term normally used []
  • Information explosion: The dramatic term adopted by many twentieth century librarians and information scientist to describe the normal expansion of information which they were unprepared and unable to deal with because of their own limitations and those of their primitive information systems.