Slik vil NRK gjøre det mulig å finne igjen eldre radio-og TV-programmer

Jens Kilde Mjelva
Systek
Published in
5 min readJun 10, 2018

NRK startet i 2014 Origo-prosjektet med mål om å sikre et nytt metadata-fundament for fremtiden. En viktig del av dette er å sørge for at NRKs metadata arkiveres og tilgjengeliggjøres på en måte som gjør kulturarven vår tilgjengelig for viderebruk i framtidig produksjon. Origo omfatter flere systemer som huser mediefilreferanser og metadata om ulike deler av NRKs innhold:

  • Radioarkivet — består av 500 000 radioprogrammer fra 1933 og frem til i dag.
  • Nytt folkemusikkarkiv — arkivet er et samarbeid med Nasjonalbiblioteket og inneholder over 100 000 folkemusikkspor.
  • Klipp — holder på metadata om video- og TV-klipp.

Sammen er disse systemene med på å utgjøre NRKs metadatabank (MDB). Systemene er bygget med samme arkitektur der Event Sourcing og Command Query Responsibility Segregation (CQRS) er sentrale ”patterns”. Med CQRS er det et skille i modellen som brukes for å modifisere dataene i systemet og modellen(e) som brukes for å hente ut dataene via oppslag eller spørringer, såkalte view-models. Enhver endring i systemene fører til en eller flere commands som i sin tur utløser events. Ulike lytterklasser som er ansvarlige for én type view-modell abonnerer på eventene. Når en event mottas av en lytterklasse, sørger lytterklassen for å oppdatere sin view-model. En slik arkitektur er velegnet for å tilby ulike modeller av metadatene og å sørge for at disse er konsistente med hverandre.

Dataflyt mellom sentrale komponenter i MDBs backend

Metadatabankens ulike modeller

MDBs innhold konsumeres av webapplikasjoner for søk og brukervennlig presentasjon av data, samt applikasjoner som snakker med MDB via API-er for å bruke dataene i videre produksjon eller distribusjon. For eksempel bruker NRK Radio dataene fra Radioarkivet for å levere avspillbare radioprogrammer til publikum på radio.nrk.no. MDBs data brukes også til analyse og rapportering, blant annet pliktig rapportering av musikkavspillinger til rettighetsorganisasjoner.

De ulike typene anvendelser krever at dataene struktureres og håndteres på forskjellige måter som er optimalisert til sitt formål. I MDB gjøres dette i form av ulike view-models der de følgende er sentrale:

JSON-modeller for oppslag

Dette er en JSON-representasjon av de ulike domeneobjektene i applikasjonen, for eksempel et radioprogram eller et folkemusikkspor. JSON- modellene returneres ved hjelp av REST API-er.

REST API-ene og JSON-modellene brukes av applikasjoner som ønsker å hente data om en gitt ressurs. Dette omfatter både intern bruk fra MDBs frontend-applikasjoner, f.eks. vis all informasjon om radioprogrammet “Nitimen” sendt den 21–05–2018, og ekstern bruk fra andre applikasjoner i andre deler av NRK.

Elasticsearch-dokumenter for søk

Denne modellen baserer seg på den ovennevnte JSON-modellen i kombinasjon med en unik ID. Sammen utgjør dette et dokument som indekseres i Elasticsearch.

Elasticsearch danner fundamentet for søk i MDBs frontendapplikasjoner og er helt sentralt for blant annet medarbeidere som skal finne igjen tidligere sendt innhold. Eksempler på søk i MDB:

  • Finn alle programmer med tittelen “Radioresepsjonen” sendt i oktober 2015 i radioarkivet .
  • Hent alle spor med sjangeren “pols” der “Knut Buen” var komponist i folkemusikkarkivet.
  • Finn alle videoklipp fra “Hedmark og Oppland” med innholdsnøkkelord “flom” fra 2018.
Eksempel på søk i Radioarkivet

RDF-modeller for rapportering

Resource Description Framework (RDF) er en World Wide Web Consortium (W3C)-standard for å beskrive data og relasjoner. RDF-modellene i MDB persisteres i ulike triplestores, databaser spesiallaget for lagring av RDF-modeller. Triplestorene eksponerer egne endepunkter som brukes for å gjøre spørringer mot RDF-modellene. Dette gjøres ved hjelp av spørrespråket og protokollen SPARQL som også er en W3C-standard.

I en RDF-modell er det god praksis å bruke etablerte vokabularer. Det mest sentrale vokabularet som brukes i MDB er EBU-CCDM, etablert av European Broadcasting Union (EBU) for å beskrive ting som er spesielt relevant innen kringkasting, slik som et program. MDBs RDF-modeller benytter seg også av andre vokabularer kjent utenfor kringkasting, slik som Simple Knowledge Organization System (SKOS) og dcterms fra Dublin Core Metadata Initiative.

Ved å benytte etablerte vokabularer i RDF-modellene sørger vi for at MDBs data kan forstås av eksterne aktører, for eksempel andre kringkastere som samarbeider med NRK. Og siden MDBs data modelleres på samme måte i de ulike arkivene — selv om de er laget av ulike utviklingsteam — kan tilsvarende SPARQL-spørringer benyttes for å generere rapporter om ulikt arkivmateriell, f.eks. en rapport over hvilke roller en gitt person har i radioprogrammer, folkemusikkinnspillinger og videoklipp.

RDF-modellene er, akkurat som JSON-modellene, også tilgjengelige via REST-API-er. Dette gjør at vi kan hente ut en RDF-representasjon av for eksempel et radioprogram ved å slå opp (HTTP GET) programmets ID i Metadatabanken.

Modellene utfyller hverandre

JSON- og Elasticsearch-modellene er designet for å gjøre bestemte deler av metadatabanken tilgjengelig for webapplikasjoner som i sin tur tilbyr de videre til brukerne. Ved hjelp av søk i et eller flere forhåndsdefinerte felter, finner MDBs brukere igjen arkivmateriale i løpet av millisekunder.

RDF-modellene er laget med fokus på å representere domenene i MDB mest mulig presist. SPARQL-spørringer mot disse modellene kan brukes til å analysere dataene på måter vi ikke har sett for oss, og til å lage sammenstillinger til bruk i rapporter. En SPARQL-spørring bruker typisk lengre tid på å returnere et svar enn en Elasticsearch-spørring, men med SPARQL kan vi spørre om “alt” i MDB, ikke bare det som er forhåndsdefinert for å gi en enhetlig brukeropplevelse. SPARQL støtter også at vi spør på tvers av endepunkter, dermed kan vi for eksempel hente all informasjon om musikksporene fra folkemusikkarkivet som inngikk i et program i radioarkivet, selv om informasjonen bor i to forskjellige databaser.

Veien videre

NRK sitter på enorme mengder metadata som gjør det mulig å finne igjen skatter fra arkivene, men det finnes huller — både innhold som mangler og innhold som er vanskelig å finne igjen.

Det jobbes med å digitalisere gammelt materiale som ikke ennå er en del av Metadatabanken. Enkelte av de gamle filene som digitaliseres har minimalt med metadata knyttet til seg, kanskje bare en tittel og en dato. I den forbindelse ser NRK på teknikker for å automatisk høste metadata basert på det faktiske innholdet på filene, slik at det blir gjenfinnbart. Blant annet lekes det med å bruke tale-til-tekst-programvare på radioprogrammer for deretter å anvende algoritmer som trekker ut og indekserer sentrale ord fra teksten som innholdsnøkkelord. Dermed kan for eksempel egennavn hentes ut fra en gammel nyhetssending og gi treff for journalister som søker etter klipp fra et gitt sted eller om en gitt person. Et annet eksempel er forsøk på å automatisk kjenne igjen hvem som det er som snakker på et lyd- eller videoklipp. Dette kan gjøres basert lyd — taler-gjenkjenning — eller basert på bilder i TV-materiale — bildegjenkjenning. På denne måten kan medvirkende personer gjenkjennes, indekseres og gjenfinnes ved søk i arkivene.

PS! Vi søker etter flere dyktige medarbeidere. Se våre ledige stillinger her.

--

--