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.
Case in het kort
Sinds 2012 in ontwikkeling
Van overheids-XML tot live OV-feeds
Geografisch en inhoudelijk per locatie
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 aanpakIedere 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?
- 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.
- 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.
- 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.
- 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.
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 casesBatch, 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
Eigen documenten, data en kennis bruikbaar maken voor AI
De waardevolle informatie is er al. Nu moet AI er betrouwbaar, veilig en praktisch mee kunnen werken.
Bekijk vraagstukAI toevoegen aan bestaande software, app of SaaS
Het product bestaat al. Nu wil je AI-functionaliteit toevoegen zonder de bestaande architectuur, gebruikerservaring en betrouwbaarheid uit het oog te verliezen.
Bekijk vraagstukBuild & 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 aanbodVaste 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