Danmarks Forskningsportal har udviklet en datapipeline og systemarkitektur, der indsamler, beriger og sammenkæder data fra flere forskellige kilder. Portalen stiller også 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 setupet og NORA Teamets dataanalytikere.
- Datakonsolidering: Data grupperes for at identificere og linke ens poster på tværs af de forskellige dataleverandører
- Formidling: Data gøres tilgængelige via flere web- og søgegrænseflader, samt analyseværktøjer.
Detaljeret Overblik
Der er to hovedpipelines, der deler nogle essentielle trin i det tekniske setup: henholdsvis Den Globale og Den Lokale pipeline.
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.
Den næste fælles proces for begge pipelines er udtrækning af organisationsnavnevarianter, som indebærer:
- At udtrække og tælle antal af unikke affilierings-IDer, 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 strukturereing 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.
Den næste hovedtjeneste, der leveres, er datakonsolidering på tværs af de forskellige dataleverandører, både globale og lokale. Clusterdannelsen af de Globale Data – GOI (Global Object Identifier)-cluster af de samme poster på tværs af de tre globale leverandører- er skabt i neo4J. Clusterdannelsen af lokale data – LOI (Local Object Identifier)-clusters af de samme poster på tværs af alle danske dataleverandører – sker på en anden måde på grund af typen af data og dets kvalitet. Som diagrammet viser, importeres LOI-cluster også i neo4J for at blive brugt til det sidste trin af den universelle clusterdannelse – NOI (NORA Obejct Identifer)-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.
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 dedupliceringsreglerne for visning kan findes her.