Approaches to capture metadata at column level for tabular data
Different approaches exist to describe metadata at column level for tabular soil observation data. Some are embedded in existing metadata practices. The column metadata can be used to:
- improve discovery of datasets, by filtering on observed properties or procedures
- validate if a CSV is valid
- provide overview statistics of a tabular dataset (min-max-avg)
- ingest data to a common model
A common factor in these approaches is that metadata (which property, which unit of measure, which procedure) is captured in a seperate metadata file which is connected to the data file. Notice that this approach requires that the procedure and unit are constant in the column. Data from different campaigns with different procedures or units can not be combined in a single file.
Notice that all these initiatives benefit from established vocabularies for soil properties and observation procedures, such as the vocabularies provided by SoilWise
Approaches
Soilwise CSV metadata
This is an approach suggested by SoilWise and not described elsewhere. Our suggestion is to create a second CSV file, {name}-metadata.csv, which contains metadata for each column in the data table(s). It is a tailored CSV format, every row on the table describes a column of a dataset. Notice that dataset metadata (title, abstract, …) is stored in a separate file. This approach is appreciated by scientists because they can use a single tool.
| table | column | title | description | datatype | information-role | property | unit | procedure |
|---|---|---|---|---|---|---|---|---|
| loc.csv | ID | Identifier | Identification of the location | string | identification | identifier | ||
| loc.csv | Label | Label | A title of the location | string | attribute | name | ||
| obs.csv | Profile | Profile | Identifier of the sampling location, references loc.csv | loc.csv#ID | foreign key | identifier | ||
| obs.csv | N | Nitrogen | Measured Nitrogen in soil solution | numeric | observation | Nitrogen | mole/kg | TotalN_dc |
CSV-W
CSV on the web is an initiative of W3C. A rich method to annotate CSV’s, if properly set up, any tooling can generate full SOSA/SSN or Schema.org compatible RDF.
In SoilWise we’re trying out various aspects of CSV-W:
- A tool in Excel to annotate an existing sheet
- A LLM based variation to the annotation tool
- A tool and online api to convert CSVW annotated data to RDF, geopackage or INSPIRE GML, based on CSVWLIB
- A validator tool to test if the generated RDF is valid for the SOSA ontology
Below is a diagram on how data can be converted from CSV to RDF and geopackage
flowchart LR
A[CSV] -->|Annotate| B(CSV-W)
B -->|Serialize| C(RDF)
D(SHACL) -->|Validate| C
C -->|ETL| E[GeoPackage]
A sample of a csv-w context (metadata) file
ISO19110 / ISO19115
ISO19110 Standard on Feature cataloguing is an approach to describe columns in a dataset. Typical properties captured on a feature-attribute are type, uniqueness, etc. This approach does not facilitate rich observation metadata, such as observed property and procedure.
An interesting approach to work with iso19110/19115 metadata is the MetadataControlFile format. It is a convention of the geopython community. A subset of iso19115 encoded in YAML. Attributes in content info are extended to capture unit and procedure. See sample
OKFN Datapackage
Frictionless data is an initiative of OKFN. Fields from the standard table-schema model could be extended to capture unit and procedure. See sample.
A specialisation of the table schema, focussed on observation data, is suggested by the camtrap extension.
YARRRML Matey
Matey is a friendly approach to work with rml.io, a modelling technique to model tabular data as RDF.
Ontologies for (Soil) observation data
SOSA/SSN
The Semantic Sensor Network Ontology (SOSA-SSN) is a combined standard of W3C and OGC to describe observation and sampling data. SOSA/SSN is the core of Glosis-ld, an ontology specifically for soil observation data.
schema.org
Schema.org is a generic ontology originally developed to enrich websites with structured information. Schema.org includes the observation concept, which captures aspects such as Variable Measured, Measurement Technique and Unit Code.
Data scenarios
A variety in data scenario’s can be identified, which are commonly used in sharing soil observation data.
Single table scenario
All observation data and sample identification are captured in a single table.
| ID | Label | X | Y | Profile | Upper | Lower | Date | N | P | K |
|---|---|---|---|---|---|---|---|---|---|---|
| uae438 | 10m from street | 2.35 | 50.35 | O | 0 | 10 | 2025-10-04 | 0.3 | 0.01 | 0.01 |
| fte218 | 30m bhind barn | 2.45 | 51.15 | A | 10 | 30 | 2025-10-04 | 0.1 | 0.01 | 0.01 |
Linked table scenario
Soil observation data in 2 or more related tables. Typical case is when sampling details (location, date, surveyor) are captured in 1 table, and the lab results are in captured in a linked table.
Sample locations
| ID | Label | X | Y | Date |
|---|---|---|---|---|
| uae438 | 10m from street | 2.35 | 50.35 | 2025-10-04 |
| fte218 | 30m bhind barn | 2.45 | 51.15 | 2025-10-04 |
Observation data
| Sample | Label | Upper | Lower | N | P | K |
|---|---|---|---|---|---|---|
| uae438 | O | 0 | 10 | 0.3 | 0.01 | 0.01 |
| uae438 | A | 10 | 30 | 0.1 | 0.01 | 0.01 |