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 + '.'
Onko tällä sivulla http://data.kirjastot.fi/data.html oleva aineisto marc21 mukaista (kuten nimi antaisi olettaa) vai onko se kuitenkin FinMarc formaatissa? Yritän tehdä pientä harjoitusta tuolla aineistolla ja marcxml toimisi parhaiten. Olen täältä yrittänyt lukea ohjeita http://www.kansalliskirjasto.fi/extra/marc21/bib/index.htm mutta en ole ihan varma miten esim. tämä pitäisi tulkita?
00299nam a22001331 450
Ppro853_1010
930518s1970 1
Ehtisitkö vähän auttamaan? Toinen asia mikä ihmetyttää on se, että kirjallahan voi olla useita tekijöitä miten ne ilmoitetetaan marcxml formaatissa? En löytänyt vaski aineistosta muuta kuin etunimen ja sukunimen XML tiedostojen tietueiden sisältä.
Esim.
Marx
Karl
Moikka, autan toki mielelläni.
Katsotaas: data.kirjastot.fi:ssä oleva aineisto on HelMetin osalta MARC21:stä, tai no HelMetissä taitaa olla muutama ns. paikallinen sovellutus tuohon standardiin mutta periaatteessa tavara on MARC21:stä. Vaskin osalta (jonka avoin data -synnytyksen kätilöin itse) tavara on FinMARCia, enkä onnistunut saamaan Vaskin FinMARC→MARC21 -konversion tuloksia ennen lähtöäni Turusta kesäkuun lopussa omaan käyttööni (tehtävä #2099 hylätty) enkä sitä myöten myöskään avoimeksi dataksi. Sen perään voi kysellä Ulla-Maija Maunulta. Kuten tuossa yllä olevassa videossa kuvataan, tuon konversion voi tehdä itse USEMARCONilla, mutta valitettavasti Vaskin järjetelmätoimittajalta Axiellilla teetätetyt konversiosäännöt eivät taida olla saatavilla; tosin niitäkin voi kysellä Ulla-Maijalta tai konversiotyötä koordinoineelta Anna Viitaselta. Itse tekemäni konversiot on tehty noilla Kansalliskirjaston ylläpitämillä konversiosäännöillä.
Sekä MARC21 että FinMARC taipuu kyllä MarcXml:ksi. Käytän tähän hommaan itse yaz-marcdump -työkalua, mutta muillakin homma onnistuu.
Toi viittaamasi ns. nimiö, eli MarcXml:n rakenteessa
/collection/record/leader
on dokumentoitu täällä. Nimiö (aka. ”leader” aka 000-kenttä) ja muut kiinteämittaiset kentät ovat tunnettu akilleen kantapää MARC-tietoformaatissa. Viittaamassasi tietueessa esim paikat 5-9 (nam a
) (huom. laskeminen aloitetaan 0:sta, eikä 1:stä) tarkoittavat seuraavaa:jne.
MARCissa ns. pääkirjaus tehdään kenttiin
1XX
, eli siellä on keskeisin tekijä. Muut tekijät pitäisi tallentaa kenttiin70X-75X
. Vaikka asia on mainittu luettelointisäännöissä, ei kuitenkaan voi luottaa että tieto siellä olisi. Lisäksi tietoa tallennetaan kenttään245
.7XX
:ssä on periaatteessa myös merkitty missä ns. funktiossa kukin tekijä on (kääntäjä, kuvittaja, rummut, säveltäjä, käsikirjoittaja tms.).Hyvä että kysyit, koska tämä on sellaista osaa datasta jonka me kirjastoihmiset haluaisimme olevan hyvää ja luotettavaaa, mutta todellisuudessa datamme on hyvin puutteellista sekä sisältömme että formaattimme osalta.
Anyway, katso esim. Foucaulin Tiedon arkeologia:
Suosittelen erittäin lämpimästi käyttämään jotain ohjelmointityökalujen abstraktiota tekijätietojen noukkimiseen, esim. Perlin MARC::Record tarjoaa
author()
-constructorin. Kaikenkaikkiaan melkoinen viidakko, tsemppiä ja laita vaan lisää kysymyksiä jos (=kun) niitä tulee niin vastailen parhaani mukaan 🙂Minä suosittaisin ottamaan vielä yhden askeleen eteenpäin ja muuntamaan MARCXML:n MODS-muotoon, joka on huomattavasti mukavampi käyttää (esim. kentät ovat selväkielisiä, eivätkä esoteerisia numero-kirjainsarjoja ja lisäksi leaderin sisältämä data konvertoidaan osakentiksi) Konversio ei ole täydellinen, mutta olennaisimmilta osin tiedot säilyvät. Alunalkaen Kongressin kirjaston tekemä ja hieman modifioimani muunnostiedosto löytyy täältä: https://github.com/mjlassila/helmet-xslt .
Niin, ja pitää vielä vinkata BaseX-ohjelmasta (www.basex.org) , joka on melkeimpä paras mahdollinen työkalu XML:n pyörittelyyn. Verraton datasettiin tutustumisen apu, monen muun käyttötarkoituksen ohessa.
Take it from Matti!
BaseX on kyllä mainio ja kätevä, mutta mun täytyy aina preparoida joku pienemi otos datasta koska ei viitti mitään 1.8 miljuunan MarcXML -tietueen settiä availla tällä uskollisella miniläppärilläni. Ehkä voisi harrastusmielessä kokeilla mitä tapahtuisi jos perustaisi BaseX -palvelimen jonnekin Amazonin AWS:ään tai jotain.
Kiitos paljon kommeneista nyt pääsin eteenpäin. Hylkäsin tylysti vaski aineiston koska se ei ollut standardin mukaista ja Matin xlt ”ohjelman” avulla sain käännettyä helmet aineiston selkokieliseksi nopeasti, muuten olisin joutunut kirjoittamaan tosiaan ohjaussääntöjä sen suhteen että n=uutuus jne. enkä sitä halua tehdä. MODS on ihan auto formaatti minulle ja näyttää siltä että yksi nimike koostuu ainakin seuraavista:mods,titleInfo,name,typeOfResource,originInfo,language,physicalDescription,tableOfContents,note,subject,classification,identifier,location ja recordInfo kentistä. Tämä lienee ok? Miten MODS suhtautuu XML, voiko MODS formaattia käsitellä aivan kuten XML tiedostoa? Eli voin parsia MODS tiedostot tietokantaan XML avulla? Harjoituksessa minkä laitan kaikkien nähtäville yritän seuraavassa vaiheessa liittää dataan kirjastotiedon eli kuviteellisesti mistä kirjastosta aineisto on lainattu. En löytänyt netisstä mistään listaa Suomen kirjastoisa, mahtaako sellaista ollakaan? Yritän tuottaa aineiston missä olisi kaikki kirjat/nimikkeet, aidot suomalaiset kirjastot ja sitten generoida kuvitteellisia lainaustapahtumia Hadoopin päälle koska mitä nimikkeitä on lainattu ja koska ei varmaan mitään saa edes korkealla tasolla? Henkilötasolal ei tietenkään, mutta mahtaakohan missään olla tietoa mitkä ovat suosittuja tms.? Iso kiitos jo nyt avusta !!