Tietokantagalaksi

Kirjastot — Avainsanat: , , , — Matti @ 18:39

Kutakuinkin 40000 henkilöä ja noin 310000 yhteyttä

Kutakuinkin 40000 henkilöä ja noin 310000 yhteyttä


Finmarc 600-kentän datan yhteyksiä  hieman lähempää

Finmarc 600-kentän datan yhteyksiä hieman lähempää


Datasetin reuna-alueita

Datasetin reuna-alueita


Vaski-kirjastot julkaisivat luettelotietokantansa avoimena datana menneen viikon perjantaina – oiva tilaisuus testata, selviääkö vastikään lisämuistilla terästetty (2GB->8GB) työjuhtani koko ~1.7 miljoonan tietueen datasetin pyörittelystä kerrallaan.

Kohteekseni otin FINMARC-luettelointioppaasta bongaamani 600 Kohdehenkilö-kentän, jonka määritys kuuluu: “Kenttään tallennettavat tiedot kohdehenkilöstä liittyvät teoksen sisältöön. Henkilön nimi on asiasanana.“. Oppaasta mainittiin myös, että kenttään saatetaan tallentaa myös teoksen kohteena olevan suvun tjms. tietoja — mielenkiintoista! Päätin katsoa, millaisia verkostoja tähän kenttään tallennettujen henkilöiden ja henkilöjoukkojen välille muodostuu. Nyt alkuvaiheessa tarkoituksenani ei ollut tehdä näistä verkostoista sen kummempia analyysejä, kunhan saisin datan sopivaan muotoon myöhempiä analyysejä varten ja pari nättiä kuvaa tänne verkkoon näytille :)

Harjoituksen vuoksi noudatin tavanomaisesta poikkeavaa työkulkua. Tällä kertaa pidin käsittelemäni tiedot alusta loppuun XML-muodossa. Lähtöpäässä oleva tieto näytti tältä:

<record xmlns="info:lc/xmlns/marcxchange-v1">
<datafield tag="600" ind1="1" ind2=" ">
<subfield code="a">Lehtonen</subfield>
<subfield code="h">J. V.</subfield>
<subfield code="x">juhlajulkaisu</subfield>
</datafield>
<datafield tag="600" ind1="1" ind2=" ">
<subfield code="a">Sillanpää</subfield>
<subfield code="h">F. E.</subfield>
<subfield code="t">Nuorena nukkunut</subfield>
</datafield>
<datafield tag="600" ind1="1" ind2=" ">
<subfield code="a">Lassila</subfield>
<subfield code="h">Maiju</subfield>
<subfield code="x">kirjallinen jäämistö</subfield>
</datafield>
<datafield tag="600" ind1="1" ind2=" ">
<subfield code="a">Kivi</subfield>
<subfield code="h">Aleksis</subfield>
<subfield code="t">Canzio</subfield>
</datafield>
<datafield tag="600" ind1="1" ind2=" ">
<subfield code="a">Richelieu</subfield>
<subfield code="h">Armand Jean du Plessis de</subfield>
</datafield>
</record>

..ja putken päästä, XQueryn avulla tehdyn mankeloinnin jälkeen ulos tuli tällaista, Gephi-visualisointityökalun ymmärtämää GEXF-muotoista XML:ää .

<?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.1draft" version="1.1" xmlns:viz="http://www.gexf.net/1.1draft/viz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.1draft http://www.gexf.net/1.1draft/gexf.xsd">
<meta lastmodifieddate="2011-10-02">
<creator>Matti Lassila</creator>
<description>Co-occurencies of names in Vaski-database</description>
</meta>
<graph defaultedgetype="mixed" mode="static">
<attributes class="node">
<attribute id="role" title="role" type="string"/>
</attributes>
<nodes>
<node id="aleksis_kivi" label="Aleksis Kivi">
<attvalues>
<attvalue for="role" value="person"/>
</attvalues>
<viz:size xmlns:viz="http://www.gexf.net/1.1draft/viz" value="232"/>
</node>
<node id="maria_jotuni" label="Maria Jotuni">
<attvalues>
<attvalue for="role" value="person"/>
</attvalues>
<viz:size xmlns:viz="http://www.gexf.net/1.1draft/viz" value="44"/>
</node>
<node id="anakreon" label="Anakreon">
<attvalues>
<attvalue for="role" value="person"/>
</attvalues>
<viz:size xmlns:viz="http://www.gexf.net/1.1draft/viz" value="3"/>
</node>
</nodes>
<edges>
<edge source="minna_canth" target="aleksis_kivi"/>
<edge source="minna_canth" target="juhani_aho"/>
<edge source="minna_canth" target="teuvo_pakkala"/>
<edge source="minna_canth" target="ilmari_kianto"/>
</edges>
</graph>
</gexf>

En vielä nykyisillä XQuery-taidoillani saanut tehtyä muunnosta yhdellä loitsulla, vaan suodattelin ja yhdistelin datasettiä aina pienempiin ja pienempiin osiin. Loppuvaiheen koostamisen ennen Gephiin siirtymistä tein editorissa, eli laitoin yhteen tiedostoon mukaan erikseen luomani henkilö-solmut ja toisessa tiedostossa olevat henkilö-solmujen väliset yhteydet.

Nyt kun datasetti on oikeassa muodossa ja siistitty, työläin työvaihe on takanapäin. Jahka aikaa on, tutkiskelen mitä datasetistä saa irti. Samalla koitan kirjoittaa lyhyesti auki, mitä työvaiheita MARCXML-muotoisten FINMARC-tietueiden mankelointi Gephin ymmärtämään muotoon vaati.

Luetteloijan vuodenkierto

Kirjastot — Avainsanat: , , , — Matti @ 16:23

Vuoden kierto näkyy kirjastoissa. Kesä tyhjentää dekkarihyllyt ja synkimmän talven aikaan matkakirjat löytävät lukijansa. Mutta näkyykö vuoden kierto kirjastotiedossa, luettelotietokannan tietuessa?

Viime kesänä aiempia kirjastoluettelografiikoita tehdessäni olin kiinnittänyt huomiota MARC -kontrollikentässä 008 olevaan päivämäärään. Tuohon kenttään tallennetaan tieto siitä, milloin kyseinen MARC-tietue on alunperin luotu. Sopivasti kentän tietoja käsittelemällä olisi siis mahdollista summailla yhteen tiettyinä kuukausina ja vuosina (ja miksei myös päivinä) luetteloitujen teosten määriä. Tuolloin asian kehittely jäi, koska tiedossani ei ollut kohtuullisella vaivalla opeteltavia työkaluja melkoisen suuren datamäärän läpikäyntiä varten. Tämä pulma ratkesi, kun olen nyt graduuni ja työhöni liittyen koittanut perehtyä XQuery-ohjelmointikieleen ja XML-tietokantoihin. Yhteenvetolukujen laskeminen alkoi näyttää mahdolliselta — tarvitsisi vain tallentaa Helmet-tietokannan sisältö XML-tietokantaan ja harrastaa hieman XQuery-magiaa.

Ja katso, lopulta Ärrä pyöräytti ulos käppyrän. Otin käsittelyyn mukaan aineiston vuodesta 1980 eteenpäin, sillä tätä vanhempaa aineistoa ovat poistot karsineet siksi paljon että kuvion skaalaero olisi tullut turhan suureksi. Lisäksi poistin vuoden 1992 lokakuulta 130961 (!!) tietokantaan viedyn teoksen piikin. Mitäköhän kummaa kirjastossa on tuolloin tapahtunut — vai liekö datassa virhe?

Helsingin kaupunginkirjaston kokoelman kartunta suhteessa aikaan

Helsingin kaupunginkirjaston kokoelman kartunta suhteessa aikaan

Kirjastotyössä olevat osannevat sanoa, muistuttaako kuvio todellisuutta. Kesän hiljaisuus erottuu, mutta näkyykö kuvasta jotain muutakin? Esimerkiksi, mikähän lie syy yksittäisten luettelointiaktiivisuuspiikkien taustalla?PDF-versiosta erottunee yksityiskohdat paremmin.

Työvaiheet olivat kutakuinkin samat, kuin aiemmissa Helmet-aineistoa käyttäneissä kokeiluissani. Aluksi muunsin Helmet-datadumpin XSLT-muunnostiedoston avulla MODS-muotoon (kiitokset muuten Labs-väelle datadumpin päivittämisestä!). MODS-muodosta ajoin tietokannan vielä pienempään ja näppärämpään muotoon, jossa oli vain tarvitsemani tiedot. Vaivainen koneeni ei jaksa pyörittää kovin suuria datamääriä, joten minun tuli karsia aineistosta kaikki ylimääräinen tieto pois. Järeillä laitteilla aineistoa voisi käsitellä suoraan, ilman alkuvaiheen muunnoksia. Lopulta latasin epäolennaisista tiedoista karsitut XML-tiedostot tietokantaan. Karsimisesta huolimatta koneeni alkoi yskähdellä, joten päätin ottaa tarkasteltavakseni vain Helsigin kaupunginkirjaston kokoelmasta löytyvien teosten luettelointitiedot.

Nyt kun tarvitsemani tiedot olivat XML-tietokannassa, saatoin aloittaa niiden käsittelyn XQuery-kielen avulla. Aluksi siistin eksoottisessa MARC-muodossa olevan päivämäärätiedon hieman rakenteisempaan muotoon:


import module namespace functx="http://www.functx.com";

{
for $record in /records/record
let $date:=string($record/created)
let $year:=substring($date,1,2)
let $month:=substring($date,3,2)
let $day:=substring($date,5,2)
return(
{$year}
{$month}
{$day}
)

Varsinainen yhteenvetolukujen laskeminen tapahtui XQueryn count()-funktiolla. Huomasin, että olin onnistunut ylikirjoittamaan toisella skriptillä tämän laskennan tehneen XQuery-loitsun, mutta kyseessä oli kutakuinkin samanmittainen pätkä kuin ylempi.

Viimeisenä askeleena ennen Ärrään siirtymistä otin tiedot ulos CSV-muodossa:


for $year in distinct-values(//year)
for $done_in_month in //done[year=$year]
let $month:=data($done_in_month/month/@id)
return ({$year}-{$month}-1,{data($done_in_month/month)})

Tälläkin kertaa päätin luoda grafiikan R:n ggplot2-kirjaston tarjoamilla työkaluilla. Kuvio syntyi R-komennoilla:

t<-qplot(date, count, data=lastyears, geom="path", group=1, ymax=2000,ylab="",xlab="")
t + scale_x_date(format='%Y',major="years") + theme_bw()

Sanojen rihmat

Kirjastot — Avainsanat: , , , — Matti @ 23:46

Viikonlopun alla julkaistiin Gephi-visualisointityökalun uusi kokeiluversio, ja päätin ottaa asiakseni tutkailla ohjelmaa hieman. Gephi oli minulle nimeltä tuttu, mutten aiemmin ole viitsinyt asentaa sitä koneelleni kun olen arvellut Javalla toteutetun ohjelman olevan kovin resurssisyöppö. No, arveluni osui oikeaan, mutta sopivan pienellä aineistolla viiveet pysyivät siedettävinä.

Tällä kertaa päätin katsoa, millaisia verkostoja Helmet-dumpin tekstimuotoiselle aineistolle annetut asiasanat muodostavat. Kokonaisuudessaan tekstiaineistoa on dumpissa noin 50000 tietuetta. Pilkoin tästä satunnaisotannalla käsiteltäväksi muutamia erikokoisia datasettejä. Tällä kertaa en tarvinnut Python-skriptejä, vaan sain luotua tarvitsemani tiedostot yksinkertaisen XSLT-muunnostiedoston ja UNIX-komentorivityökalujen avulla. Ajoin aluksi koko dumpin tekstiaineiston asiasanat muotoon, jossa kunkin teoksen asiasanat on listattu yhdellä rivillä. Gephiin ladattavat tiedostot syntyivät tästä suuresta tiedostosta rl-työkalun avulla, joka poimii sille annetusta tiedostosta halutun kokoisen satunnaisotannan.

Ohessa kuva kuudensadan tietueen otannasta (korkearesoluutioinen kuva PDF-tiedostona). Kuvassa sinisellä sävyllä korostettu asiasanaryhmä liittyy suomenkieliseen kaunokirjallisuuteen ja keltainen ruotsinkieliseen kaunokirjallisuuteen. Oranssilla on merkitty ruotsinkieliseen tietokirjallisuuteen liittyvät asiasanat ja vihertävällä suomenkielisen tietokirjallisuuden asiasanat. Viivojen paksuus kuvaa sitä, kuinka usein jotkin asiasanat esiintyvät yhdessä. Tähän kuvaan en ole laittanut näkyville, mitkä sanat ovat kyseessä. Täytyy mietiskellä, minkälaiseen kuvaan sanat saisi otettua mukaan, ilman että kuva menee täysin tukkoon. Gephi on melkoisen monipuolinen ohjelma, joten eiköhän sieltä löydy ongelmaan ratkaisu.

Kuudensadan kirjan asiasanojen yhteydet

Runolliset tietueet

Kirjastot — Avainsanat: , , , , — Matti @ 21:06

Muokattu 4.4: Nyt julkaistuja teoksia kuvaavien ympyröiden koko määräytyy teosten lukumäärän logaritmina. Pakkautumisongelma tuntuu helpottavan ja yksityiskohdat säilyvät paremmin. Päivitin esikatselukuvan ja ladattavan PDF-tiedoston.

Jatkoin Helmet-datadumpin pyörittelyä. Istuskelin perjantai-iltapäivän työ/opiskelupaikkani järjestämässä verkostoanalyysi-metodipajassa, josta sain ajatuksen kokeilla SNA-menetelmiä Helmet-aineistoon.

Koska aineisto on melkoisen suuri — satojatuhansia tietueita — mopokonetta ja hermoja säästääkseni päätin ottaa aineistosta jonkin kiinnostavan osajoukon käsiteltäväkseni. Päädyin Suomessa suomeksi tai ruotsiksi julkaistuihin runoihin ja runojen kustantajiin: näin näppitultumalta runoja ei julkaista vuositasolla kovin hurjia määriä ja on mielenkiintoista tietää, mitkä tahot hoitavat tätä julkaisutoimintaa.

Aloitin tarvitsemani aineiston koostamisen ajamalla aiemmin MODS-muotoon saattamastani Helmet-datadumpista XSLT-muunnoksen CSV-taulukkomuotoon, johon tallensin kunkin runoteoksen tekijän, kustantajan ja julkaisuvuoden.
XSLT-muunnoksen synnyttämät taulukot eivät olleet suoralta käsin käyttövalmiita, vaan aineistoa joutui siivoilemaan jonkin verran käsin.

Tämän jälkeen järjestelin ja suodatin UNIX-komentorivityökalujen (sort ja unique) avulla tiedoston sellaiseen muotoon, jossa riveillä on kirjailijan nimi, kustantaja ja kyseisen kustantajan kautta julkaistujen teosten lukumäärä. Nyt data oli sellaisessa muodossa, että käytettävissäni oli kaikki ne tiedot, jotka oletin tarvitsevani mielessäni olevan grafiikan toteuttamiseksi koneen avulla.

Datasta syntyi kaavio Python-ohjelmointikielen NetworkX verkostoanalyysipaketin sekä Graphviz -visualisointityökalun suosiollisella avustuksella.

Python-skriptin nielemä tieto näytti tältä:

4 WSOY Töyrylä, Timo
19 WSOY Vaara, Elina
4 WSOY Vala, Katri
5 WSOY Venho, Johanna

…ja skriptin tuottama, DOT-muotoinen tieto kutakuinkin tältä:


"Vaara, Elina" [style=filled, fixedsize=true, height="0.25", width="0.25", shape=circle, role=author, fontsize=1, label="", color=lightgray];
WSOY [width="2.5", style=filled, fontsize=12, fixedsize=true, role=publisher, color=red, height="2.5"];
"Vaara, Elina" -> WSOY [color=gray37, penwidth=4];

Loppu olikin silkkaa automagiaa suurimmaksi osaksi. Latasin DOT-tiedoston Graphviz-ohjelmaan, joka pienen asetustensäätelyn jälkeen lykkäsi ulos haluamani grafiikan. Jahka saan opeteltua Graphviziä lisää, koitan josko saisin mankeloitua esityksen hieman havainnollisempaan muotoon.

Runokustantajat

Kuvassa punaiset ympyrät ovat kustantajia ja harmaat kirjailijoita. Ympyrän koko heijastelee julkaistujen teosten määriä.

Esikatselukuva sisältää vain pienen osan koko grafiikasta — ohessa kuva kokonaisuudessaan PDF-muodossa.

Harmonikassa Kimmo Pohjonen – Axiell Arena ja musiikin tiedonhaku

Kirjastot — Avainsanat: , , — Matti @ 0:50

Muokkaus: Päivitetty 18.3. Lisätty titleoriginal ja titlemain -hakukentät.

Viime vuoden alkusyksystä kirjoittelin ylös havaintojani siitä, kuinka tuolloin Tampereella pilottivaiheessa olleen Arena-verkkokirjaston haun saisi tuottamaan epämääräistä tarkempia hakutuloksia. Ennen myöhemmin syksyllä tapahtunutta julkaisua verkkokirjastoon tuli ‘tarkennettu haku’, joka ei kyllä aivan vastaa sitä mitä Axiellilta odotin, mutta onhan tuo kyllä askel parempaan suuntaan. Hausssa(kin) on siis parantamisen varaa vielä.

Kuten edellisessä Arena-kirjoituksessani totesin, haun ongelmat johtuvat tällä hetkellä lähinnä hakukäyttöliittymän keskeneräisyydestä, eikä niinkään taustajärjestelmän kyvyttömyydestä. Arenan hakujärjestelmänä toimii avointa koodia oleva Solr-hakumoottori, jonka tarvittaessa taipuu jos jonkinlaisiin hakuihin. Tästä osoituksena listasin hyvän joukon Solr-hakuavaimia, joilla Arena-haun saa tarvittaessa kohdistettua esim. kustantajaan ja julkaisuvuoteen (esim. oma suosikkihakuni on publisher:"Terra Cognita" AND publicationyear:[2009 TO NOW]).

Nyt jatkoin hieman Arenan tutkailua, jälleen Heikki Poroilan innoittamana. Kuinka ollakaan, arvailun kautta löysin kolme viisi hakukenttää lisää.

Edition-kenttä sisältää tiedon painoksesta. Tässä tiedonhakija törmää luettelointikäytäntöjen kirjavuuteen, sillä kenttään tallennttua tietoa ei parhaalla tahdollakaan voi kutsua kovin määrämuotoiseksi. Ovelasti hakuavaimen katkaisemalla ja sumealla haulla nämä epäsäännöllisyydet voinee kuitenkin kiertää. Haetaanpa kokeilut vuoksi kaikki Deluxe Edition CD-levyt:

edition:"deluxe edition" AND mediaclass:cd

Number-kenttä sisältää ISBN-numeron. Tästä ei liene kovin kummoista iloa kirjastonkäyttäjälle. Toisaalta ISBN:n avulla saisi rakennetuta työkalun, joka osaisi esim verkkokirjakaupan sivulta löytyvän ISBN:n perusteella tarkastaa kirjastosta, löytyykö ko. teosta lainattavaksi. Esimerkkihaku:

number:9789525635072

Note-kenttään tallennettu tieto pelastaa musiikkitiedonhakijan! Aikojen saatossa musiikinluetteloinnissa pakollisten teostietojen oheen on tallennettu tietoja äänityspaikasta, esiintyjistä ja muista äänitteen yksityiskohdista. Tämä tieto on haettavissa note-kentän kautta. Kokeillaanpa hakea äänitteet, jotka on tallennettu vuonna 1970:

note:"äänitetty 1970"~2

Aaltomerkillä ja numerolla hakulauseen lopussa kerron järjestelmälle, että äänitetty ja 1970 -merkkijonot tulee esiintyä kahden sanan päästä toisistaan, jotta esiintymä lasketaan haussa osumaksi. Entä löytyykö kirjastosta sellaisia CD-levyjä, joissa olisi kansilehdykässä mukana sointumerkit? Katsotaan:

note:"sointumerkit"~0.3 AND mediaclass:cd

Entäpä löytyykö kirjastosta levyjä, joista harmonikkataiteilija Pohjonen olisi taustabändin jäsenenä — näin postauksen otsikon mukaisesti:

note:"Kimmo Pohjonen acc"~3

Huomautuksia-kentän sisältö on sen verran pitkälle määrämittaista, että sen rakenteistaminen kohdennetusti haettavaan muotoon ei olisi kovin kummoinen juttu. Tästä olisi erityisesti musiikkitiedonhaussa hyötyä, kun haku voitaisiin kohdistaa esim. artistin rooliin kyseisellä tallenteella.

Titleoriginal-kenttä sisältää teoksen alkuperäisnimen. Katsotaanpa, kuinka monelle kielelle käännettynä Waltarin Sinuhe löytyy PIKI-kirjastoista:

titleoriginal:"sinuhe egyptiläinen"

Näemmä kotikirjastostani löytyy ainakin seitsemän Sinuhen kieliversiota

Titlemain-kentän sisällöstä en ole päässyt vielä aivan varmuuteen. Alkujaan ajattelin, että kyseessä olisi jonkun sortin yhtenäistetty nimeke (l. yhteisesti sovittu nimi sellaiselle teokselle, jonka nimestä esiintyy useita erilaisia kirjoitusasuja) mutta tulosten perusteella kenttä tuntuu liittyvän myös muihin käyttötilanteisiin.

Kartta kirjastosta

Kirjastot — Avainsanat: , , — Matti @ 14:13

Macen tammikuisen postauksen innoittamana sain viimeinkin piirreltyä ensimmäiset Helmet-kirjastojen kokoelmaa kuvaavat tilastografiikat. Aloitin grafiikkojen takana olevan aineiston pyörittelyn jo kesäkuun helteiden aikaan, Helmet-kirjastojen julkaistua kokoelmatietokantansa avoimena datana. Proggis kuitenkin jäi telakalle, josta sen nyt viikonloppuna herätin henkiin virkistääkseni R-taitoja gradutaistoa varten.

Grafiikat ovat syntyneet Helmet MARCXML-aineistodumpista, joka on ajettu aluksi MODS-muotoon XSLT-muunnostiedostolla. Sen jälkeen tiedot muutettiin CSV-taulukkomuotoon toisella XSLT-muunnoksella. Ensimmäisen muunnosvaiheen olisi voinut hyvin jättää väliin, ja ajaa tiedot taulukoksi suoraan MARCXML-muodossa. Koin kuitenkin selväkielisen MODS-tiedostomuodon käsittelyn helpommaksi, siihen nähden että olisin MARCXML:ää pyöritellessäni joutunut miettimään, mikä kenttäkoodi vastaa mitäkin metatietoa.

Siivoilin muunnostiedostojen avulla syntynyttä CSV-taulukkotiedostoa pienillä Python-koodinpätkillä ja latasin tämän jälkeen tiedoston R-tilasto-ohjelmaan. Ärrässä mankeloin tiedot tarvitsemaani muotoon ja lopulta tuotin grafiikat R:n treemap-kirjaston avulla. Kaikki edellä mainitut ohjelmat ja työkalut ovat vapaata koodia.

Pidemmittä puheitta — kokoelmagrafiikoita, olkaa hyvä. Pikkukuvaa klikkaamalla grafiiikan saa suurennettua. Mikäli grafiikkojen muoto on outo, Wikipedia-selvittää mistä on kyse (Treemapping-artikkeli).

Areenalla auringossa – Axiell Arena ja tarkka haku

Kirjastot — Matti @ 11:39

Päivitys 21.9: Lisätty hakukenttiin publisher ja tag -kentät sekä hakuesimerkki publisher -kenttään liittyen.

Heikki Poroilan blogikirjoitus Yhdestä luukusta merkityksettömyyteen on nostattanut melkoisen keskustelun siitä, mihin tiedonhaku ja sen perustana oleva luettelointi on menossa, kun kirjastojärjestelmissäkin ollaan siirtymässä Google-tyyppiseen ‘yhden luukun hakuun’. Näin on tapahtumassa muun muassa kotikaupunkini Tampereen kirjastoissa – ja laajemmin koko Pirkanmaan alueella — kun PIKI-verkkokirjasto vaihdetaan toimimaan Axiell Arena -järjestelmän päällä.

Tähän mennessä käydyn keskustelun ydinajatus lienee tiivistettävissä siihen, etteivät Arenan tyyppiset, Google-henkistä hakua ja selailua korostavat hakujärjestelmät mahdollista tarkkaa tiedonhakua, eikä niissä hyödynnetä täysipainoisesti kirjastodatan rakenteisuutta. Tämän vuoksi keskustelijoiden synkimpien näkemysten mukaan tarkka luettelointityö on menettämässä mielekkyytensä, kun on riittävää että haun tulokset ovat vähän sinne päin.

Voi hyvin olla, että joillekin tiedonhakijoille sinne päin -vastaukset ovat riittävän hyviä ja yhden luukun haku palvelee heitä hyvin. Kirjastonkäyttäjiä on kuitenkin monenlaisia ja siksi toivoisi, että rinnalla säilytettäisiin myös perinteinen tarkka haku yksityiskohtaisine rajausmahdollisuuksineen.

Arenan tapauksessa tilanne ei ole kuitenkaan aivan lohduton, vaikka järjestelmätoimittaja ei jostain kumman syystä toteuttaisikaan selaushaun rinnalle perinteistä hakukäyttöliittymää. Pitäisin tätä kummallisena siksi, että Arenan tapauksessa kyseessä olisi vain käyttöliittymätyöstä — taustajärjestelmä taipuu nimittäin jos jonkinlaisiin käyttötapoihin.

Arenan esittelymateriaalista[PDF] käy ilmi, että järjestelmä on rakennettu vapaata koodia olevan Apache Solr -fasettihakumoottorin päälle. Tarkkanäköinen Solarin tunteva tiedonhakija huomaa kyllä tämän myös Arenan URL-rakenteista.

Sain ajatuksen kokeilla, josko kotikirjastossani testikäytössä olevassa Arenassa toimisivat myös muut kuin verkkokirjaston ohjedokumentissa mainitut hakuominaisuudet. Ilokseni huomasin, että hakulauseet ajetaan taustalla hyrräävään Solriin niitä suotta suodattamatta. Siispä — tarkkaa hakukäyttöliittymää odotellessa tiedonhakija voi hyödyntää Solr-hakusyntaksia löytääkseen mitä hakee, eikä jotain vähän sinnepäin.

Seuraavaan olen koonnut tiivistetysti PIKI-verkkokirjaston Arenan (ja kentien myös muiden Arena-asennusten) hakukentät ja määrämuotoisten kenttien saamat arvot. Samalla kertoilen myös jotain Solr-hakusyntaksista.

Haun voi kohdistaa kenttään kirjoittamalla hakulaatikkoon kentännimi:hakusana.

Arenan hakukentät

KenttäSelite
authortekijä
titlenimeke
mediaclassaineistolaji
categoryaineistokategoria
publicationyearjulkaisuvuosi
publisherkustantaja
subjectasiasana
languagekieli
tagavainsana, tagi
titleseriessarja

Näistä kentistä määrämuotoisia ovat mediaclass, category ja language.

Määrämuotoiset kentät voivat saada seuraavia arvoja:

Mediaclass

ArvoSelite
bookkirjat
cdCD-levyt ja CD-ROM -levyt
sheetMusicNuotit, partituurit yms.
dvdDVD, DVD-AUDIO ja DVD-ROM -levyt
videoVideokasetit
vinylVinyylilevyt
cassetteC-kasetit ja muut ääninauhat
otherMaterialMuu materiaali
microFilmMikrofilmit
periodicalAikakaus- ja sanomalehdet, lehtileikkeet
mapKartat
documentMonisteet, työpiirrustukset
bluerayBlu-ray -levyt
pictureKuvat, diat
brailleSokeainkirjoitus
internetVerkkoaineisto

Category

ArvoSelite
fictionCategoryKaunokirjallisuus
nonFictionCategoryTietokirjallisuus

Language

Language-kenttä voi saada minkä tahansa ISO 639-2 -listauksessa mainitun arvon

Hakuesimerkkejä

Seuraavaksi muutamia hakuesimerkkejä — nämä voi siis kirjoittaa suoraan PIKI-verkkokirjaston (ja varmaan myös muiden Arena-verkkokirjastojen) pienenpieneen hakulaatikkoon.

Haetaan ennen toista maailmansotaa tai sen aikana julkaistut Viipurin kartat:

mediaclass:map subject:viipuri publicationyear:[* TO 1944]

Mitä suhteellisen tuoreita taloustieteen alan kirjoja löytyy kirjastosta

subject:taloustiede publicationyear:[2000 TO NOW]

Hmm, onkohan kirjastossa tarjolla amharankielistä kaunokirjallisuutta:

language:amh AND mediaclass:book AND category:fictionCategory

Hakusana saadaan täsmäytymään tarkasti, jos se laitetaan lainausmerkkien sisään.
Sen sijaan, jos esimerkiksi nimen kirjoitusasu ei ole selvä, haku saadan täsmäämään myös sumeasti ~-merkillä. Tsaikowskin eri muotojen selättäminen käy vaikkapa seuraavasti:

author:Tsjaikovski~
author:Tchaikovsky~
author:Tsjaikovski~

Täsmäytyksen tarkkuutta voidaan säätää välillä 0 < n < 1. Esimerkiksi:

author:Tsjaikovski~0.7

Mitä löytyy saunaperinteestä:

subject:sauna~ AND subject:perinne

Mitähän mainio Terra Cognita -kustantamo on julkaissut parin viime vuoden aikana:

publisher:"Terra Cognita" AND publicationyear:[2009 TO NOW]

Nähtäväksi jää, toteuttaako Axiell Arenaan täsmällistä hakua helpottavan käyttöliittymän. Mikäli näin ei käy, yksi vaihtoehto on rakennella epävirallinen hakukäyttöliittymä Spotify Super Searchin tyyliin. Spotify on muutenkin tässä tapauksessa hyvä vertailukohta, sillä kuten uusissa yhden luukun kirjastojärjestelmissä, myös Spotifyn haun taustalla toimii hakumoottori, joka taipuu paljon monimutkaisempiin hakutapoihin kuin käyttäjille tarjottu hakulaatikko antaa ymmärtää.

Uusi kirja

Kirjastot — Matti @ 23:12

Kuva alkuperäistekstistä
Viikko sitten päättyneiden CES-messujen jälkitunnelmissa kuhistaan, että alkaneen vuoden aikana e-kirjat tulevat lyömään lopullisesti läpi. Nähtäväksi jää käykö näin — Stetson-Harrison -tuntumalla sanoisin, että 2010 saattaa hyvinkin olla vuosi, jolloin myös muualla kuin Yhdysvalloissa (jossa on jo Kindle) edelläkävijäkäyttäjät tarttuvat e-kirjaan. Vuosina 2012-2013 voisi olla sitten suuren yleisön aika.

Niin tai näin, CES-messuilla julkaistiin liuta lukulaitteita ja niihin liittyvää teknologiaa, kuten myöskin tablet-tyyppisiä tietokoneita, jotka todennäköisesti tulevat kilpailemaan samoista markkinoista varsinaisten lukulaitteiden kanssa. Jotkut arvelevat, että pidemmän päälle tablet-tietokoneet ja muut yleiskäyttöiset laitteet tulevat jäämään kisassa voittajaksi.

Tällä hetkellä suurin ongelma ei ole niinkään yleiskäyttöisten laitteiden akkukesto tai prosessoriteho, vaan näyttö; lukemisen kannalta kaikkein olennaisin osa. Tavanomaiset puhelimista ja tietokoneista löytyvät LCD-näytöt eivät sovellu kovinkaan hyvin käytättäväksi kirkkaassa ulkoilmassa ja tekstin terävyydessäkin on joskus parantamisen varaa.

Voi olla että rasittuneet silmät saavat kohta armahduksen, sillä CES-messuilla esiteltiin ensimmäiset yleiskäyttöiset laitteet (ja laskettiin liikkeelle huhuja useista muista laitteista), joissa käytetään luettavuudeltaan samantapaista näyttöä kuin varsinaisissa e-kirjojen lukulaitteissa on. Näyttökeksinnön takana on PixelQi-niminen yhtiö, jota luotsaa One Laptop per Child -projektin äiti ja optoelektroniikkaguru Mary Lou Jepsen. PixelQi-näytöt vaikuttavat ainakin kuvien perusteella olevan immuuneja kirkkaalle auringonvalolle — samaan tapaan kuin varsinainen e-paperi — toimien kuitenkin myös tavanomaisena, värejä ja liikkuvaa kuvaa toistavana näyttönä.

Uskon Jepsenin olevan oikeassa todetessaan:”Pixel Qi has a belief on the future of the computing – it’s not about the CPU or the OS – It is about the screen.”. Paperikirjan ja lehtien massamarkkinoiden hidas kuolema alkaa, kun luettavuudeltaan paperia muistuttavat näytöt otetaan käyttöön kuluttajaelektroniikassa. Paperi julkaisualustana tullee liittymään vinyylilevyjen ja filmivalokuvauksen seuraan, harrastajien intohimon kohteeksi. Luksustuotteeksi?

Miksipä mietin näitä?

Jokunen päivä sitten Amazon toimitti minulle painavan lähetyksen. Järkälemäisessä paketissa oli syksyllä tilaamani Carl Jungin Punainen kirja. En voi sanoa tuntevani Jungin analyyttistä psykologiaa juuri lainkaan, vaan jonkinasteisesta bibliofiliasta kärsivänä hankin kirjan taideteoksena :) Kirja on kaunis katsella, sen paperi on paksua ja painojälki on niin hyvää, kuin se suinkin voi olla. Kyseessä on siis yksi-yhteen kopio hieman keskiaikaista käsikirjoitusta muistuttavasta alkuperäisteoksesta, täydennettynä englanninkielisellä käännöksellä.

Olen nyt alkuperäistekstin (tai minun näkökulmastani, tekstikuvien) ihastelun ohessa lukenut myös käännöstä, jonka pääasiallisinta lukijakuntaa lienevät Jung-tutkijat ja analyyttistä psykologiaa soveltavat terapeutit. Selaillessani kirjajärkälettä aloin miettiä, voisiko englanninkielinen käännös palvella lukijakuntaasa paremmin, mikäli se olisi rinnakkaisjulkaistu e-kirjana, tai vielä paremmin hypertekstinä, Perseus-projektissa julkaistujen käsikirjoitusten tapaan. Valtavien foliosivujen selailu on kieltämättä meditatiivinen kokemus, mutta luulenpa tekstiin työkseen pureutuvien arvostavan enemmän tekstin haettavuutta ja käsiteltävyyttä. Tämän kirjan lukeminen vaatii telineen! Toivottavasti kirjan julkaisun mahdollistanut Philemon Foundation sekä julkaisija W. W. Norton & Company ymmärtävät tämän ja julkaisevat kirjan sähköisen version, ennen kuin joku innokas tutkija digikameroineen tarttuu toimeen ja vuotaa tekstin verkkoon. Kirjan julkaisussa on tehty niin valtava työ, että siihen panostaneiden soisi saavan vaivoistaan kunnon korvauksen.

Sehän on vain semantiikkaa

Kirjastot — Matti @ 1:08

Istuskelin viikko sitten perjantaina Teknillisellä korkeakoululla kuuntelemassa FinnONTO -mahtihankkeen päätösseminaarin esityksiä. Suomalaisen semanttisen webin perusinfraa kehittäneessä hankkeessa on kehitetty mm. Yleisen suomalaisen asiasanaston isoveli, n. 20 000 käsitteen Yleinen suomalainen ontologia (YSO) sekä tätä käsiteviidakkoa laajentavat Museoalan ontologia MAO, valokuvausalan VALO sekä paikkaontologia SUO, vain muutamia hankkeessa kehitettyjä ontologioita mainitakseni. Rakennetut ontologiat ovat vapaasti käytettävissä TKK:n ontologiapalvelimen kautta. Nyt suomalaisten semanttisen webin sovellusten kehittäminen ei ole ainakaan käsitemalleista kiinni.

Päätösseminaarissa ontologioiden voimaa havainnollistettiin demosovellusten avulla. Protot toimivat varsin mukavasti ja erityisesti paikkaontologia SUO vakuutti hyödyllisyydestään, nyt kun kuntarajat ovat vapaaehtoisessa(kin) liikkeessä. SUO-ontologian avulla hakusovellus saadaan ymmärtämään esimerkiksi se, että Rovaniemi-niminen paikka on koostunut vuodesta 2006 alkaen kahdesta aiemmin erillisestä alueesta (Rovaniemi ja Rovaniemen maalaiskunta), jotka sijaitsevat Lapin läänin sisällä, joka on ollut vuoteen 1938 asti osa Oulun lääniä.

Demoja ihmetellessäni mietin, millä edellytyksin esitellyt teknologiat – ontologiat etunenässä – leviäisivät aluksi edes web-harrastajien käyttöön. FinnONTO-hankkeen puolelta käyttöönottokynnystä on koitettu madaltaa ONKI Widget-palvelulla, jonka tarkoituksena on integroida halutut ontologiat olemassaoleviin tietojärjestelmiin.

Idea on vähän sama kuin Technorati Tags -palvelussa, jonka avulla voidaan yhdistää eri bloggaajien kirjoitukset käytettyjen avainsanojen perusteella, mutta nyt käytössä ovat ontologioiden käsitteet. Technorati Tags-palvelun käyttöä helpottaa eri julkaisualustoille kehitetyt moduulit, joiden ansioista loppukäyttäjän ei tarvitse huolehtia Technoratiin linkittämisen yksityiskohdista. Nähtäväksi jää, kuinka moni semanttisesta webistä kiinostunut web-harrastaja onnistuu yhdistämään Onki Widgetin julkaisutyökaluunsa – itselläni se jäi toistaiseksi yritykseksi.

Olisi hienoa, jos Semantic Web 2.0 (FinnONTO 2.0)-hankkeessa, joka jatkaa päättyneen FinnONTO-hankkeen viitoittamalla tiellä, kehitettäisiin jotain tämäntapaista. Käyttövalmiit moduulit suosituimpiin vapaisiin julkaisujärjestelmiin, esimerkiksi Drupaliin ja WordPressiin, olisivat reipas harppaus eteenpäin verkon semantisoinnissa – samaan tapaan kuin julkaisujärjestelmiin integroidut mikroformaatit esimerkiksi XFN ovat semantisoineet verkkoa loppukäyttäjän kannalta läpinäkyvästi jo muutaman vuoden ajan.

Drupal-puolella joitain semanttisen webin rakennuspalikoita on jo kehitteillä, esimerkiksi Semantic Search-moduuli ja kuluvan vuoden maaliskuun DrupalCon-tapahtumassa semanttiselle webille on tiedossa oma sessio.

VuFind – kasvojenkohotusta Voyagerille

Kirjastot — Matti @ 18:12

Philadelphialaisen Villanova Universityn kirjasto on rakentanut mielenkiintoisen Voyager-kirjastojärjestelmän asiakaskäyttöliittymän korvaajan.VuFind-nimellä kutsuttua järjestelmää on kehitetty vajaan vuoden verran ja viime viikon perjantaina julkaistiin ensimmäinen yleiseen käyttöön valmis testiversio. Mikä parasta, koodi julkaistiin GPL-lisensoituna! Myöhemmin VuFind tulee tukemaan myös muita kirjastojärjestelmiä (ml. avoimen koodin Evergreen ja Koha), joten projektin etenemistä on syytä pitää visusti silmällä.

VuFind toimii kokonaisuudessaan avointen ohjelmistojen varassa. Vaatimuksina ovat:

  • Apache 2.2 (web-palvelin)
  • PHP 5.1.0 (yleinen web-sovelluksissa käytetty ohjelmointikieli)
  • MySQL 4.1 (tietokanta)
  • Java J2SE JDK 1.4 (yksi yleisimmistä ohjelmointikielistä)
  • YAZ 3.0 (mm. MARC-tietueiden käsittelyssä käytettävä avoin Z39.50 -ohjelmistokirjasto)

Järjestelmän varsinaisina aivoina toimii Solr-hakumoottori (myös avointa koodia), mutta asennuspakettiin sisällytettynä sitä ei mainita erikseen vaatimusluettelossa. VuFind toimii samalla periaatteella kuin NCSU:n näyttöluettelo, joka on rakennettu kaupallisen Endeca-hakumoottorin päälle. NCSU:n näyttöluettelosta bloggisin puolisentoista vuotta sitten.

NCSU:n näyttöluettelon tapaan järjestelmä ei käsittele alkuperäisiä MARC-tietueita, vaan tietueet muutetaan helpommin käsiteltävään muotoon ja tuodaan VuFindin omaan tietokantaan järjestelmän käyttöönottovaiheessa. Vielä nykyisessä 0.5-
versiossa varsinaisen tietokannan ja näyttöluettelotietokannan synkronointi ei suju automaattisesti, mutta jo seuraavassa kehitysversiossa toiminnallisuuden on jo tarkoitus olla. Tällöin synkronointi voidaan tehdä eräajona esimerkiksi öisin.

Hajahuomioita ja pari vertailevaa ruudunkaappausta (klikkaa kuvia suuremmaksi).

Perus-Voyager

Teoksen tiedot Voyagerin perus-OPACissa

VuFind

Teoksen tiedot VuFindissä

Käyttöliittymä on toteutettu viisaasti. Kaikki HTML-koodi on sijoitettu erillisiin sivupohjatiedostoihin, jotka nopean tutkailun perusteella näyttäisivät olevan jokseenkin puhtaita varsinaisesta ohjelmakoodista. Käyttöliittymän asettelussa on hyödynnetty Yahoon BSD-lisenssillä tarjoamaa Grids CSS -koodia. Grids CSS on osa Yahoon UI-kirjastoa, joka koostuu lukuisista web-kehittäjän elämää helpottavista käyttöliittymäkomponenteista ja -kirjastoista. Valmiita komponentteja käyttämällä VuFindin kehittäjät ovat välttäneet painimasta selainkohtaisten CSS-yhteensopivuusongelmien kanssa, kun Yahoon väki on hoitanut asian heidän puolestaan.

Asennusohjeet näyttävät selkeiltä ja ilmeisesti myös ovat sitä, sillä esimerkiksi Miami Universityn kirjastossa työskentelevä Rob Casson toteaa asennuksen sujuneen puolessa tunnissa. Löytyisiköhän suomalaisilta Voyager-käyttäjiltä, joita ovat mm. kaikki yliopisto- ja ammattikorkeakoulukirjastot, hieman pioneerihenkeä ja puolta tuntia löysää aikaa?

Edit:

Google-haun perusteella näyttäisi siltä, että VuFind -nimellä kehitetään myös videohakujärjestelmää. Voi olla, että näyttöluetteloprojekti joutuu vielä vaihtamaan nimeä, sillä mitä todennäköisemmin videohakujärjestelmää kehittelevä VuFind Inc. ei sitä tule tekemään.

Seuraava sivu »
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2012 Kaukomieli | powered by WordPress with Barecity