From cf90658759af69ac07bf112d8640ff1d4eefa7ec Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Tue, 28 Jul 2026 15:52:14 +0200 Subject: [PATCH 1/2] Add `has-version` and `is-version-of` relation types. Add DataCite mapping --- CHANGELOG.md | 1 + README.md | 28 +++++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f57d3d..b14d5ff 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 - Fields are also allowed for Links +- New relation types: `has-version` and `is-version-of` ### Fixed diff --git a/README.md b/README.md index c8b888c..105c209 100644 --- a/README.md +++ b/README.md @@ -45,15 +45,37 @@ of the particular data asset linked to in the Asset Object. The following types should be used as applicable `rel` types for the [Link Object](https://github.com/radiantearth/stac-spec/tree/master/item-spec/item-spec.md#link-object) -to reference the latest version, the predecessor version and successor versions. -These are all following [RFC 5829](https://tools.ietf.org/html/rfc5829). +to describe the relationships between the versions of a resource. +The relation types `latest-version`, `predecessor-version`, `successor-version`, and `version-history` +follow [RFC 5829](https://tools.ietf.org/html/rfc5829). +The relation types `has-version` and `is-version-of` are inspired by DataCite, +see the [mapping to DataCite](#mapping-to-datacite) below. | Type | Description | | ------------------- | ----------- | | latest-version | This link points to a STAC resource containing the latest (e.g., current) version. A maximum of one link can use this relation type per STAC resource. | | predecessor-version | One or multiple links can point to STAC resources that are predecessor versions in the version history. | | successor-version | One or multiple links can point to STAC resources that are successor versions in the version history. | -| version-history | This link points to a version history or changelog. This can be for example a Markdown file with the corresponding media type or a STAC Catalog or Collection. | +| version-history | This link points to a version history or changelog. This can be for example a Markdown file with the corresponding media type, or a STAC Catalog or Collection. | +| has-version | One or multiple links can point to resources that are versions of this resource. Typically used on an overarching entity (e.g., a canonical or version-independent resource) that groups versioned resources. | +| is-version-of | This link points to the overarching entity (e.g., a canonical or version-independent resource) of which this resource is a version. This is the reverse of `has-version`. | + +### Mapping to DataCite + +The following table maps the relation types of this extension to the corresponding DataCite +[relationType](https://datacite-metadata-schema.readthedocs.io/en/latest/appendices/appendix-1/relationType/) values. +The direction of the relations is the same: +the DataCite relationType applies to the resource that contains the link, +and the link target corresponds to the related resource in DataCite. + +| STAC relation type | DataCite relationType | +| ------------------- | --------------------- | +| latest-version | n/a | +| predecessor-version | `IsNewVersionOf` | +| successor-version | `IsPreviousVersionOf` | +| version-history | n/a | +| has-version | `HasVersion` | +| is-version-of | `IsVersionOf` | ## Contributing From f8dbf2e40a9b7f0831e6fdd14a7cbe3e84e134d6 Mon Sep 17 00:00:00 2001 From: Matthias Mohr Date: Tue, 28 Jul 2026 16:21:26 +0200 Subject: [PATCH 2/2] Add clarification related to the canonical relation type --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 105c209..029d0cb 100644 --- a/README.md +++ b/README.md @@ -57,8 +57,14 @@ see the [mapping to DataCite](#mapping-to-datacite) below. | predecessor-version | One or multiple links can point to STAC resources that are predecessor versions in the version history. | | successor-version | One or multiple links can point to STAC resources that are successor versions in the version history. | | version-history | This link points to a version history or changelog. This can be for example a Markdown file with the corresponding media type, or a STAC Catalog or Collection. | -| has-version | One or multiple links can point to resources that are versions of this resource. Typically used on an overarching entity (e.g., a canonical or version-independent resource) that groups versioned resources. | -| is-version-of | This link points to the overarching entity (e.g., a canonical or version-independent resource) of which this resource is a version. This is the reverse of `has-version`. | +| has-version | One or multiple links can point to resources that are versions of this resource. Typically used on an overarching entity (e.g., a version-independent resource) that groups versioned resources. | +| is-version-of | This link points to the overarching entity (e.g., a version-independent resource) of which this resource is a version. This is the reverse of `has-version`. | + +Note that the `canonical` relation type as described in the +[STAC best practices](https://github.com/radiantearth/stac-spec/blob/master/best-practices.md#using-relation-types) +is not a versioning relation type. +It points from a copy to the primary location of the *same* version of a resource, +whereas `is-version-of` points to the version-independent (overarching) entity. ### Mapping to DataCite