Tien jaar inventaris
Sinds 13 mei staat er een gloednieuwe inventaris op https://inventaris.onroerenderfgoed.be. Ze ziet er heel anders uit, maar wie de vorige versie kende herkent veel: de gegevens zijn nog steeds hetzelfde erfgoed waar Vlaanderen rijk aan is. Achter de schermen is er wel heel wat veranderd — de onderliggende technologie werd volledig herschreven. Vandaag blikken we terug op de technologische evolutie van de inventaris in de voorbije tien jaar.
Wat toen nieuw was, is nu oud
De nieuwe inventaris volgt de technologische principes en architectuur die het agentschap Onroerend Erfgoed hanteert sinds 2014, na de samensmelting van het Vlaams Instituut voor het Onroerend Erfgoed (VIOE) en het agentschap Ruimte en Erfgoed. Op dat moment beschikte het agentschap over een erg divers technologisch landschap, en werd al snel beslist over te gaan tot een nieuwe technology stack.
Er bestond bij het VIOE al lang een sterke voorkeur voor open source software, een keuze die behouden bleef: qua systeembeheer bleven we werken met *nix-servers (Debian of Ubuntu), en op het vlak van databanken bleef PostgreSQL de evidente keuze — geen licentiekost, ruim voldoende volumecapaciteit, en met de PostGIS-plugin een uitstekende GIS-motor.
De grootste wijziging was de keuze van programmeertaal. Waar het VIOE in PHP ontwikkelde en Ruimte en Erfgoed met Java en .NET werkte, koos het nieuwe agentschap voor Python. Van de drie grote Python-webframeworks van dat moment (Django, Flask en Pyramid) werd uiteindelijk voor Pyramid gekozen. Daarnaast kwam er Elasticsearch bij voor performant zoeken in grote datasets, en Redis voor caches en queues bij asynchrone opdrachten.
Onze frontends gebruiken sindsdien een CSS-framework zoals Foundation, en net als veel andere webontwikkelaars zetten we de stap naar Single Page Applications (SPA's) — webtoepassingen die grotendeels op JavaScript draaien en continu via REST-services met de backend communiceren. Die zetten we intensief in voor beheersomgevingen en complexe toepassingen zoals ons geoportaal; voor publieke pagina's houden we het bewust functioneel met weinig JavaScript, zodat ze goed werken op oudere toestellen en goed indexeerbaar zijn voor zoekmachines. Onze eerste SPA's gebruikten nog Dojo, recentere toepassingen gebruiken Aurelia.
Waar de oude inventaris begon met klassieke HTML-forms en HTTP POST-requests, evolueerde ze de voorbije tien jaar steeds meer naar een systeem waarin REST-services een centrale rol spelen. In de nieuwe inventaris, zoals in al onze hedendaagse toepassingen, trokken we die kaart resoluut door: we ontwikkelden een Resource Oriented Architecture waarin we overstappen van enkele grote, monolithische toepassingen naar een netwerk van kleinere, meer gefocuste toepassingen met elk hun eigen specialisatie. De nieuwe inventaris vormt vandaag de centrale component van dat netwerk.
Ook op het vlak van uitrol en beheer evolueerden we sterk: waar we tien jaar geleden nog manueel ingrepen op enkele servers in één datacenter, werken we nu met geautomatiseerde deploys in twee datacenters, met Ansible voor het opzetten van basis servers, fabric voor het uitrollen van toepassingen, en Alembic voor het beheer van databankschema's onder versiecontrole.
Niet enkel de technologie wijzigt
Niet alleen de technologie veranderde, ook de inhoud en focus evolueerden sterk. Toen we in 2009 de inventaris lanceerden, was het Vlaams Instituut voor het Onroerend Erfgoed net opgericht als wetenschappelijke instelling die voor het eerst al het onderzoek naar archeologie, bouwkundig erfgoed en landschappen verenigde. Verschillende inventarissen en informatiesystemen (databanken, maar ook boeken zoals Bouwen door de Eeuwen Heen) kwamen voor het eerst samen in beheer. Omdat die systemen elk hun eigen invalshoek hadden, werd de eerste versie van de Inventaris Onroerend Erfgoed opgevat als een portaal, met één look-and-feel maar elk inventaris met een eigen datamodel. Bij de lancering in mei 2009 bevatte het portaal de inventaris bouwkundig erfgoed en de inventaris wereldoorlogerfgoed, met ondersteunende modules voor afbeeldingen, gebeurtenissen en thesaurustermen.
Tussen 2009 en 2015 kwamen nieuwe modules bij: orgels, archeologische zones, historische tuinen en parken, houtige beplantingen met erfgoedwaarde, ankerplaatsen uit de landschapsatlas, en varend erfgoed. Al snel bleek dat die inventarissen, ondanks methodologische verschillen (een gebouw wordt gesloopt, een boom wordt gerooid), in essentie hetzelfde deden: beschrijven welk erfgoed zich waar bevindt, gedocumenteerd met afbeeldingen, beschrijvingen en thesaurustermen. Elke nieuwe module kreeg dan ook de vorm van een aangepaste versie van de inventaris bouwkundig erfgoed, met als voornaamste verschil de locatiecomponent: precieze adresgegevens voor kleine elementen versus grotere erfgoedgehelen voor de andere modules.
Toen het VIOE in 2012 samenging met het agentschap Ruimte en Erfgoed, kwam ook de databank van het beschermd erfgoed mee. Die bleek vooral juridische gegevens te bevatten en weinig inhoudelijke informatie, dus werd ze toegevoegd aan de inventaris als een aparte module die grotendeels hetzelfde datamodel deelde. Dit mondde uiteindelijk uit in de dataset van de aanduidingsobjecten (zie Erfgoedobjecten en aanduidingsobjecten), publiek gemaakt in juni 2016.
Naarmate de inventaris evolueerde, werd steeds duidelijker dat al die verschillende inventarissen helemaal niet zo verschillend waren, en gingen we ze meer als één geïntegreerde inventaris beschouwen — wat ook leidde tot meer communicatie en samenwerking tussen de verschillende erfgoedonderzoekers. Samen met de lancering van de aanduidingsobjecten voerden we ook de term erfgoedobjecten in: elk object uit de wetenschappelijke inventarissen kreeg een erfgoedobject met een eigen URI. In 2016 waren dit grotendeels cosmetische aanpassingen — de verschillende detailpagina's werden samengevoegd tot één pagina, maar achterliggend bleven het nog aparte datasets met een eigen datamodel. Op dat moment werd duidelijk dat de oude inventaris zo ver gebracht was als mogelijk binnen haar oorspronkelijke opzet.
Dus startten de voorbereidingen voor wat uiteindelijk de nieuwe inventaris zou worden — enerzijds omdat onze visie op de wetenschappelijke inventarissen sterk gewijzigd was, van losse silo's naar één grote inventaris van erfgoedobjecten, en anderzijds omdat de technologische componenten aan vervanging toe waren. Nu de nieuwe inventaris er is, blijven we schaven tot ze helemaal doet wat we willen binnen de huidige mogelijkheden.
Meer weten over de inventaris? Nog wat andere blogs op een rijtje:
- Algemene informatie over de nieuwe inventaris
- Erfgoedobjecten en aanduidingsobjecten: wat zijn ze en waarom bestaan ze?
- Thema's, personen en gebeurtenissen: waarvoor dienen de drie ondersteunende modules?
- Van zoeken naar vinden op de nieuwe inventaris: hoe zijn de zoekmogelijkheden opgebouwd?
- Full text zoeken in de inventaris: hoe werkt full-text zoeken, met voorbeelden bij de erfgoedobjecten?
De IT-wereld evolueert nog steeds snel. Onze corebusiness is misschien het verleden, maar we willen dat verleden op een toekomstgerichte manier beheren — met een continue, adaptieve aanpak die openstaat voor nieuwe inzichten, zowel over ons erfgoed zelf als over de technologie waarmee we het beheren en ontsluiten. Vragen hierover mag je altijd stellen.