
The Soilwise GeoPackage is the relational (SQLite‑based) container adopted by the SoilWise project (Horizon Europe – Mission Soil) to enable exchange, storage, and GIS‑native use of soil data, with the explicit goal of making them FAIR and reusable across European policies, research, and land‑management workflows.12 SoilWise provides an integrated, actionable entry point to scattered soil data and knowledge, recognising existing workflows and repositories and connecting to them through a modular, scalable architecture designed to last beyond the project horizon and co‑created with stakeholders.12
GeoPackage is an OGC open, portable, self‑contained standard for geospatial data. Being an SQLite container, it allows direct use of vector features, rasters/tiles and attribute data in a single file, without intermediate format translations. This makes it ideal for GIS environments and for constrained connectivity scenarios.34
Within the INSPIRE ecosystem, an endorsed Good Practice describes how to design and publish INSPIRE datasets encoded as GeoPackage, while preserving legal and technical compliance with the Implementing Rules (with technical conformity demonstrable through transformation to the default encoding, GML). The Good Practice promotes logical models optimised for GIS usability, with explicit mapping rules from the INSPIRE conceptual model.56
The Soilwise database builds upon—and updates—the work carried out around INSPIRE, including the EJP SOIL GeoPackage template for the Soil (SO) theme. That template focused on semantic harmonisation, code‑list management, and repeatable transformations, and is a relevant baseline for Soilwise’s relational modelling approach.7 This direction aligns with community guidance on publishing INSPIRE data as a relational database (GeoPackage as a specialisation of SQLite), including recipes and patterns for harmonisation and publication.8
In line with the INSPIRE Good Practice, each GeoPackage logical schema should be accompanied by:
This approach ensures traceable compliance, supports reuse across thematic communities, and allows use‑case‑specific logical models while preserving a coherent methodological and semantic framework.5
Within SoilWise, an implementation of OGC SensorThings API 2.0 (STA2) is used to expose observations and metadata as interoperable time series via HTTP and MQTT, consistent with O&M / ISO 19156:2023. The STA2 draft (OGC document 23‑019) updates the data model and bindings (e.g., OData 4.01 alignment), strengthening the API’s role as a standards‑based “data‑in‑motion” complement to the GeoPackage’s “data‑at‑rest” layer.910
The growing adoption of SensorThings for observational data (well beyond narrow IoT use) is documented by OGC/WMO community materials, which highlight alignment with the renewed OMS/ISO 19156:2023 standard and integration with GIS tools.1112
The Soilwise GeoPackage is natively supported by QGIS, enabling editing, styling, and map production with no format conversion. To improve data‑entry quality and speed, we recommend configuring custom attribute forms (widgets, value map/relation, constraints and expressions) and adopting a design of tabs and groups aligned with project code lists and validation processes.1314
Tip
Click the image to see it full‑size for better viewing.
This GeoPackage implements a relational schema that is a faithful transposition of the INSPIRE Soil conceptual model (UML) and its classes/associations, as described in the INSPIRE Soil Technical Guidelines and Feature Catalogue. It also integrates the OGC SensorThings API 2.0 (STA2) model for the management and exposure of observations (time‑series and observation metadata).5910
Note
The Soil Technical Guidelines provide the authoritative description of the Soil theme, including the Feature Catalogue and the UML‑based relationships among elements (which underpin any encoding, such as GML or GeoPackage).[^5]
The translation into GeoPackage follows widely adopted relational design rules, consistent with INSPIRE/OGC guidance:
UML Classes → Tables
Each INSPIRE Feature Type (e.g., SoilSite, SoilPlot, SoilProfile, ProfileElement) becomes a table; attributes map to typed columns; spatial attributes are stored in geometry columns as per GeoPackage.34515
UML Associations → Foreign Keys
UML cardinalities are enforced through foreign keys and (where required) link tables for 1:N / N:M relationships, preserving the Soil chain Site → Plot → Profile → ProfileElement defined at the conceptual level.515
Code lists → Reference tables
Controlled vocabularies (INSPIRE and other allowed authorities) are materialized as code‑list tables, typically keeping URI / notation / label / authority / version to ensure semantic interoperability.515
Observational component (STA2)
STA2 entities Thing / Datastream / Observation / Sensor / ObservedProperty are mapped to dedicated tables. Observation rows reference their Datastream, keep temporal attributes (phenomenonTime, resultTime), and a result (numeric or textual) according to STA2. This design makes the observational layer complementary to the core INSPIRE Soil features, and ready for standards‑based exposure via the STA2 API.910
Note
GeoPackage is an OGC open, portable and self‑contained standard (an SQLite container) that supports direct use of vector/raster/attribute data in a single file, without intermediate format translations—ideal for GIS tools and constrained‑connectivity scenarios.[^3][^4]
The INSPIRE Good Practice recognises GeoPackage as additional/alternative encoding to the default, with conformity demonstrable via transformation to GML.[^5]
Note
The short summaries below are aligned with the Soil Feature Catalogue; full definitions, attributes, multiplicities and constraints are given in the official Technical Guidelines.[^5]
SoilSite — Context/area of investigation: an area (often polygonal) providing the context within which one or more specific investigations are carried out; it acts as a logical container to combine or compare investigations performed at nearby points/times.5
SoilPlot — Investigation point/portion: a point or area where a specific investigation is performed (e.g., pit, borehole, sample location); it is contained in a SoilSite and is the operational focus of many descriptions and measurements.5
SoilProfile — Vertical cross‑section: the section from ground surface down to material not modified by pedogenesis; it is the basis for describing horizons or layers (modelled as ProfileElement).5
ProfileElement — Horizon or layer: either a SoilHorizon (a pedogenetic horizon homogeneous by physical/chemical/biological properties) or a SoilLayer (a depth‑defined layer, not necessarily equal to a horizon).5
SoilBody — Mapping unit: an association of co‑occurring soils in an area (conceptually similar to a Soil Mapping Unit), typically linked to one or more representative SoilProfile(s).5
Data Loading & Modelling Guide document is the practical guide for populating (loading) the GeoPackage.
It explains, clearly and in sequence:
Important
In short: if you need to populate or update the GeoPackage, start here.
A practical guide to using QGIS to read from and write to the database (GeoPackage), supported by custom Forms that simplify data entry and updates.
The Forms are designed to guide users in filling fields correctly:
Warning
QGIS version 3.44.0 – Solothurn or higher is required.
This chapter provides the detailed description of all database tables.
For each table, you will find its purpose, key fields, any geometry, the most relevant relationships, and usage notes.
This document helps you understand how tables are connected.
It highlights the most relevant links and suggests when tables should be used together—useful to navigate between core entities and supporting tables.
This document explains how the system manages the consequences of updates and deletions across related tables.
It clarifies what happens to related records and how to keep data consistent when modifying “parent” or “child” data.
SoilWise – project website (Horizon Europe – Mission Soil). ↩ ↩2
INSPIRE Knowledge Base – GeoPackage encoding of INSPIRE datasets (Good Practice). ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14
INSPIRE‑MIF – gp‑geopackage‑encodings (Good Practice repository). ↩ ↩2
Soil data guidance – INSPIRE Soil in a relational database (recipe & workflow). ↩
OGC Publications – SensorThings API (Part 1/1.1 Sensing, Part 2 Tasking Core, STAplus). ↩ ↩2 ↩3 ↩4
QField Documentation – Simple attribute form configuration. ↩