diff --git a/CHANGELOG.md b/CHANGELOG.md index 870c9e2..7619074 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Relation type `processing-validation` +- Relation type `source_for` for forward provenance (inverse of `derived_from`) ### Changed diff --git a/README.md b/README.md index 9511f6c..a275ea6 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,12 @@ Note that `derived_from` can point back to different types of metadata, which ar - `text/html` → website - Any other media type (e.g. `application/xml`) → other metadata (e.g. XML) +For **forward provenance** (going from a source item to the items derived from it), the `source_for` relation type can be used. +It is the inverse of `derived_from`: a source item links forward to the items produced from it. +Note that maintaining `source_for` links requires updating the source item every time a new derived item is created, +which may not always be practical. An alternative for forward discovery is to search for derived items using +`derived_from` links that reference the source item (supported by STAC API implementations that index link targets). + ### Suggested Processing Levels The `processing:level` is the name that is commonly used to refer to that processing level properties. @@ -143,6 +149,7 @@ The following types should be used as applicable `rel` types in the | Type | Description | | --------------------- | --------------------------------------------------------------------------------- | | derived_from | URL to a STAC Item that was used as input data in the creation of this Item. | +| source_for | URL to a STAC Item that was derived from this Item (forward provenance, inverse of `derived_from`). | | processing-expression | A processing chain (or script) that describes how the data has been processed. | | processing-execution | URL to any resource representing the processing execution (e.g. OGC Process API). | | processing-software | URL to any resource that identifies the software and versions used for processing the data, e.g. a `Pipfile.lock` (Python) or `package-lock.json` (NodeJS). |