Teknologi

Marcus er et resultat av mange år med digitalisering og registrering ved Spesialsamlingene ved Universitetsbiblioteket i Bergen og prosjektene Digitale fulltekstarkiv og Linked Data - et nettverk i 2012-2013. For å få mest ut av alt som er registrert av metadata i ulike system og format har vi besluttet å konvertere alt til Linked data. Dette har vi valgt for å knytte sammen alle våre egne samlinger/datasett, men også for å dele vår data og bruke hva som allerede eksisterer av Linked Data. Vi er langt fra en ferdig teknisk infrastruktur, men vi har kommet godt i gang.

Linked Open Data - What is it? fra EuropeanaVimeo.

Bakgrunn

Bakgrunnen for å gjøre dette er gamle systemer som er nær sagt umulige å vedlikeholde, og av og til et fravær av egnede systemer for å registrere og formidle våre samlinger.

Infrastruktur

Verktøy

En stor grunn til at vi har kunnet gjennomføre dette prosjektet er Open Source programvare. Alle funksjonene vi trenger finner vi gratis programvare for, uten å binde oss til kommersielle og proprietære leverandører. Dersom vi ikke kan lese dokumentasjon eller se på koden og installere programvaren på under én dag, skal det mye til for at vi benytter oss av det i denne fasen av prosjektet.

Konvertering av data

Prosjektene har handlet mye om å konvertere data fra ulike format til rdf. Våre data har hovedsakelig vært i CSV-filer dumpet fra databaser og EAD-XML filer.

OpenRefine

CSV-filene har hovedsakelig blitt konvertert ved OpenRefine (tidligere Google Refine). Dette verktøyet er laget for å vaske store mengder data og passer derfor godt til å rydde opp i databaser der små og store feil har sneket seg inn gjennom årenes løp. Ved hjelp av utvidelser har vi mappet eller "reconciled" våre data med eksterne datasett som Freebase. Deretter er alle kolonner blir mappet til vår datamodell og dataene eksporter som RDF.

XSLT

Et av våre verktøy i dataproduksjonen for Marcus er utviklingen av XSLT stilark for å transformere XML til RDF. Denne produksjonen består ofte av flere steg.

For prosjekter hvor vi har velformet XML og godt beskrevne metadata, bruker vi individuelle mappinger basert på skjema, transkripsjon og gjeldende praksis i de individuelle prosjektene. To eksempler på dette er Diplom- og Fragmentsamlingen.

Vi har mappet skjemaer som EAD og TEI (P4 og P5) til vår ontologi. Selv om vi gjenbruker mye av funksjonaliteten som er knyttet til disse, mapper vi RDF på et prosjekt til prosjekt basis, og ikke skjema til ontologi. Dette gjør vi fordi det er ulik praksis og størrelse på beskrevne dokumenter i de forskjellige prosjektene.

Spesialsamlingen ved Universitet i Bergen har parallelt med alle prosjektene digitalisert dokumenter og kilder, og lagret disse i vel-strukturerte kataloger. Vi bruker denne strukturen til å produsere formidlingsklare digitale objekter. For å jobbe med filer på system har vi også brukt XSLT og den siste kandidat til w3c specification Expath (spesifikasjon for filbehandling), implementert av Saxonica i sin parser. Denne gir XSLT muligheten til å programmere rundt eget filsystem.

Ved hjelp av dette har vi en arbeidsflyt for filhåndtering og RDF genering:

  1. Stilark som analyserer alle undermapper fra mappen den blir kjørt i, og som rensker opp mappen basert på helt enkle regler. Den legger til /Pdf /Jpeg /Tiff og /Dzi mapper der det finnes slike filer, og rapporterer tilbake feil i mappestruktur.
  2. Stilark som produserer shell filer for å generere web-klare objekter. Vi bruker VIPS for å produsere ut forskjellige thumbnails, dzi-filer og store jpeg filer fra Tiff kildefilen.
  3. Kjøring av shell skript som ble generert.
  4. Stilark som analyserer mappestruktur og returnerer en XML med sti til alle filer samt attributter og identifiere.
  5. Nok et stilark som mapper dette til RDF. Her slås identifiers opp i ett parameterisert dokument for å finne type og identifer. To lister med feil generes.
    • Metadata RDF-filen som beskrives i 5. er ofte produsert fra Google Speadsheet. Vi bruker EasyOpenData, som strømmer XML-filer til oss fra disse regnearkene. Dette gir oss muligheten til å vedlikeholde en liste over strømmede filer, som vi kan transformere med et enkelt stilark som tar for seg metadataproduksjonen til de digitale kuratorene.
  6. Objekter i metadatafilen som ikke finnes i mappestrukturen (signaturen kjennes ikke igjen) og beskrevne identifikatorer fra mapper som ikke er beskrev i metadatafilen.

I tillegg jobber vi også med å vedlikeholde Wittgenstein arkivets TEI-filer til DM2E Europeana datamodel sammen med Kilian Schmidtner fra Humboldt Universitetet i Berlin. For Wittgensteinarkivet vedlikeholder og produserer vi stilark for å lage Wittgensteinarkivets egen vitenskaplige ontologi. Hvis du vil vite mer om bruken av ontologier i filosofi og for Ludvig Wittgenstein spesielt, sjekk ut denne artikkelen: placeholder

Registreringsklient

Vi ønsker å ha en registreringsklient som å kunne produsere og redigere våre Linked Data. Denne funksjonen er kanskje der det er minst utvalg av løsninger.

Vi har eksperimentert med Protégé som vår registreringsklient. Med et server-klient oppsett kan alle jobbe mot samme datasett på serveren med lokalt installerte klienter. Dette oppsettet har noen problemer med hastigheten og føles lite responsivt, men vi håper å få ordnet dette.

Google Spreadsheet bruker vi til å registrere enkelt dokument i ulike samlinger og sammenhenger. Disse regnearkene konverteres til Linked Data med OpenRefine eller med XSLT-stilark.

Visualisering

Vi har testet ulike system for å lage nettsider på vår Linked Data. Drupal var tidlig en kandidat, men det føltes tungvint og lite fleksibelt. Linked Data Pages var en tidlig utfordrer sammen med Graphite. Etter litt testing gikk vi videre med LODSpeakr. LODSpeakr har vist seg å være et enkelt system å lage tilpassede visninger på våre materialtyper.

Takk til

En stor takk til NTNU, Bergen offentlige bibliotek, Robert Engels og alle som har hjulpet oss med prosjektene! Prosjektene er støttet av Nasjonalbiblioteket.

Åpent Sparql endpoint

Åpne data

Vi har åpnet data som Marcus er laget på og du kan utforske de i vårt åpne Sparql endpoint. Det finne mange gode sider som hjelper det med å komme i gang med å spørre våre data og få data i den form du foretrekker. Alle data er CCO!


Kontaktinformasjon

Ta kontakt med oss om du har kommentarer, finner feil, eller ønsker å snakke med oss som jobber med nettsidene: