MARC-kenttien käyttö Helmet-tietokannassa
Otin asiakseni tutkia, mitä kirjastoissa vuosikymmeniä eri muodoissa käytetyn MARC-metadataformaatin kenttiä hyödynnetään pääkaupunkiseudun Helmet-tietokannassa. Alkujaan tarkoituksenani oli seuloa MarcXimiL-työkalun avulla tietokannasta esiin siitä todennäköisesti löytyvät duplikaattitietueet. Ohjelman osoittauduttua tuskaisen hitaaksi ja hieman bugiseksi, päätin jättää asian sikseen ja julkaista duplikaattivertailua varten laatimani kenttäyhteenvedon nyt, ja toteuttaa duplikaattivertailun XQueryn avulla joskus myöhemmin, jollei joku muu ratkaise pulmaa minua ennen.
Kenttäyhteenvedon pohjana käytin MarcXimil-työkalun mukana tulleen colldescr -skriptin tulostetta. Oletusarvoisesti colldescr tulostaa kenttien käytöstä prosenttijakaumat sekä kenttien pituuksien keskiarvot. Muokkasin skriptiä niin, että se tulosteeseen saadaan kenttien absoluuttiset määrät sekä pituuksien mediaanit. Muunnetun skriptin voi ladata käyttöön Gist-palvelusta. Ajoin colldescr-skriptin jokaisen Helmet-datadumpin 68 MARCXML-tiedoston kohdalla, joista kukin sisälsi keskimäärin 10000 MARC-tietuetta. Helmet-tietokannan nykyisessä datadumpissa on kaikkiaan 672206 tietuetta (versio 1.1 / 20.5.2011).
Luonnollisestikaan skriptiä ei kannattanut ajaa käsipelillä, vaan kutsuin sitä BASH-komentotulkkiskriptin kautta. Oheisessa komentotulkkiskriptissä viitattu files_to_process.tmp sisältää listan kaikista 68 MARCXML-tiedostosta:
#!/bin/bash
while read line; do
echo $line
python misc/colldescr.py $line > $line.csv
done < files_to_process.tmp%
Skriptin suoritettuani minulla oli 68 kappaletta CSV-muotoisia tiedostoja, joista kukin sisälsi ennen taulukkosarakkeita muutaman rivin skriptin ajonaikaisia viestejä. Nämä täytyi saada poistettua tiedostoista ennen tiedostojen jatkokäsittelyä. Maltoin kuitenkin mieleni ryhtyä poistamaan rivejä käsin ja tutkin hieman R-tilasto-ohjelman dokumentaatiota - olin joka tapauksessa päättänyt laskea yhteenvedon R:ssä, joten jos mahdollista, myös taulukot kannattaisi siivota samaa työkalua käyttäen. Kuinka ollakaan, R:n taulukkolukija osaa jättää pois tiedostojen alusta halutun määrän rivejä ja onnekseni ajonaikaisten viestien määrä tiedostoissa oli vakio. Seuraava R-skripti lataa CSV-muotoiset tiedostot sekä yhdistää taulukkojen arvot yhteisten avainten (l. kenttätunnisteiden) perusteella.
require(plyr)
require(reshape)
csv_files = list.files(
path="/Users/matti/Documents/2012/HelmetMARCUsage/csv",
pattern = '*.csv',
all.files = TRUE,
full.names = TRUE)
csv_file_list = lapply(
csv_files,
function(x){
read.csv(
file = x,
skip = 13,
sep = '\t',
col.names = c('field', 'count', 'length')
)})
merged_csv <- merge_all(csv_file_list)
marc_field_usage<-ddply(
merged_csv,
c("field"),
summarise,
count = sum(count),
length = median(length)
)
Luotu marc_field_usage -muuttuja sisältää kaikkien Helmet-tietokannassa käytettyjen MARC-kenttien ja osakenttien lukumäärät sekä näiden pituuksien mediaanit. Alla olevaan taulukkoon olen ottanut 96 useimmin käytettyä kenttää, sekä liittänyt näiden yhteyteen kenttäkuvaukset Helmet-luettelointiohjeesta.
Kenttä | Lkm | Mediaanipituus | Kuvaus |
---|---|---|---|
650 4 a | 2603565 | 11.0 | Asiasana, lähdettä ei määritetty |
700 1 a | 1061766 | 14.0 | Lisäkirjaus henkilötekijästä: nimien järjestys käänteinen, sukunimi. |
700 1 e | 839056 | 6.0 | Lisäkirjaus henkilötekijästä: tekijän funktio |
245 10 a | 588940 | 23.0 | Päänimeke |
730 0 a | 563711 | 21.0 | Lisäkirjaus yhtenäistetystä nimekkeestä: yhtenäistetty nimeke. |
730 0 g | 561594 | 14.0 | Lisäkirjaus yhtenäistetystä nimekkeestä: säveltäjä. |
300 a | 552299 | 13.0 | Ulko- tai ilmiasutiedot: aineiston eritysmääre ja laajuus. |
041 0 a | 547986 | 3.0 | Kielikoodi: teoksen pääkieli. |
001controlfield | 536786 | 10.0 | Kontrollinumero. ISBN tai ISMN ilman väliviivoja, mikäli saatavissa. |
245 10 c | 514656 | 31.0 | Vastuullisuusmerkinnöt |
260 b | 512282 | 13.0 | Julkaisutiedot: kustantaja. |
588 a | 490797 | 4.0 | Luokka: Helsinki. pääluokka. |
260 a | 482828 | 9.0 | Julkaisutiedot: kustannuspaikka. |
546 a | 481203 | 8.0 | Kielihuomautus: teoksen pääkielet. |
100 1 a | 470081 | 14.0 | Pääkirjaus henkilön nimestä, nimien järjestys käänteinen: sukunimi |
020 a | 452504 | 17.0 | ISBN-tunnus väliviivoin. |
740 0 a | 398752 | 18.0 | Lisäkirjaus nimekkeestä: nimeke. |
651 4 a | 383787 | 8.0 | Maantieteellinen nimi asiasanana, lähdettä ei määritetty: maantieteellinen asiasana. |
589 a | 371353 | 4.0 | Luokka: Espoo. Pääluokka. |
005controlfiled | 366827 | 16.0 | Viimeisen transaktion tiedot (konversiohetki Plussa-järjestelmästä?) |
590 a | 328006 | 4.0 | Luokka: Vantaa. Pääluokka. |
913 00 a | 321508 | 12.0 | Tuntematon |
300 b | 280761 | 6.0 | Ulko- tai ilmiasutiedot: kuvitus. |
599 a | 271929 | 12.0 | Materiaali |
260 c | 250238 | 4.0 | Julkaisutiedot: julkaisuaika. |
300 c | 236403 | 5.0 | Ulko- tai ilmiasutiedot: koko. |
574 a | 223388 | 16.0 | Kirjastokohtainen huomautuskenttä:helsinki. luetteloijan nimi. |
500 a | 208552 | 64.5 | Yleinen huomautus, soitinkokoonpanohuomautus, laulun alkusanat. |
008controlfield | 192104 | 37.0 | MARC21-formaatin kiinteämittainen kontrollikenttä. |
245 10 b | 172685 | 35.0 | Nimeke- ja vastuullisuustiedot: toinen päänimeke. |
028 01 a | 153642 | 8.0 | ISBN-tunnus väliviivoin. |
591 a | 143879 | 4.0 | Luokka:Kauniainen. pääluokka. |
7102 a | 142713 | 17.0 | Lisäkirjaus yhteisötekijästä: analyyttinen tekijä-nimeke -lisäkirjaus. |
505 0 a | 138765 | 354.5 | Sisältöä tai aihetta koskeva huomautus. |
577 a | 137756 | 16.0 | Kirjastokohtainen huomautuskenttä: Vantaa. |
084 a | 137749 | 5.0 | Luokituskoodi |
440 0 a | 137364 | 22.0 | Sarjamerkintö: sarjan päänimeke. |
080 a | 127299 | 5.5 | Tuntematon |
7102 e | 124897 | 7.0 | Lisäkirjaus yhteisötekijästä: analyyttinen tekijä-nimeke -lisäkirjaus. tekijän funktio. |
575 a | 115631 | 16.0 | Kirjastokohtainen huomautuskenttä: espoo. luetteloijan nimi. |
0411 a | 114375 | 3.0 | Kielikoodit. teos on käännös tai sisältää käännöksen. teoksen pääkieli. |
0411 h | 109795 | 5.0 | Kielikoodit. teos on käännös tai sisältää käännöksen. teoksen alkukieli. |
300 e | 106489 | 12.0 | Ulko- tai ilmiasutiedot. teoksen liiteaineisto. |
600 14 a | 105818 | 15.0 | Kohdehenkilö. nimien osien järjestys käänteinen, sukunimi. |
511 0 a | 105443 | 111.0 | Osallistuja- tai esittäjähuomautus. |
577 b | 102400 | 9.0 | Kirjastokohtainen huomautuskenttä: Vantaa. MuistiVantaa-merkintä, uutuusluettelomerkintä. |
028 01 b | 101682 | 9.0 | Tuotetunnus. Tuotemerkki. |
575 b | 97448 | 9.0 | Kirjastokohtainen huomautuskenttä: Espoo. |
7650 t | 97006 | 21.0 | Alkuteoksen nimeke. |
588 b | 90809 | 5.0 | Luokka: Helsinki. luokkalisäkirjaus. |
574 b | 88316 | 10.0 | Kirjastokohtainen huomautuskenttä: Helsinki. |
100 1 e | 78438 | 7.0 | Pääkirjaus henkilön nimestä, nimen osien järjestys käänteinen. tekijän funktio. |
250 a | 74135 | 13.0 | Painostiedot, painosmerkintö. |
003controlfield | 64439 | 3.0 | MARC-kontrollikenttä |
590 b | 54811 | 5.0 | Luokka: Vantaa. Luokkalisäkirjaus. |
589 b | 53503 | 5.0 | Luokka: Espoo. Luokkalisäkirjaus. |
440 0 v | 53200 | 3.0 | Sarjamerkintö. sarjan sisäinen numerointi. |
245 14 a | 49023 | 26.0 | Nimeke- ja vastuullisuustiedot, ohitettavien merkkien määrä neljä |
245 14 c | 46261 | 27.0 | Nimeke- ja vastuullisuustiedot, ohitettavien merkkien määrä 4. |
7000 a | 44243 | 8.0 | Lisäkirjaus henkilötekijästä. sukunimi tai vastaava hakuelementtinä toimiva nimen osa. |
700 12 a | 41967 | 15.0 | Lisäkirjaus henkilötekijästä. analyyttinen tekijä-nimeke -lisäkirjaus. sukunimi tai vastaava hakuelementtinä toimiva nimen osa. |
700 12 t | 41847 | 29.0 | Lisäkirjaus henkilötekijästä. analyyttinen tekijä-nimeke -liskirjasu. nimeke. |
110 2 a | 41220 | 11.0 | Pääkirjaus yhteisön nimestä. valtion tai hallintoalueen nimi tai pääyhteisö. |
110 2 e | 40253 | 7.0 | Pääkirjaus yhteisön nimestä. tekijän funktio. |
700 0 e | 40186 | 6.0 | Lisäkirjaus henkilötekijästä. tekijän funktio. |
730 0 l | 37506 | 24.5 | Lisäkirjaus yhtenäistetystä nimekkestä. teoksen kieliversio. |
730 0 p | 34534 | 16.0 | Lisäkirjaus yhtenäistetystä nimekkeestä. teoksen osan mikeme. |
730 0 o | 31642 | 18.0 | Lisäkirjaus yhtenäistetystä niekkeestä. sovitusmerkintö. |
600 04 a | 30958 | 8.0 | Kohdehenkilö, lähdettä ei määritetty. sukunimi tai vastaava hakuelementtinä toimiva nimen osa. |
0243 a | 28756 | 12.0 | Muu kansainvälinen tunnus, ean. kansainvälinen tunnus. |
7304 a | 27400 | 24.0 | Lisäkirjaus yhtenäistetystä nimekkeestä, yhtenäistetty nimeke. |
7304 g | 26946 | 13.0 | Lisäkirjaus yhtenäistetystä nimekkeestä, säveltäjä. |
7404 a | 23670 | 23.0 | Lisäkirjaus yhtenäistetystä nimekkeestä, yhtenäistetty nimeke. |
578 b | 22515 | 10.0 | Kirjastokohtainen huomautuskenttä: kauniainen. |
610 24 a | 21589 | 17.0 | Kohdeyleisö. muut yhteisöt, ei lähdettä määritetty. valtion tai hallintoalueen nimi, tai pääyhteisö. |
440 0x | 20711 | 10.0 | Sarjamerkintö, ISSN. |
260 f | 18553 | 14.0 | Julkaisutiedot, kirjapainon nimi. |
730 0 n | 17904 | 7.0 | Lisäkirjaus yhtenäistetystä nimekkeestä. |
506 a | 15830 | 28.0 | Tarkastus tai inventointi, käyttörajoitushuomautus. |
260 e | 15511 | 10.0 | Julkaisutuiedot, painopaikka. |
041 0 b | 14056 | 5.0 | Kielikoodi, teos on käännös tai sisältää käännöksen. tiivistelmän tai teoksen muun osan kielti. |
100 0 a | 13592 | 8.0 | Pääkirjaus henkilön nimestä, nimien järjestys suora |
245 14 b | 13562 | 35.0 | Nimeke ja vastuullisuustiedot. ohitettavien merkkien määrä neljä, toinen päänimeke. |
591 b | 12499 | 5.0 | Luokka: Kauniainen. |
520 a | 12266 | 56.5 | Tiivistelmä ja tiivistelmää tai yhteenvetoa kosketa huomautus. tiivistelmän nimeke. |
035 a | 12206 | 19.0 | Tunnistenumero järjestelmässä. |
518 a | 11939 | 47.0 | Äänitys- tai kuvausaikaa ja -paikkaa tai esinelöydön aikaa ja paikkaa koskeva huomautus. huomautus. |
730 3 a | 11653 | 21.0 | Lisäkirjaus yhtenäistetystä nimekkeestä, yhtenäistetty nimeke. |
730 3 g | 11448 | 11.0 | Lisäkirjaus yhtenäistetystä nimekkeestä, säveltäjä. |
534 c | 11000 | 25.0 | Alkuperäisjulkaisua koskeva huomautus, julkaisutiedot. |
245 13 a | 10665 | 24.0 | Nimeke ja vastuullisuustiedot. päänimeke, ohitettava kolme merkkiä. |
240 10 a | 10401 | 24.0 | Yhtenäistetty nimeke. |
245 13 c | 9985 | 28.0 | Nimeke ja vastuullisuustieto, ohitettavia merkkejä kolme |
240 10 g | 9744 | 8.0 | Nimeke- ja vastuullisuustiedot. |
578 a | 8699 | 10.0 | Kirjastokohtainen huomautuskenttä: Kauniainen. Luetteloijan nimi. |
028 0 a | 6881 | 8.0 | Tuotetunnus |