Technologie Stack
Voor wie het technisch wil weten. De standaarden die we spreken, de techniek waarop we draaien, en de keuzes daarachter.
Delving is gebouwd op open standaarden en een bewust klein aantal technieken. Niets ervan sluit uw data op: die komt binnen in standaardformaten, gaat eruit in standaardformaten, en wat daartussen gebeurt is bij elke stap zichtbaar.
Open standaarden erin en eruit
- Harvesting: OAI-PMH, plus XML- en CSV-exports en SIP-pakketten (bronrecords samen met hun mapping).
- Datamodellen: de mapping richt zich op het model dat u kiest, zoals EDM (het Europeana Data Model), EAD voor archivistische inventarissen, of uw eigen schema. Elk record wordt gevalideerd tegen het XML Schema van dat model.
- Publiceren: een gefacetteerde JSON-zoek-API, OAI-PMH om records door te geven, en op aanvraag RDF met dereferenceerbare URI’s en een SPARQL-endpoint.
De techniek
- Orchestra, de interface voor de hele keten, is gebouwd met SvelteKit en Svelte 5 op SQLite. Lijsten en formulieren worden opgebouwd uit schema’s die de server meestuurt, zodat de interface nergens vastlegt hoe een record eruitziet.
- De zoekindex is een Go-service op Elasticsearch. Die levert de zoek-API waarop DIW en uw eigen toepassingen draaien.
- Mapping draait op een beproefde mapping-engine die al jaren erfgoedcollecties publiceert. Mappings worden gegenereerd uit de veld-naar-veldmapping die u ontwerpt, en met de hand verfijnd waar de data erom vraagt. Orchestra spreekt hem aan via gRPC, en de live preview gebruikt precies dezelfde engine als de volledige run.
- Beelden worden verwerkt door een Go-mediaservice op libvips, met de bronbestanden in S3-compatibele objectopslag. Die maakt thumbnails en Deep Zoom-tegels, zodat zelfs zeer grote scans direct openen en soepel inzoomen.
- DIW is een Svelte-component die op bijna elk webplatform te installeren is, WordPress inbegrepen.
Waarom Go, Svelte en Zig
Nieuwe services bouwen we in Go: snel, eenvoudig uit te rollen als één programma, en jaren later nog goed te lezen. Interfaces bouwen we in Svelte, omdat ze daarmee reactief zijn: pas een mapping of een filter aan en het scherm werkt direct bij, zonder de pagina te herladen en zonder een zwaar framework in de browser. Waar pure snelheid telt, grijpen we naar Zig, zoals in de statische libvips-wrapper achter onze beeldverwerking. Drie talen die elk doen waar ze het best in zijn, houden de techniek klein genoeg om goed te onderhouden.
Bouwen op de data
Wilt u de gepubliceerde data zelf bevragen? De zoek-API, SPARQL en RDF staan op de ontwikkelaarspagina.
Heeft u een collectie die verdient gevonden te worden?
Vertel ons over uw data. Wij laten zien wat Delving ermee kan.
Neem contact op