Teknisk Dokumentation - Publikationer
For Danmarks Forskningsportal er der udviklet en datainfrastruktur og systemarkitektur, der indsamler, beriger og sammenkæder data fra flere forskellige kilder. Portalen stiller derudover en række tjenester til rådighed for Forskningsportalens slutbrugere.
Det ovenstående ‘High Level Architecture-diagram‘ illustrerer de fire centrale hovedprocesser der foregår i opbygningen af selve infrastrukturen:
- Datahøst og præprocessering: data fra forskellige kommercielle og lokale dataleverandører samles og lagres i databaserne
- Databerigelse: data beriges med yderligere- eller forbedrende dataelementer i samspil mellem den tekniske del af infrastruktursetupet og NORA teamets dataanalytikere.
- Datakonsolidering: data grupperes for at identificere og matche og/eller linke ens poster på tværs af de forskellige dataleverandører.
- Formidling og udstilling af data: data gøres tilgængelige via flere web- og søgegrænseflader, samt analyseværktøjer.
Under Detaljeret Overblik gennemgås de enkelte processor i detaljer.
Detaljeret Overblik
Datahøst og præprocessering
Der er to hoveddatapipelines, der deler nogle essentielle trin i publikationsdatabasernes overordnede tekniske setup og infrastruktur – det drejer sig om henholdsvis Den Globale- og Den Lokale datapipeline.
De Globale Data lagres i en MongoDB database ‘collection’, der standardiserer de heterogene input til mere sammenlignelige og homogene JSON-strukturer. I MongoDB databasen gemmes dog også de rå dataelementer indlejret i JSON-formatet med alle de originale felter og indlejrede strukturer.
De Lokale Data høstes ved at forespørge alle de lokale repositorier (CRIS systemer) for et komplet datasæt i XML-format (via det nationale udvekslingsformat DDF-MXD) og lagres som rådata i en SQLite-database. Derefter transformeres data til JSON-format og gemmes også i MongoDB.
Som hovedregel eksisterer alle data på den ene MongoDB-server i en eller flere ‘collections’ på den pågældende server. Formålet er at have en ”single source of truth”, der skaber et fælles referencepunkt og letter den tekniske styring af datastrømmene længere fremme.
Databerigelse
Den næste fælles proces for begge datapipelines og -typer er udtrækning af organisationsnavnevarianter, som indebærer:
- At udtrække og tælle antal af unikke affilierings-ID’er og/eller organisationsnavne, der skal benyttes i den manuelle mappingproces for affiliationer
- At udtrække og matche DOI’er fra- og mellem dataleverandører og skabe en ny samling indeholdende resultaterne heraf
- At oprette mere ensartede datastrukturer (parset), som udnyttes længere nede i datapipelinen
Denne udtrækning og strukturering af data er afgørende for hovedtjenesten inden for dataforbedring i portalens setup (NORA-Enhancements), og er også fælles for begge pipelines. Værktøjerne, der bruges her, er neo4j og Google Sheets, hvor sidstnævnte bruges til at gemme et ‘master mappingark’ for organisationer, lande og emneklassifikationer.
Når en navnevariant udtrækkes, sammenlignes den med de eksisterende mappings for at se, om der er et match, hvilket betyder, at denne variant er identificeret og håndteret før. Hvis varianten allerede er mappet, bliver antallet af dets forekomster i alle posterne opdateret i mappingarket. Hvis varianten ikke allerede er mappet, foreslås en ny kode i Google Sheet, og varianten bliver bliver efterfølgende manuelt valideret.
Flere detaljer om den nøjagtige proces og reglerne kan findes her.
Datakonsolidering
Den næste hovedbearbejdning af data der foretages er datakonsolidering og matching mellem poster fra de forskellige dataleverandører – både globale og lokale, samt på tværs af disse data:
- Clusterdannelsen af de Globale Data – identificeres ved ID’et GOI (Global Object Identifier). GOI er clusters af de samme poster på tværs af de tre globale leverandører og skabt i neo4J.
- Clusterdannelsen af lokale data – identificeres ved ID’et LOI (Local Object Identifier). LOI er clusters af de samme poster på tværs af alle danske dataleverandører – og skabes ved en anden metode en GOI grundet kompleksiteten af de lokale data og dets kvalitet, men som diagrammet også viser, importeres LOI-cluster også i neo4J eftrfølgende for at blive brugt til det sidste trin af den universelle clusterdannelse (NOI).
- Clusterdannelsen på tværs af globale og lokale data identificeres ved ID’et NOI (NORA Object Identifier). NOI er clusters af de samme poster på tværs af GOI- og LOI-clusters.
Detaljeret information om algoritmerne og de regler, der bruges i de forskellige clusterdannelser (GOI, LOI og NOI), kan findes her.
Genereret information om de berigede navnevarianter og GOI, LOI, NOI clusters processeres tilbage til MongoDB databasen, og via et FastAPI bliver de tilgængelige for Forskningsportalens web- og søgegrænseflader, samt analyseværktøjer.
Formidling og udstilling af data
Udstillingen af de bearbejdede data sker gennem søgegrænseflader, hvor brugerne kan udføre enkle og avancerede tekstsøgninger og bruge de avancerede filtre, som er mulige på grund af de berigede og konsoliderede data.
Den velstrukturerede karakter af de Globale Data tillader brugen af VIVO til dette formål. VIVO er et open source semantisk webværktøj til ”Research Discovery”. Der er én VIVO-instans for hver dataleverandør. De clustrede globale data (GOI-clusters) udstilles for sig i en fjerde VIVO-baseret tværsøgningsdatabase kaldet ‘Across All Data’, hvor man kan søge på tværs af data fra de tre globale dataleverandører.
Søgegrænsefladen for de Lokale Data er baseret på et Elastic Search-indeks, og der gøres en særlig indsats for at skabe en konsolideret metadatapræsentation af de konsoliderede publikationsposter.
Mere information om reglerne for den konsoliderede visning kan findes her.