Officiële naam: OGC API: Features. Maar iedereen noemt deze standaard momenteel nog “WFS 3”. Het is de opvolger van de OGC standaard Web Feature Service 2.0, die onder andere als INSPIRE Download service wordt ingezet en in Nederland op de Pas-toe-of-leg-uit lijst van open standaarden staat. WFS 3 is, in tegenstelling tot eerdere versies, gebaseerd op gangbare Web architectuur: het is een REST API, beschreven in een OpenApi Specification (OAS). Eén van de doelen is dat een ontwikkelaar hem kan gebruiken zonder de standaard te hoeven kennen. Gewoon door zijn of haar neus te volgen eigenlijk, en doordat de API net zoals talloze andere API’s in elkaar zit. Ook opvallend is dat een WFS 3 API de geodata op zo’n manier publiceert, dat populaire zoekmachines de inhoud kunnen indexeren.
Werkweek
Geonovum organiseerde in de eerste week van juni 2019 samen met PDOK een “WFS 3 werkweek”: een week waarin ontwikkelaars samen aan de slag konden met WFS 3. Op maandagochtend startten we met een webinar die bestond uit een stoomcursus WFS 3.0 en een toelichting over de beschikbare tooling en ondersteuning tijdens de werkweek. Daarna kon iedereen die dat wilde (op afstand) aan de slag met bijvoorbeeld een eigen WFS 3.0 server- of client implementatie. Bij Geonovum zat de hele week een groepje experts, waaronder Thijs Brentjens en Wouter Visscher, aan hun eigen WFS 3 implementaties te werken en, via Github en Gitter, deelnemers te helpen waar nodig. Op donderdag 6 juni presenteerden de deelnemers de opgedane kennis en ervaringen in een open bijeenkomst in het Beatrixtheater in Utrecht.
Resultaten
Van de lijst met mogelijke onderzoeksvragen waren de eerste twee snel afgetikt: op maandag aan het einde van de dag waren er al drie WFS 3 servers met data beschikbaar en één client. Conclusie: een WFS 3 server opzetten is niet zo moeilijk en ermee communiceren vanuit een client evenmin. Later in de week zou blijken dat het ook van achter een firewall te doen is om een WFS 3 server in de lucht te brengen.
De PDOK ontwikkelaars richtten zich op performance en : zij serveerden BGT data vanuit GeoPackage bestanden en deden dat zowel in het wereldwijde coördinaatstelsel WGS’84 als in het op Nederland toegesneden Rijksdriehoeksstelsel. Vooral dat laatste leverde nog wel wat voer voor discussie op, ook omdat dit onderdeel niet in de ‘kern’ van de WFS 3 standaard zit, maar pas later wordt opgepakt door OGC. Hoe vraagt een client om een specifiek coördinaatstelsel? Wat is de default? En hoe geef je in een GeoJSON bestand aan dat het coördinaatstelsel niet het eigenlijk voorgeschreven WGS’84 is, maar iets anders? Niet alleen GeoJSON, maar ook WFS 3 gaat in de kern uit van dit coördinaatstelsel, wat voor Europese overheidsinstellingen met geodata wel even wennen is. Zij hebben immers hun data in een voor hun deel van de wereld veel geschikter (lees: nauwkeuriger) coördinaatstelsel beschikbaar. Maar, zoals uitgelegd in de Spatial Data on the Web Best Practices, is dit voor de meeste use cases op het web een overbodige luxe en bovendien verwarrend voor ontwikkelaars die niet dagelijks met geodata werken.
De belangrijkste resultaten op een rijtje:
- 4 WFS 3.0 servers met Nederlandse test data in WGS 84 en RD.
- 2 WFS 3.0 clients (GeoNetwork, ogc-api-features-testclient).
- 4 open source tools zijn uitgebreid: PDOK wfs-3.0 server, pygeoapi, GeoHealthCheck, en de ogc-api-features-testclient. De ervaringen met deze tools zijn positief.
- Datasets die met behulp van pygeoapi geserveerd werden en verrijkt waren met schema.org markup, zijn geïndexeerd door Google en te vinden via Google Dataset Search.
Voor meer over de resultaten, zie de beschrijving van de uitgevoerd experimenten op Github.
Lessons learned
Om het werken met WFS 3 vanuit een client nog eenvoudiger te maken, is het aan te raden om toch wat meer documentatie te bieden naast de standaard OAS beschrijving van de API, zoals voorbeelden en een overzicht van de beschikbare data. Daarnaast kun je overwegen om handige extra operaties aan te bieden om bijvoorbeeld een dataset in GeoPackage formaat te downloaden of om alle geo-objecten op te vragen die zich vlakbij de gebruiker bevinden.
WFS 3: goedgekeurd!
Na deze positieve ervaringen tijdens de werkweek kon Geonovum drie weken later tijdens de OGC meeting een volmondig “Ja” laten horen toen er door de leden van de Technical Committee gestemd werd over het al dan niet goedkeuren van WFS 3, oftewel “OGC API: Features” als OGC standaard. Een heel mooi resultaat, waar we als Geonovum met onder andere het Geo4web testbed en door onze deelname aan de W3C/OGC Spatial Data on the Web werkgroep jarenlang naartoe hebben gewerkt!
OGC gaat nu werken aan WFS 3 extensies zoals die voor het omgaan met data in verschillende coördinaatstelsels. Tegelijkertijd zijn andere OGC standaarden, zoals WMS, WMTS en CSW, dezelfde weg als WFS ingeslagen. Nieuwe, webvriendelijke versies van deze standaarden zullen de komende jaren gaan verschijnen. Ook aan JSON encodings voor veel bij OGC gestandaardiseerde dataformaten wordt gewerkt. Mooie tijden!