From cdd9969c2cd7891aaa5c89450f25a25636748e97 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Wed, 19 Feb 2025 21:24:50 +0100 Subject: [PATCH 1/2] Updated to recent discussions --- CHANGELOG.md | 11 +++++++ README.md | 68 ++++++++++++++++++++++++++++++----------- json-schema/schema.json | 12 ++++++-- 3 files changed, 72 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d873114..dac021a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.0.0] +### Added + +- `osc:experiment` for products +- `osc:workflows` for projects +- Definitions for workflows and experiments +- Describe relation to OGC API - Records + +### Changed + +- Clarified which fields apply for which type + ### Removed - `osc:name` diff --git a/README.md b/README.md index 0353e95..b0ab63e 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,14 @@ An physical variable observed by a science product, such as "Wind stress" or "Ge A set of satellite missions which provided input for the product. +### Workflow + +A definition of processing steps defined in a project that can be executed in an experiment to generate a product. + +### Experiment + +A specific execution of a workflow that generated a product. + ## Fields The fields in the table below can be used in these parts of STAC documents: @@ -64,29 +72,39 @@ The fields in the table below can be used in these parts of STAC documents: be added to the summaries as the same fields already exist in the collection as top-level properties anyway. As such the extension does not validate Collection summaries. -| Field Name | Type | Description | -| ------------- | --------- | ----------- | -| osc:type | string | **REQUIRED.** The underlying type of this resource. Either `"project"` or `"product"`. This field then defines what other fields are allowed and required. | -| osc:status | string | **REQUIRED.** This field details whether the project or product is `planned`, `ongoing`, or has been `completed`. | -| osc:project | string | **REQUIRED (for products).** The name of the project the product is associated with. | -| osc:region | string | The name of the geographic region the project or product is dealing with if any, e.g `"Arctic"` or `"Agulhas"`. | -| osc:variables | \[string] | The names of the variables the product is observing, e.g `"Wind stress"` or `"Geomagnetic field"`. | -| osc:missions | \[string] | The names of the satellite missions which provided input for this project or product. | +### Projects and Products -Fields that apply when the `osc:type` is set to `product`: +| Field Name | Type | Description | +| -------------- | --------- | ----------- | +| osc:type | string | **REQUIRED.** The underlying type of this resource. Either `"project"` or `"product"`. This field then defines what other fields are allowed and required. | +| osc:status | string | **REQUIRED.** This field details whether the project or product is `planned`, `ongoing`, or has been `completed`. | + +Additionally, the following fields from other extensions apply: -- osc:status - **REQUIRED** -- osc:project - **REQUIRED** -- osc:region -- osc:variables -- osc:missions - [themes](#themes) +### Products only + +Fields that apply when the `osc:type` is set to `product`: + +| Field Name | Type | Description | +| -------------- | --------- | ----------- | +| osc:project | string | **REQUIRED.** The name of the project the product is associated with. | +| osc:region | string | The name of the geographic region the project or product is dealing with if any, e.g `"Arctic"` or `"Agulhas"`. | +| osc:variables | \[string] | The names of the variables the product is observing, e.g `"Wind stress"` or `"Geomagnetic field"`. | +| osc:missions | \[string] | The names of the satellite missions which provided input for this product. | +| osc:experiment | string | The name of the experiment that created the product. | + +### Projects only + Fields that apply when the `osc:type` is set to `project`: -- osc:status - **REQUIRED** -- osc:region -- [themes](#themes) +| Field Name | Type | Description | +| -------------- | --------- | ----------- | +| osc:workflows | \[string] | The names of the workflows created by the project. | + +Additionally, the following fields from other extensions apply: + - [contacts](#contacts) ### Contacts @@ -113,6 +131,22 @@ The following fields should be implemented from the [Themes extension](https://g The themes field can contain concepts from different controlled vocabularies (via `scheme`). By default this extension only asks to add concepts for the scheme `https://github.com/stac-extensions/osc#theme`. +## OGC API - Records + +Although this extension is a STAC extension, similar fields with the same `osc:` prefix +are also used in OGC API - Records that describe workflows and experiments. + +The following fields occur in workflows: + +- `osc:project` (string, required) +- `osc:experiments` (\[string]) + +The following fields occur in experiments: + +- `osc:project` (string, required) +- `osc:workflow` (string, required) +- `osc:product` (string, required) + ## Contributing All contributions are subject to the diff --git a/json-schema/schema.json b/json-schema/schema.json index 33bc30f..80e8af9 100644 --- a/json-schema/schema.json +++ b/json-schema/schema.json @@ -78,8 +78,12 @@ "osc:status": { "$ref": "#/definitions/status" }, - "osc:region": { - "$ref": "#/definitions/region" + "osc:workflows": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } } }, "patternProperties": { @@ -113,6 +117,10 @@ }, "osc:missions": { "$ref": "#/definitions/missions" + }, + "osc:experiment": { + "type": "string", + "minLength": 1 } }, "patternProperties": { From 401c985f44dd9e6138d1ab4dc363d6ec8ac3a594 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Wed, 19 Feb 2025 22:17:51 +0100 Subject: [PATCH 2/2] Add relation types, update changelog --- CHANGELOG.md | 2 ++ README.md | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dac021a..109851d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,10 +14,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `osc:workflows` for projects - Definitions for workflows and experiments - Describe relation to OGC API - Records +- Describe applicable relation types ### Changed - Clarified which fields apply for which type + - `osc:region` is not used for projects any longer ### Removed diff --git a/README.md b/README.md index b0ab63e..c95413a 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,17 @@ The following fields should be implemented from the [Themes extension](https://g The themes field can contain concepts from different controlled vocabularies (via `scheme`). By default this extension only asks to add concepts for the scheme `https://github.com/stac-extensions/osc#theme`. +## Relation types + +The following types should be used as applicable `rel` types in the +[Link Object](https://github.com/radiantearth/stac-spec/tree/master/item-spec/item-spec.md#link-object). + +| Type | Description | +| ----------- | ------------------------------------- | +| related | Links to resources that are identified in the osc: fields, e.g. a link to the project as identified in the `osc:project` field. | +| environment | Links to a file that identifies the execution environment of an experiment (applicable mostly to OGC API - Records) | +| input | Links to a file that identifies any input parameters of an experiment (applicable mostly to OGC API - Records) | + ## OGC API - Records Although this extension is a STAC extension, similar fields with the same `osc:` prefix