Tuli tuossa sattumalta esiin, että kirjastojen välinen kopioluettelointi (aka. poiminta) nähtävästi menee ainakin vähän rikki seuraavaksi pariksi vuodeksi. En vielä tässä vaiheessa tiedä asiasta tarpeeksi (kuten ensimmäisen virkkeen epämääräisyys antaa jo ymmärtää) ja tästä on ehkä jossain keskusteltu jo, mutta otanpa asian kuitenkin varmuuden vuoksi esiin.
Saattaa olla ehkä syytä kiinnittää huomiota siihen, että kun yleiset kirjastot pikkuhiljaa vaihtavat Axiellin PallasProsta ja Origosta Auroraan ja kun samalla vaihtuu myös metadataformaatti FinMARCista MARC21:een, eriytyy Suomi kahteen kopioluetteloinnin maailmaan, jotka ovat keskenään erilaisia formaatin eroista johtuen.
En tiedä onko tämä ongelma, MARC mikä MARC, ja kopioluetteloidessa jokatapauksessa kopsattavia tietueita muokataan paikallisesti. MARC21:stä (Auroroista) vanhempiin PallasProihin ja Origoihin kopsailu (ja toisinpäin) tullee kuitenkin muuttumaan työläämmäksi, kunnes kaikilla lopulta on MARC21. Voi toki olla, että Aurorassa itsessään on jo olemassa mahdollisuus pyytää tietueita muissakin muodoissa kuin MARC21:nä, se olisi hienoa.
Tässä olisi vielä aikaa toimia ja kenties ideoida joku keskitetty helpotuskeino. FinMARC↔MARC21 -muunnoshan onnistuu koneellisesti Kansalliskirjaston USEMARCON -ohjelmalle laatimilla muuntosäännöillä. En tiedä olisiko mitään järkeä rakennella jotenkin keskitetysti härveli, joka tekisi muunnoksen automaattisesti poiminnan yhteydessä? Index-Datan YAZ Proxyä voisi ehkä käyttää, tai rakennella YAZ-kirjastojen päälle oman gatewayn joka esim. USERMARCONia käyttäen murjoisi kopioitavat tietueet läpi Kansalliskirjaston muuntosäännöstöstä.
Oliskohan tollaiselle tarvetta? Yhteisluettelo sitten aikanaan poistaa tällaiset haasteet lopullisesti. Jos tämä nyt osoittautuu merkittävästi työllistäväksi asiaksi, niin positiivisena asiana nähtäkööt se, että se jouduttaa yhteisluettelon rakentamista.
Asia tuli esiin, kun eräästä toisesta maakuntakirjastosta oltiin yhteydessä minuun, kun sekä Pirkanmaan PIKI:stä että meiltä Varsinais-Suomen Vaskista kopioluetteloiunti oli lakannut toimimasta. Syy on ilmeisesti kuitenkin eri kuin yllä kuvasin.
⋮ // ***245+248 ALKAA TÄSTÄ*** 245I1 | = 0) Then RegMatch(1) Else S; RegReplaceTable('pieni-isoksi-merkkijonon-alussa.tbl'); If (%000/7/ = 'p' And RegFind('[Aa]rkisto') < 0) 'Arkistoaineisto'; '[' + S + ']' 245$b | 1', Strict); If (NextSub($a, '=1') = 'a') ReplaceOcc ('$a' By ' ;$b', '=2', Strict); ReplaceOcc ('$a' By ' ; ', '>1', Strict); If (NextSub($a, '=1') != 'a' And Not ExistsIn(S, $b)) ReplaceOcc ('$r' By ' =$b', '=1', Strict); Replace ('$r' By ' = ', Strict); Replace ('$t' By '. ', Strict); ReplaceOcc ('$c' By ' / ', '>1', Strict); Replace ('$c' By ' /$c', Strict); If (ExistsIn(S, $c)) Replace ('$d' By ' / ', Strict); ReplaceOcc ('$d' By ' / ', '>1', Strict); Replace ('$d' By ' /$c', Strict); Replace ('$e' By ' ; ', Strict); If (PreviousSub($n, '=1') = 'h' Or PreviousSub($p, '=1') = 'h') MoveBefore('np', $h, 'np', '', '', ' :| /| ;|.| ='); If ($c Precedes $p And PreviousSub($p, '=1') = 'n') ReplaceOcc ('$p' By ', ', '=1', Strict); If ($c Precedes $p And PreviousSub($p, '=1') != 'n') ReplaceOcc ('$p' By '. ', '=1', Strict); If ($c Precedes $p And PreviousSub($p, '=2') = 'n') ReplaceOcc ('$p' By ', ', '=2', Strict); If ($c Precedes $p And PreviousSub($p, '=2') != 'n') ReplaceOcc ('$p' By '. ', '=2', Strict); If ($c Precedes $n) Replace ('$n' By '. ', Strict) Else Replace ('$n' By '.$n') // Info: Käsitellään 248 248$g | 1', Strict) Else ReplaceOcc ('$D' By ' / ', '>1', Strict); RegReplace ('($D.*)$B', '\\1 : ', 'g'); RegReplace ('($D.*)$R', '\\1 = ', 'g'); RegReplace ('($D.*)$C', '\\1. ', 'g'); If (Exists(@245$d) Or Exists(@248$d)) Then { while (RegFind ('$D.*$E') >= 0) { RegReplace ('($D.*)$E', '\\1 ; ', 'g'); }; } Else { while (RegFind ('$D.*$E') >= 0) { RegReplace ('($D.*)$E', '\\1 / ', 'g'); }; } // Info: Jos $n/$p on ennen $b:tä tai $b:tä ei ole, siirretään $n/$p $a:n perään If (RegFind('$b.*$[np]') < 0) MoveAfter('np', $a, 'np', '', '', ' : | / | ; |. | = '); // Info: G:n (n) ja H:n (p) vlimerkit Replace ('$G' By '.$G', Strict); // Info: Siirretään g ja h oikeille paikoille If (PreviousSub(@245$n, '>=1') != 'c' And PreviousSub(@245$p, '>=1') != 'c' And ExistsIn(S, $c)) MoveBefore('GH', $c, 'np', '', '', ' :| /| ;|.| =', 'BR'); If ((Not ExistsIn(S, $n)) And (Not ExistsIn(S, $p)) And (Not ExistsIn(S, $b))) MoveAfter('GH', $a, 'np', '', '', ' :| /| ;|.| =', 'BR'); Replace ('$G' By '$n'); Replace ('$H' By '$p'); If (ExistsIn(S, $c)) { If (Exists(@245$d)) Then Replace ('$D' By ' ; ', Strict) Else Replace ('$D' By ' / ', Strict); } Else Replace ('$D' By ' /$c', Strict); If (Not ExistsIn(S, $b)) ReplaceOcc ('$B' By ' :$b', '=1', Strict); If (Not ExistsIn(S, $b)) ReplaceOcc ('$R' By ' :$b', '=1', Strict); Replace ('$B' By ' : ', Strict); Replace ('$R' By ' = ', Strict); Replace ('$C' By '. ', Strict); If (ExistsIn(S, $b)) MoveBefore('h', $b, 'h', '', '', ' :| /| ;|.| =') Else If (ExistsIn(S, $c)) MoveBefore('h', $c, 'h', '', '', ' :| /| ;|.| ='); For (OCC From 1 To 3) While (PreviousSubIn(S, $n, '=OCC') = 'c' Or PreviousSubIn(S, $p, '=OCC') = 'c') { If (PreviousSubIn(S, $p, '=OCC') = 'c') { If (RegFind(S, '$c.*\\.$') < 0) ReplaceOcc('$p' By '. ', '=OCC', Strict) Else ReplaceOcc('$p' By ' ', '=OCC', Strict); } Else ReplaceOcc('$p' By ', ', '=OCC', Strict); If (RegFind(S, '$c.*\\.$') < 0) ReplaceOcc('$n' By '. ', '=OCC', Strict) Else ReplaceOcc('$n' By ' ', '=OCC', Strict); }; RegReplaceTable('pieni-isoksi-osakentan-alussa.tbl') Z48 | 245 | If (RegFind(D, '\\.\$') < 0) D + S Else D; Pvalimerkitys(); // ***245+248 PÄÄTTYY TÄHÄN*** ⋮
Voihan tämän tehdä käsinkin, mutta voisi olla kiva että tietokone tekisi nämä luetteloijan puolesta.