Publicatie:Naar een efficiënt beheer van digitale assets
In 2021 schreef het DIVA museum een overheidsopdracht uit voor de ontwikkeling van een bidirectionele integratie van collectiebeheersysteem Qi en digital asset manegement system ResourceSpace. Deze opdracht werd in 2022 afgerond. Hiermee werden verschillende tijdsrovende processen, waaronder het manueel koppelen van beelden aan objectrecords en het metadateren van de digitale assets, grotendeels geautomatiseerd. Dit verslag deelt de opzet van het project alsook de werkwijze van de applicatie met de sector.
Titel | Naar een efficiënt beheer van digitale assets (Voorkeurstitel) |
Locatie | |
Uitgever | |
Jaar van uitgave | 2023 |
Rechten | CC0 |
Persistent ID |
Auteurs
- Vincent van Beek, collectieregistrator DIVA museum
Context
Begin 2013 schreef het museum, toen nog Zilvermuseum Sterckshof Provincie Antwerpen, een overheidsopdracht uit voor een nieuw collectiebeheersysteem. De opdracht werd gegund aan Keepthinking, het bedrijf achter het collectiebeheersysteem Qi. De overstap naar het nieuwe systeem in 2014 was de aanzet tot en de hoeksteen van een ambitieuze digitale strategie voor het nieuwe museum waarin, naast verschillende webapplicaties, ook een DAM-systeem een plaats zouden krijgen.
Het destijds gebruikte DAM-systeem voldeed echter niet meer aan de verwachtingen: als gevolg werd in 2017 een prijsvraag verstuurd voor een nieuw DAM-systeem voor DIVA, FOMU & MoMu. Montala, de ontwikkelaar van het DAM-systeem ResourceSpace, bleek de beste partij en het systeem werd in 2018 opgeleverd.
Begin 2021 bestonden bovengenoemde systemen los van elkaar, wat resulteerde in blokkades in de workflow. Als er bijvoorbeeld een nieuwe aanwinst werd fotografeerd, werden de beelden (inclusief embedded data) op ResourceSpace geüpload. De object-gerelateerde metadata, zoals het inventarisnummer, de maker van het afgebeelde item, trefwoorden ... moesten handmatig worden toegevoegd. Vervolgens werd van dat beeld een afgeleide gedownload die in het bijbehorende objectrecord in het CMS werd geüpload, waarna het in Qi’s mediabibliotheek werd opgeslagen. In deze omgeving moest de embedded data, waaronder de naam van de fotograaf of digitaliseringsfirma, nogmaals toegevoegd worden.
Wanneer metadata in één systeem werd aangepast, moest dit dus handmatig in het andere systeem worden gecorrigeerd. Deze twee asynchrone workflows tastte de integriteit van de data aan, maakten deze minder vindbaar en was gewoonweg niet efficiënt.
Doel
Het doel van deze aanbesteding is een volledige bidirectionele integratie van de systemen die bovenstaand proces stroomlijnen.
Het CMS is hierbij de ‘bron van waarheid’ voor alle metadata die met de objecten te maken heeft, zoals titel, kunstenaar, datering, beschrijving, … Het DAM-systeem is de ‘bron van waarheid’ voor gegevens die specifieker zijn voor de digitale assets, zoals fotograaf, licenties, gebruikte apparatuur, …
De broncode van het aangeleverde product moest zo ‘open’ en modulair mogelijk zijn. Concreet moest het museum de code achteraf zelf kunnen uitbreiden en wijzigen (bv. mapping) of dit door een andere partij naar keuze kunnen laten uitvoeren. Het product werd bij voorkeur open source aangeleverd en moest te hosten zijn door de opdrachtgever zelf op eigen infrastructuur, op een webservice in beheer van de opdrachtgever of op infrastructuur van de uitvoerende partij. Deze keuze lag bij het museum. Een goede documentatie (bv. op Github) was een bijkomende vereiste.
Opzet
Workflow
De connector vraagt om de twee uur alle resources uit ResourceSpace op. Daarna wordt het desbetreffende record in Qi op basis van het in ResourceSpace gedocumenteerde inventarisnummer opgezocht en matcht de connector ze zelf aan de resources uit ResourceSpace. Vervolgens vergelijkt de connector de metadata over het object in ResourceSpace met die in Qi. Wanneer deze in ResourceSpace ontbreekt of niet overeenkomt met die in Qi, wordt de benodigde metadata naar ResourceSpace weggeschreven. In een daarvoor voorzien metadataveld in ResourceSpace, Link CMS, wordt aangegeven of een afbeelding al dan niet beschikt over een koppeling met Qi.
Qi (media) | ResourceSpace |
---|---|
Title | Title |
Media copyright | Copyright Owner |
Media credits | Credit |
File name | Original filename |
File size | File Size |
Type | File Format |
Caption | External Note |
Daarnaast controleert de connector of Qi over (een link naar) de meest recente afbeelding in ResourceSpace beschikt, samen met de meest recente metadata over deze afbeelding. Indien deze in Qi ontbreken of niet overeenkomen met de afbeelding en/of metadata in ResourceSpace, roept de connector de REST API van Qi aan om een link naar deze afbeelding en/of de bijhorende metadata in Qi op te laden.
Qi (objecten) | ResourceSpace |
---|---|
Titles | Title |
Description | Description |
Makers | Artwork Creator |
Production 'Date from' & 'Date to' | Artwork Date 'From date' & 'To date' |
Keywords | Keywords |
IPR-status | Rights Statements & License |
Rights statement | Internal Note |
Via de FTP-server wordt een afgeleide afbeelding rechtstreeks aan de mediabibliotheek van Qi toegevoegd waarna de gekoppelde afbeelding met bijhorende metadata automatisch doorstroomt naar het objectrecord en dus ook de front-end van het CMS. In het veld Link DAMS wordt de URL van de resource vastgelegd. De mappen op de FTP moeten overeenkomen met de ID van een map uit de mediabiobliotheek van Qi, anders worden er geen beelden geïmporteerd. De afbeeldingen worden verplaatst naar de opgegeven map als ze overeenkomen. De bestandsnaam moet overeenkomen met het object-ID én de inhoud-ID bevatten (1 voor objecten). Bijvoorbeeld: 4233-1.png.
De oude flow zorgde zoals eerder aangehaald voor inconsistente data, met name wat betreft auteursrechten. In de nieuwe flow worden de velden License en Rights Statements uit ResourceSpace automatisch ingevuld op basis van de waarde in het veld IPR-status in Qi.
IPR-status (Qi) | License (ResourceSpace) | Rights statements (ResourceSpace) |
---|---|---|
Publiek domein | Publiek domein | |
Geen auteursrechtelijke beperkingen bekend | Onbekend | No Known Copyright |
Auteursrechtelijk beschermd | Alle rechten voorbehouden | In Copyright |
Auteursrechtelijk beschermd - Rechthebbende(n) niet-lokaliseerbaar of niet-identificeerbaar | Alle rechten voorbehouden | In Copyright - Rights-holder(s) Unlocatable or Unidentifiable |
Auteursrechtelijk beschermd - EU verweesd werk | Alle rechten voorbehouden | In Copyright - EU Orphan Work |
Taal
De applicatie werd ontwikkeld in PHP met behulp van het Symfony-framework. Dit biedt volgende voordelen:
- PHP is een gekende, veel gebruikte en goed gedocumenteerde programmeertaal.
- Symfony is een gekend, veel gebruikt, goed gedocumenteerd en robuust framework. Het maakt gebruik van Composer voor het beheer van packages. Er bestaat een zeer uitgebreide waaier aan kant-en-klare packages, waarmee in veel gevallen heel wat programmeertijd kan bespaard worden.
- PHP is een platformneutrale taal die op elk besturingssysteem kan draaien.
- Er zijn bestaande Symfony-applicaties die API-calls uitvoeren naar ResourceSpace en REST API’s (zoals MediaHaven van meemoo). Van deze applicaties kunnen op eenvoudige wijze delen hergebruikt worden, wat zorgt voor een grote besparing in implementatietijd.
- Symfony kan op eenvoudige wijze configuratiebestanden in diverse formaten inladen en verwerken.
Hosting
De applicatie wordt gehost op een server van DigitalOcean. Er wordt een monitoring-systeem voorzien die automatisch een alarm verstuurt naar de verantwoordelijke mocht de applicatie stoppen met werken, zodat zij dit zo snel mogelijk kunnen verhelpen. De ontwikkelaar zorgt er tevens voor dat de software regelmatig up-to-date wordt gehouden, beveiligingsrisico’s tijdig worden aangepakt en zij voorzien in het eventueel ander onderhoud van de software wanneer dit nodig blijkt, conform de onderling overeengekomen Service Level Agreement.
Openheid
Er werd zoveel mogelijk aandacht besteed aan het gebruik van een of meerdere configuratiebestanden zodat het museum zelf de nodige parameters of mappings kan aanpassen naargelang hun eigen wensen, zonder dat hiervoor enige kennis vereist is van de achterliggende applicatiecode. Dergelijke configuratie kan onder meer de volgende elementen omvatten:
- ResourceSpace URL, API username en API key
- URL en logingegevens van Qi
- Welke metadatavelden in ResourceSpace en Qi moeten worden gesynchroniseerd
- Welke afgeleide bestanden eventueel uit ResourceSpace moeten worden opgehaald
De applicatie wordt zo modulair mogelijk gemaakt, zodat afzonderlijke componenten desgewenst kunnen vervangen of aangepast worden met minimale impact op de rest van de applicatie.
De applicatie wordt als open broncode gepubliceerd op Github onder een GPLv3-licentie. In de bijhorende README.md zal documentatie staan over de algemene werking, installatie en gebruik van de applicatie. Daarnaast wordt ook zoveel mogelijk documentatie voorzien in zowel de code als de configuratiebestanden.
Uitdagingen
Tijdens de ontwikkelingsfase van de koppeling kwamen een aantal belemmeringen bovendrijven die voor onvoorziene vertragingen hebben gezorgd.
Onder meer de API van Qi bleek niet zo compleet als voorheen gedacht. Daarom werd deze geoptimaliseerd, zodat metadata uit de mediabibliotheek kan worden opgehaald én geüpdatet. Waar er eerst werd gedacht aan een viewer, werd als snel duidelijk dat de digitale assets toch best in het CMS geïmporteerd zouden worden. Om dit te verwezenlijken, moest er een nieuwe functionaliteit ontwikkeld worden die zou toelaten om via een FTP-server beelden in een daarvoor voorziene map in de mediabibliotheek te importeren.
Daarnaast blijft menselijke controle relevant. Zo werden doorheen de jaren al heel wat beelden manueel toegevoegd in Qi. Dit resulteerde in drie categorieën:
- Afbeeldingen in ResourceSpace waarvoor een record met overeenkomstig inventarisnummer en bestandsnaam werd gevonden in Qi. Deze bestanden zullen niet worden opgeladen in Qi, er wordt wel automatisch een link gelegd tussen de afbeeldingen in beide systemen gezien verondersteld word dat het om dezelfde afbeelding gaat
- Afbeeldingen in ResourceSpace waarvoor een record met overeenkomstig inventarisnummer is gevonden in Qi en waarbij nog geen enkele afbeelding in Qi aanwezig is. Deze zullen worden opgeladen in Qi.
- Afbeeldingen in ResourceSpace waarvoor een record met overeenkomstig inventarisnummer is gevonden in Qi. De records bevatten wel afbeeldingen, maar geen enkele bestandsnaam van de afbeeldingen komt overeen met die in ResourceSpace. In sommige gevallen zal de afbeelding moeten worden opgeladen, in andere niet. Deze lijst zal manueel moeten worden overlopen om na te gaan voor welke afbeelding een offload moet gebeuren en voor welke enkel een link moet worden gelegd.
De derde categorie zal dus gecontroleerd moeten worden alvorens de link wordt geïnstigeerd.