Publicatie:Catmandu in de erfgoedsector

Uit Cultureel Erfgoed Standaardentoolbox
Ga naar: navigatie, zoeken


Samenvatting

In de erfgoedsector is het vaak nodig om data om te zetten naar andere formaten. Exports uit collectiebeheersystemen zijn vaak in een systeemeigen formaat, maar aggregatoren, zoals Europeana, vragen dan weer het gebruik van een standaardformaat zoals EDM of LIDO. Het omzetten van de data naar het standaardformaat is vaak een tijdrovende klus, die ofwel door de instelling zelf manueel moet gebeuren, ofwel door de leverancier van het systeem wordt uitgevoerd, vaak met een fikse kostprijs.


Referentie
Titel Catmandu in de erfgoedsector (Voorkeurstitel)
Locatie
Uitgever
Jaar van uitgave 2017
Rechten CC-BY-SA
Persistent ID


In de erfgoedsector is het vaak nodig om data om te zetten naar andere formaten. Exports uit collectiebeheersystemen zijn vaak in een systeemeigen formaat, maar aggregatoren, zoals Europeana, vragen dan weer het gebruik van een standaardformaat zoals EDM of LIDO. Het omzetten van de data naar het standaardformaat is vaak een tijdrovende klus, die ofwel door de instelling zelf manueel moet gebeuren, ofwel door de leverancier van het systeem wordt uitgevoerd, vaak met een fikse kostprijs.

Er bestaat software om dit proces te vereenvoudigen. Als bron- en doelformaat XML zijn, wat vaak het geval is, kunnen XSLT-documenten soelaas bieden, maar XSLT is een zeer ingewikkelde programmeertaal. Het is bovendien ook bijna niet mogelijk om geëxporteerde data te verrijken of om data rechtstreeks op te vragen via een API. OpenRefine is hiervoor beter geschikt, maar is dan weer minder bruikbaar voor omzetten van data in het ene formaat naar het andere.

Leveranciers maken vaak hun eigen omzettingstool, die enkel door hun programmeurs gebruikt kan worden. Gebruikers die zelf met conversie aan de slag willen blijven in de kou staan, tenzij de tool toevallig open source is, maar dan nog ontbreekt vaak de technische kennis om de tool aan te passen voor eigen gebruik. Er bestaan gelukkig wel enkele systemen die zowel data kunnen omzetten als data kunnen verrijken, en één ervan is Catmandu.

Catmandu[1] is een tool die mede ontwikkeld is door de Universiteitsbibliotheek Gent en die daar gebruikt wordt om de bibliotheekbeschrijvingen uit een veelheid aan beheersystemen te integreren in de gemeenschappelijke bibliotheekcatalogus[2]. Catmandu is oorspronkelijk gebouwd voor en door bibliotheken, maar het kan veel breder ingezet worden.

Traditioneel wordt data geëxporteerd uit een CMS (Collectiebeheersysteem), manueel of semi-automatisch opgeschoond en verrijkt en manueel geïmporteerd in een Aggregator (boven). Met Catmandu kan het proces volledig automatisch verlopen, zonder imports of exports. Alle bewegingen gaan via de API (onder).

Catmandu laat toe om data te importeren en exporteren uit verschillende systemen, zowel specifieke systemen (bv. ElasticSearch), als meer generieke databases (MySQL, MongoDB) en API-endpoints (bv. OAI). Het formaat van de data kan systeemeigen zijn, maar ook generieke formaten zoals CSV, XML of JSON kunnen worden gebruikt. Catmandu laat bovendien niet alleen toe om mappingen van het ene naar het andere formaat te doen, maar ook om de data tijdens de omzetting aan te passen en op te schonen. Deze mapping gebeurt in een zelfontwikkelde “fix”-taal.

Catmandu zet geïmporteerde documenten intern om naar een boomstructuur, waar dan aanpassingen kunnen op gebeuren via de fix-taal. Een boomstructuur laat toe om ieder item in één document of record, het “veld”, via een path uniek te identificeren met een syntax die veel gelijkenissen vertoont met XPath of JSONPath.

De fixtaal bevat veel functies die het mogelijk maken om velden samen te voegen, te splitsen of toe te voegen. Zo kan je met louter fixes de datastructuur van een Adlib XML Export omzetten naar de datastructuur van LIDO XML. De tool laat toe om de omgezette structuur dan te exporteren naar een XML-document. Via de fixtaal kan je ook data uit externe bronnen, gaande van databases tot RESTful API’s, toevoegen aan jouw record. Zo kan je bijvoorbeeld de verwijzing naar een term uit de thesaurus vervangen door de term zelf zonder dat je hiervoor extra software moet schrijven.

Catmandu is Open Source-software en is geschreven in Perl. De software kan geïnstalleerd worden op de meeste Unix-compatibele systemen, maar dit is het eenvoudigst op Linux. Het basissysteem ondersteunt de meest voorkomende in- en uitvoerformaten, maar er is een grote lijst plug-ins die ondersteuning toevoegen voor allerlei formaten en systemen. In het kader van het project Datahub van PACKED vzw en VKC zijn ook plugins ontwikkeld om te werken met het LIDO-formaat, wat de tool ook breed inzetbaar maakt binnen de erfgoedsector.

Dit artikel werd geschreven door Pieter De Praetere (PACKED-medewerker) en verscheen in META 2017/1 in de reeks Uitgepakt.