Case

Data verzamelen is makkelijk. Bepalen welk stukje voor wie relevant is, is het echte werk.

OmgevingsAlert begon in 2012 met een eenvoudig idee: kies een locatie en ontvang relevante vergunningen en ruimtelijke ontwikkelingen in de buurt. Inmiddels verwerkt het platform veel meer soorten informatie. Iedere bron heeft zijn eigen formaat, ritme, kwaliteit en geografische logica. De engineering zit vooral in alles wat er moet gebeuren voordat je data kunt tonen.

App-interface met demogegevens · Vergroot video

Case in het kort

Product

Sinds 2012 in ontwikkeling

Databronnen

Van overheids-XML tot live OV-feeds

Matching

Geografisch en inhoudelijk per locatie

Output

Apps, dashboard, website, push en e-mail

Waar zit de complexiteit?

De gebruiker wil maar één ding weten: wat gebeurt er in mijn omgeving dat voor mij relevant is? Achter die eenvoudige vraag zit een dataplatform waarin informatie uit verschillende organisaties, protocollen en formaten bij elkaar moet komen.

Bekijk de aanpak
Mediavoorbeeld

Iedere bron werkt anders

Officiële publicaties komen uit mutation-event XML en metadata, wegwerkzaamheden uit een gzipped DATEX-feed, OV-verstoringen via een continu ZeroMQ pub/sub-kanaal, weerswaarschuwingen via KNMI open data en lokaal nieuws via RSS, Atom of HTML. Eén generieke importer bestaat dus niet.

Brondata zegt nog niet voor wie iets relevant is

Een vergunning, verkeersmaatregel of waarschuwing kan landelijk beschikbaar zijn, maar een gebruiker wil alleen informatie voor zijn eigen huis, buurt, route of beheerd object. Daarvoor moet de data betrouwbare geografische informatie krijgen en vervolgens tegen locaties en gebieden worden gematcht.

Dezelfde data moet op meerdere plekken werken

De genormaliseerde informatie wordt gebruikt door de mobiele apps, Mijn OmgevingsAlert, OmgevingsAlert Pro, de publieke website en OverUwBuurt. Daarnaast stuurt dezelfde backend pushnotificaties, e-maildigests en andere productflows aan.

Hoe hebben we het aangepakt?

  1. 01

    Iedere bron betrouwbaar binnenhalen

    We bouwden per bron de passende integratie: geplande imports, API-koppelingen, XML-verwerking, RSS en HTML-imports en processen die continu naar live datastromen luisteren. Importwerk draait asynchroon zodat grote of trage bronnen de rest van het product niet blokkeren.

  2. 02

    Alles vertalen naar één gemeenschappelijk model

    Bronrecords houden hun eigen specifieke informatie, maar worden daarna geïndexeerd naar een gemeenschappelijk Feature-model. Daardoor hoeven apps en andere afnemers niet te begrijpen hoe een KNMI-waarschuwing, bekendmaking of OV-bericht oorspronkelijk is aangeleverd.

  3. 03

    Geografie als onderdeel van de kern

    Met PostgreSQL en PostGIS koppelen we punten, gebieden en andere geometrie aan de locaties die gebruikers volgen. Assets kunnen bijvoorbeeld adressen, punten, polygonen of geïmporteerde KML-gebieden zijn.

  4. 04

    Pas daarna bepalen wat relevant is

    Na de geografische selectie passen we filters toe op onder andere categorie, afstand, woorden die moeten voorkomen en woorden die juist uitgesloten moeten worden. Alleen relevante combinaties worden aan de inbox van een gebruiker gekoppeld.

Wat hebben we gebouwd?

De kern is een dataplatform dat zeer verschillende bronnen terugbrengt tot één bruikbare stroom van omgevingsinformatie. Daarboven zitten matching, filtering, notificaties en verschillende productinterfaces.

App-interface met demogegevens · Vergroot afbeeldingApp-interface met demogegevens

Een brede importlaag

Het platform verwerkt onder andere officiële publicaties, ruimtelijke plannen, politieberichten, KNMI-weerswaarschuwingen, NDW-wegwerkzaamheden, NDOV-verstoringen, lokaal nieuws, aardbevingen en eigen berichten van gemeenten.

Eén genormaliseerde Feature-pipeline

Iedere bron wordt vertaald naar gedeelde velden zoals categorie, publicatiedatum, geometrie, broninformatie en de onderdelen die nodig zijn om het bericht in de verschillende producten te tonen. Nieuwe brontypen hoeven daardoor niet opnieuw door alle clients apart te worden geïmplementeerd.

Een geografische matching-engine

Nieuwe data wordt gekoppeld aan relevante locaties en objecten. Voor consumenten kan dat een punt met een straal zijn; professionele gebruikers kunnen ook grotere gebieden of eigen geometrie bewaken. Matching voor grotere aantallen assets wordt in batches verwerkt om de achtergrondqueues beheersbaar te houden.

Wat levert het op?

Eén product bovenop totaal verschillende databronnen

Voor de gebruiker voelt een vergunning, een wegafsluiting of een weerswaarschuwing als hetzelfde soort productervaring, terwijl de onderliggende bronnen technisch nauwelijks op elkaar lijken.

Van landelijke data naar persoonlijke relevantie

De backend vertaalt grote stromen algemene informatie naar een veel kleinere selectie per locatie. Gebruikers hoeven dus niet zelf overheidssites, nieuwsfeeds en verkeersbronnen af te zoeken.

Een fundament waarop we kunnen blijven uitbreiden

Nieuwe categorieën kunnen dezelfde import-, normalisatie-, matching- en notificatie-infrastructuur gebruiken. Op die basis hebben we later ook AI-filters toegevoegd die voor bepaalde workflows inhoudelijk kunnen beoordelen of een melding relevant is.

De complexiteit zit onder de motorkap

OmgevingsAlert laat goed zien waarom data-engineering meer is dan een API uitlezen en records opslaan. De waarde ontstaat pas wanneer onbetrouwbare, veranderende en ongelijksoortige input veilig door een complete productieketen kan bewegen.

Bekijk cases
App-interface met demogegevens · Vergroot afbeeldingApp-interface met demogegevens

Batch, realtime en periodiek naast elkaar

De ene bron wordt dagelijks gecontroleerd, politiegegevens iedere tien minuten en OV-berichten komen via een permanent luisterend pub/sub-proces binnen. De backend moet al die vormen naast elkaar betrouwbaar kunnen verwerken.

PostGIS bepaalt wat waar relevant is

Features en assets bevatten echte geometrie. Matching gebruikt ruimtelijke berekeningen, afstandsregels en gebiedsrelaties in plaats van alleen tekstuele plaatsnamen of postcodes.

De pipeline eindigt niet bij opslag

Na import volgen normalisatie, matching, filtering, inboxstatus, toegangsregels en notificatie. Push kan direct of gebundeld worden verstuurd en Pro-gebruikers kunnen relevante meldingen via e-maildigest ontvangen.

Gerelateerde AI-vraagstukken

Passend aanbod

Build & Integrate

We bouwen de technische laag tussen jullie databronnen en het product dat ermee moet werken: imports, API-koppelingen, normalisatie, processing, matching en betrouwbare integraties.

Bekijk aanbod

Vaste prijs na scope

Resultaat
Een productieklare datastroom geïntegreerd in jullie software
Doorlooptijd
Afhankelijk van scope
Volgende stap
Eerst brengen we bronnen, volumes, verwerking en gewenste output in kaart