CollectiveAccess - aineistojen tuonti

Info Täydennämme tätä sitä mukaa kun kokemusta karttuu!

Aineistojen tuomiseen CollectiveAccessiin on olemassa kaksi eri tapaa: CA:n omat työkalut ja REST-rajapinta.

GLAMpipen CollectiveAccess mappaus

CollectiveAccesin oma import-toiminto

CollectiveAccessissa on erinomaiset työkalut aineistojen tuomiseen sovellukseen. Data import -työkalun dokumentointi löytyy täältä. Se on ensi silmäyksellä hyvin lannistavan näköinen miljoonine optioineen, mutta itse asiassa se on aika helppokäyttöinen. Ensimmäiseksi kannattaakin katsoa läpi tämä tutoriaali.

Data import perustuu mappaustiedostoon, jossa kerrotaa mikä kenttä omassa datassasi vastaa mitäkin CA:ssa olevaa kenttää. Kuvitellaan että meillä on seuraavanlainen taulukko:

nimi kuvaus tunniste taiteilija vuosi
Kun meri kuolee  Ateneumin kokoelmissa C V 1720 Kaivanto, Kimmo  1970
Ötökkä tekstiiliteos 123 Heikinheimo, Kaarina 1996
Mona Lisa Ei ole meillä oikeasti 1 Leonardo 1507

 

Jos unohdetaan taiteilija ja vuositiedot tässä vaiheessa, niin voimme luoda seuraavanlaisen mappaustiedoston.

Rule type Source CA table.element
Mapping 1 ca_objects.preferred_labels
Mapping 2 ca_objects.description
Mapping 3 ca_objects.idno

 Source -sarake kertoo monesko kenttä on kyseessä. Tässä tapauksessa ensimmäinen kenttä on "nimi", toinen on "kuvaus" ja niin edelleen. CA table.element -sarakkeessa puolestaan  kerrotaan, mihin äsken määritelty kenttä sijoitetaan CollectiveAccessissa. Sangen yksinkertaista tähän mennessä.

Entäpä sitten taiteilija -kenttä? Emme halua viedä taiteilijaa tavalliseksi tekstikentäksi, vaan haluamme linkittää sen henkilöön, jolla voi olla muitakin tietoja kuten syntymävuosi, koulutus yms. Tässä voimme käyttää importin tarjoamaa Refinery-toimintoa.

Refinery

Kun haluamme luoda linkityksen kahden kohteen - tässä tapauksessa teoksen ja tekijän - välillä, voidaan mappaustiedostossa määritellä ,että tällainen kohde luodaan ja linkitetään importin aikana. Toisin sanoen, kun alkuperäisessä datassa teoksen "Kun meri kuolee" tekijä on Kimmo Kaivanto, niin importissa luodaan henkilö nimeltä "Kimmo Kaivanto", joka sitten linkitetään kohteeseen "Kun meri kuolee".

Refinery määritellään tässä tapauksessa lisäämällä seuraava rivi mappaustiedostoon:

Rule type Source CA table.element Refinery Refinery parameters
Mapping 4 ca_entities entitySplitter {
"relationshipType": "artist",
"entityType": "individual"
}
  • Source kertoo kentän sijainnin alkuperäisessä datasetissa (taiteilija).
  • CA table.element viittaa nyt ca_entities -tauluun, ei ca_objects -tauluun.
  • Refinery -sarakkeessa puolestaan määritellään, että halutaan käyttää entitySplitteriä uusien entiteettien luomiseen. 
  • Refinery parameters kertoo minkä tyyppinen entiteetti luodaan (individual = henkilö) ja millä linkillä se linkitetään teokseen (artist).

Käyttökelpoisuus

CA:n oma import on käyttökelpoinen etenkin silloin, kun lähtödata on suhteellisen yksinkertaista (lue: vähän relaatioita). Hyvänä puolena on se, että prosessi tehdään taulukkolaskentaohjelmistilla, joka on tuttu varmaankin jokaiselle museossa työnkentelevälle.

Huonona puolena on se, että prosessi todella tehdään taulukkolaskentaohjelmistolla.Erillaisten sääntöjen määrittely taulukon eri soluihin käy jossain vaiheessa aika sekavaksi. Erityisesti lukuisien relaatioiden määrittelyt hankaloittavat kokonaisuuden hahmottamista.

Aineiston tuominen REST-rajapinnan kautta

Toinen vaihtoehto aineistojen tuomiselle on käyttää REST-rajapintaa. Tämä vaatii omien työkalujen kehittämistä, mutta hyvänä puolena on menetelmän joustavuus. 

Olemme todenneet CA:n oman import -toiminnon hieman haastavaksi meidän nykyisen järjestelmämme (DUO/ARTE) sangen monimutkaisen rakenteen tuomiseksi CA:aan (lue: paljon relaatioita). Siksi olemme päättäneet kehittää GLAMpipe -pohjaisen importointityönkulun, jolla pystytään tuomaan aineistot yksi päätyyppi kerrallaan. Eli ensin tuodaan esimerkiksi henkilöt, näyttelyt, kokoelmat, sijoituspaika ja sitten objektit. Sen jälkeen kun nämä on tuotu onnistuneesti, linkitetään henkilöt objektien tekijöiksi, objektit kokoelman osiksi ja niin edelleen.

GLAMpipe on avoimen lähdekoodin graafinen datatyökalu, joka on suunnattu GLAM -sektorin tarpeisiin.