Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Publishing INSPIRE datasets in GeoServer made e...

Publishing INSPIRE datasets in GeoServer made easy with Smart Data Loader and Features Templating - FOSS4G EU 2025

This presentation will cover the support GeoServer provides to publish rich data models (complex features with nested properties and multiple-cardinality relationships), through OGC services and OGC API - Features, focusing on the recent Smart Data Loader and Features Templating extensions, covering in detail ongoing and planned work on GeoServer.

As far as the INSPIRE scenario is concerned, GeoServer has extensive support for implementing view and download services thanks to its core capabilities but also to a number of free and open-source extensions; undoubtedly the most well-known (and dreaded) extension is App-Schema, which can be used to publish complex data models and implement sophisticated download services for vector data.

We will also provide an overview of how those extensions are serving as a foundation for new approaches to publishing rich data models: publishing them directly from MongoDB, embracing the NoSQL nature of it, and supporting new output formats like JSON-LD which allows us to embed well-known semantics in our data.

Real-world use cases from the organizations that have selected GeoServer and GeoSolutions to support their use cases will be introduced to provide the attendees with references and lessons learned that could put them on the right path when adopting GeoServer.

Avatar for Simone Giannecchini

Simone Giannecchini PRO

July 22, 2025
Tweet

More Decks by Simone Giannecchini

Other Decks in Technology

Transcript

  1. Nuno Oliveira Andrea Aime GeoSolutions Publishing INSPIRE datasets in GeoServer

    made easy with Smart Data Loader and Features Templating
  2. GeoSolutions Enterprise Support Services Deployment Subscription Professional Training Customized Solutions

    GeoNode • Offices in Italy & US, Global Clients/Team • 30+ collaborators, 25+ Engineers • Our products • Our Offer
  3. Affiliations We strongly support Open Source, it is in our

    core We participate in OGC testbeds and get funded to advance new open standards We support standards critical to GEOINT
  4. INSPIRE support in GeoServer • INSPIRE Compliance we have (capabilities)

    full internationalization! • Available specific INSPIRE extension • Free and Open Source • New GUI Sections on services • Inject new elements in GetCapabilities • Download Services • OGC WFS 2.0 and GML 3.2.1 • OGC WCS 2.0.1 Enhancements in progress • OGC API - Features GeoJSON (and GML) • View Services • OGC WMS 1.1.1, 1.3 • OGC WMTS 1.0.0 • Transformation Service • OGC WPS 1.0.0, gs:Reproject process
  5. GeoServer App-Schema • Official extension, part of releases • PostgreSQL,

    Oracle, Solr and MongoDB • Support for complex features: 1 2 3 4 5
  6. GeoServer App-Schema • No special schema requirement on the data

    sources! App-Schema produces the expected GML output by transforming data on the fly!
  7. HALE App-Schema plugin • Available at (compatible with HALE 3.5.x):

    • http://hale-geoserver.geo-solutions.it/index.html • Open Source visual editor for schema mappings! • Main features: • Import source schema(s) and data • Shapefile, databases, XSD / XML, etc… • Import target schema(s) • XSD, databases, INSPIRE schemas • Transformations are: • Graphically designed • Interactively executed • Interactively viewed
  8. What are the moving parts? Data Model Data Storage Relational

    database … and more Complex UML model or equivalent XML schema
  9. Welcome to app-schema Data Model Data Storage Data Mapping Querying

    Building Publishing The app-schema plugin does all this, maps the data storage onto complex features, and eventually GML, to match a given target XML schema
  10. GML schemas lead the dance! Currently the target GML schema

    is the mandatory starting point Just too hard for many, which reduces the uptake! But not all data is a flat table what do we do?
  11. Smart data loader jumps in! Data Storage Data Mapping Querying

    Building Publishing Smart Data Loader Smart data loader maps flat tables to an automatically generated complex structure. Valid complex output. Separation of concerns!
  12. Features templating jumps in! Data Modeling Data Storage Data Mapping

    Querying Building Publishing Smart Data Loader Features templating Features templating allow to map an initial complex model to a desired target structure with a template
  13. Flow of data overview Domain Model OGC Services and OGC

    APIs GML Output Format GeoJSON Output Format JSON-LD Output Format Data Smart Data Loader Memory Features Stream Features Templating HTML Output Format
  14. Smart data loader • Community module • Will Automatically: ◦

    Walk the Data Source and produce a Domain Model. ◦ Generate an internal target GML Schema and an internal App-Schema Mapping. ◦ Build an in-memory Stream of Complex Features. • Generates a valid complex GML and JSON output, which might already be enough for you!
  15. Smart data loader • Choose the “root entity”... the table

    that is the center of your model • Automatic navigation of foreign keys drives the generation of tree model • Choose which parts to include • Automatically generate app-schema mapping
  16. Smart data loader With GeoServer smart data loader 😊, complex

    features are no big deal — publish them as easily as simple ones!
  17. Features templating • Community module • What You See Is

    What You Get (WYSIWYG) approach: ◦ Define how your features should appear with an example with interpolations. ◦ Query the dataset using the output format structure thanks to backwards mapping capability. • Integrated with both OGC API - Features, WFS and WMS. • Efficient Acts as a mapping over an in-memory stream of features!
  18. Stations GeoJSON template 1. { 2. "type":"FeatureCollection", 3. "features":[ 4.

    {"$source":"stations"}, 5. { 6. "Identifier":"${id}", 7. "geometry":"${position}", 8. "properties":{ 9. "Name":"${common_name}", 10. "Code":"$${strConcat('STATION-', property('code'))}", 11. "Location":"$${toWKT(property('position'))}", 12. "Observations":[ 13. {"$source":"observations"}, 14. { 15. "Timestamp":"${time}", 16. "Value":"$${strConcat(strConcat(property('value'), 17. 'property('parameters.param_unit'))}", 18. "Type":"${parameters.param_name}" 19. } 20. …
  19. Stations GeoJSON template 1. { 2. "type":"FeatureCollection", 3. "features":[ 4.

    {"$source":"stations"}, 5. { 6. "Identifier":"${id}", 7. "geometry":"${position}", 8. "properties":{ 9. "Name":"${common_name}", 10. "Code":"$${strConcat('STATION-', property('code'))}", 11. "Location":"$${toWKT(property('position'))}", 12. "Observations":[ 13. {"$source":"observations"}, 14. { 15. "Timestamp":"${time}", 16. "Value":"$${strConcat( 17. strConcat(property('value'), 18. 'property('parameters.param_unit'))}", 19. "Type":"${parameters.param_name}" 20. } 21. ] 22. } 23. } 24. ] 25. } 1. { 2. "type":"FeatureCollection", 3. "features":[ 4. { 5. "Identifier":7, 6. "geometry":{ 7. "type":"Point", 8. "coordinates":[11.34, 44.5] 9. }, 10. "properties":{ 11. "Name":"Bologna", 12. "Code":"STATION-BOL", 13. "Location":"POINT (11.34 44.5)", 14. "Observations":[ 15. { 16. "Timestamp":"2016/28...", 17. "Value":"35.0 C", 18. "Type":"temperature" 19. }, 20. { 21. "Timestamp":"2016/29...", 22. "Value":"80.0 Km/h", 23. "Type":"wind speed" 24. } 25. ] 26. } 27. } 28. (...)
  20. BRGM - Boreholes use case • Demo with almost 1

    million boreholes: • Available through: • WFS 2.0.0 • OGC API – Features • Simple Features (SF-0) and Complex Features (SF-1)!
  21. BRGM - Boreholes use case • Filtering using CQL is

    supported: • http://.../geoserver/ogc/features/collections/eposb:Borehole/items?f=applica tion/ld+json&limit=50&filter=features.gsmlp:boreholeLength_m.om:amount> 83&filter-lang=cql-text Filtering using the JSON-LD properties!
  22. BRGM - BDLISA QGIS Integration • BDLISA, the French hydrogeological

    database • QGIS needs a valid schema for loading the features: Schemas can be defined and then linked to an operation per layer!
  23. NPRA – DATEX II use case • Complex GeoJSON served

    using WMS and WFS! • Norwegian Public Road Administration (NPRA). • DATEX II (3.0), traffic related data: We are using GeoServer MongoDB Schemaless!