stac-extensions / themes

A knowledge organization system used to classify the resource (controlled vocabularies / keywords)
Apache License 2.0
4 stars 0 forks source link
keywords stac themes vocabularies

Themes Extension Specification

This document explains the Themes Extension to the SpatioTemporal Asset Catalog (STAC) specification. This extension is meant to support knowledge organization systems used to classify the resource (i.e. controlled vocabularies / keywords such as Geonames or Wikipedia). If you just need "uncontrolled" free-form keywords / tags, please use the keywords field instead. This extension is based on the field themes as defined in OGC API - Records.

Fields

The fields in the table below can be used in these parts of STAC documents:

Field Name Type Description
themes [Theme Object] REQUIRED. A knowledge organization system used to classify the STAC entity. Each element is a concept and their respective knowledge organization system / controlled vocabulary.

Theme Object

The Theme Object aims at defining a normalized list of concepts based on a knowledge organization system / controlled vocabulary (e.g. geonames).

Field Name Type Description
concepts [Concept Object] REQUIRED. One or more entity/concept identifers from this knowledge system.
scheme string REQUIRED. An identifier for the knowledge organization system used. It is recommended that the identifier is a resolvable URI.

Concept Object

Describes an individual concept from the knowledge system.

Field Name Type Description
id string REQUIRED. An identifier for the concept.
title string A human readable title for the concept.
description string A human readable description for the concept.
url string RECOMMENDED. A URI providing further description of the concept.

Contributing

All contributions are subject to the STAC Specification Code of Conduct. For contributions, please follow the STAC specification contributing guide Instructions for running tests are copied here for convenience.

Running tests

The same checks that run as checks on PR's are part of the repository and can be run locally to verify that changes are valid. To run tests locally, you'll need npm, which is a standard part of any node.js installation.

First you'll need to install everything with npm once. Just navigate to the root of this repository and on your command line run:

npm install

Then to check markdown formatting and test the examples against the JSON schema, you can run:

npm test

This will spit out the same texts that you see online, and you can then go and fix your markdown or examples.

If the tests reveal formatting problems with the examples, you can fix them with:

npm run format-examples