The INSPIRE models are well described with definitions on all model elements. I assume the same is true for models that extend the INSPIRE model. I think it would be good if those definitions would be available in the GeoPackage files as well.
For features/tables, the definition should be put in gpkg_contents.description. For properties/columns, the Schema extension should be used, and the definition should be put in gpkg_data_columns.description. If enum constraints are used, the definition should be put in gpkg_data_column_constraints.description.
The schema extension provides a means to describe the columns of tables in a GeoPackage with more detail than can be captured by the SQL table definition directly. The information provided by this extension can be used by applications to, for instance, present data contained in a GeoPackage in a more user-friendly fashion or implement data validation logic.
So the use of this extension is not limited to the description of constraints (range, enums, ...). It can be a means to describe the data without necessarily having to refer the user to the data specification/data model to read all the definitions.
Reasons for the selected approach in END: Limited tool support in main GIS tools for schema extension in Q3/2020; visibility of schema information as a normal table currently best
Codelist information could be kept redundant (in the schema extension and in regular tables)
Information could be added once to the template (TODO TR: Check GPKG writer/schema definition)
Goal: Keep formal documentation of data model close to data; use schema extension and make sure it is implemented in tools
The INSPIRE models are well described with definitions on all model elements. I assume the same is true for models that extend the INSPIRE model. I think it would be good if those definitions would be available in the GeoPackage files as well.
For features/tables, the definition should be put in
gpkg_contents.description
. For properties/columns, the Schema extension should be used, and the definition should be put ingpkg_data_columns.description
. If enum constraints are used, the definition should be put ingpkg_data_column_constraints.description
.From the specification:
So the use of this extension is not limited to the description of constraints (range, enums, ...). It can be a means to describe the data without necessarily having to refer the user to the data specification/data model to read all the definitions.