From 8fb2435b69a998e164f14413ee606cadf8a8d27b Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Thu, 2 Jun 2022 11:54:18 +0200 Subject: [PATCH 01/10] Introducing `license` attribute. --- optimade.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/optimade.rst b/optimade.rst index 874ed765b..23e3f2920 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1019,6 +1019,9 @@ The single resource object's response dictionary MUST include the following fiel - **entry\_types\_by\_format**: Available entry endpoints as a function of output formats. - **available\_endpoints**: List of available endpoints (i.e., the string to be appended to the versioned or unversioned base URL serving the API). + - **license**: A `JSON API links object `__ providing a pointer to a license covering all the data provided under this database. + If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with `https://spdx.org/licenses/`. + :field:`attributes` MAY also include the following OPTIONAL fields: - **is\_index**: if :field-val:`true`, this is an index meta-database base URL (see section `Index Meta-Database`_). From 586428065be24a04dd102e57320d56b7a8b16303 Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Thu, 2 Jun 2022 11:57:52 +0200 Subject: [PATCH 02/10] SPDX links MUST NOT contain terminating `.html`. --- optimade.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/optimade.rst b/optimade.rst index 23e3f2920..53477a819 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1020,7 +1020,8 @@ The single resource object's response dictionary MUST include the following fiel - **available\_endpoints**: List of available endpoints (i.e., the string to be appended to the versioned or unversioned base URL serving the API). - **license**: A `JSON API links object `__ providing a pointer to a license covering all the data provided under this database. - If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with `https://spdx.org/licenses/`. + If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with :field-val:`https://spdx.org/licenses/`, but MUST NOT include the terminating :field-val:`.html`. + Example: :field-val:`https://spdx.org/licenses/CC0-1.0`. :field:`attributes` MAY also include the following OPTIONAL fields: From c14beddb10cbd3d9c726987800a7c682ba5fc462 Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Thu, 2 Jun 2022 12:25:30 +0200 Subject: [PATCH 03/10] Adding `license_is_compatible_with_cc_by_4_0`. --- optimade.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/optimade.rst b/optimade.rst index 53477a819..2e95a49d0 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1018,10 +1018,11 @@ The single resource object's response dictionary MUST include the following fiel - **formats**: List of available output formats. - **entry\_types\_by\_format**: Available entry endpoints as a function of output formats. - **available\_endpoints**: List of available endpoints (i.e., the string to be appended to the versioned or unversioned base URL serving the API). - - - **license**: A `JSON API links object `__ providing a pointer to a license covering all the data provided under this database. + - **license**: A `JSON API links object `__ giving a pointer to a license covering all the data provided under this database. If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with :field-val:`https://spdx.org/licenses/`, but MUST NOT include the terminating :field-val:`.html`. Example: :field-val:`https://spdx.org/licenses/CC0-1.0`. + - **license_is_compatible_with_cc_by_4_0**: Boolean value indicating compatibility with `Creative Commons Attribution 4.0 International license `__. + This field may be used to check whether a particular database allows aggregation of its data. :field:`attributes` MAY also include the following OPTIONAL fields: From 3a678c37b1dd1467851ff244e81e9b72dec17be9 Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Thu, 2 Jun 2022 13:47:16 +0200 Subject: [PATCH 04/10] "data" -> "data and metadata". --- optimade.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/optimade.rst b/optimade.rst index 2e95a49d0..74a49bb95 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1018,11 +1018,11 @@ The single resource object's response dictionary MUST include the following fiel - **formats**: List of available output formats. - **entry\_types\_by\_format**: Available entry endpoints as a function of output formats. - **available\_endpoints**: List of available endpoints (i.e., the string to be appended to the versioned or unversioned base URL serving the API). - - **license**: A `JSON API links object `__ giving a pointer to a license covering all the data provided under this database. + - **license**: A `JSON API links object `__ giving a pointer to a license covering all the data and metadata provided under this database. If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with :field-val:`https://spdx.org/licenses/`, but MUST NOT include the terminating :field-val:`.html`. Example: :field-val:`https://spdx.org/licenses/CC0-1.0`. - **license_is_compatible_with_cc_by_4_0**: Boolean value indicating compatibility with `Creative Commons Attribution 4.0 International license `__. - This field may be used to check whether a particular database allows aggregation of its data. + This field may be used to check whether a particular database allows aggregation of its data and metadata. :field:`attributes` MAY also include the following OPTIONAL fields: From 0688b8385561ba4baa1fb4fa420bcd461dd2d8f5 Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Fri, 3 Jun 2022 10:17:59 +0200 Subject: [PATCH 05/10] Replacing `license_is_compatible_with_cc_by_4_0` with `compatible_licenses`. --- optimade.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/optimade.rst b/optimade.rst index 8e26482bf..acc96d567 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1021,8 +1021,9 @@ The single resource object's response dictionary MUST include the following fiel - **license**: A `JSON API links object `__ giving a pointer to a license covering all the data and metadata provided under this database. If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with :field-val:`https://spdx.org/licenses/`, but MUST NOT include the terminating :field-val:`.html`. Example: :field-val:`https://spdx.org/licenses/CC0-1.0`. - - **license_is_compatible_with_cc_by_4_0**: Boolean value indicating compatibility with `Creative Commons Attribution 4.0 International license `__. - This field may be used to check whether a particular database allows aggregation of its data and metadata. + - **compatible\_licenses**: List of SPDX license identifiers giving licenses the data and metadata in a database is compatible with. + In case the data and metadata is multiply-licensed, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata could be used. + If :field:`license` and :field:`compatible_licenses` contradict, :field:`compatible_licenses` has precedence. :field:`attributes` MAY also include the following OPTIONAL fields: From cd7a0db1946aa131f6b0e495f5c1b2031371c3bf Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Fri, 3 Jun 2022 10:19:06 +0200 Subject: [PATCH 06/10] Making `compatible_licenses` OPTIONAL. --- optimade.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/optimade.rst b/optimade.rst index acc96d567..e748b71b0 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1021,9 +1021,6 @@ The single resource object's response dictionary MUST include the following fiel - **license**: A `JSON API links object `__ giving a pointer to a license covering all the data and metadata provided under this database. If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with :field-val:`https://spdx.org/licenses/`, but MUST NOT include the terminating :field-val:`.html`. Example: :field-val:`https://spdx.org/licenses/CC0-1.0`. - - **compatible\_licenses**: List of SPDX license identifiers giving licenses the data and metadata in a database is compatible with. - In case the data and metadata is multiply-licensed, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata could be used. - If :field:`license` and :field:`compatible_licenses` contradict, :field:`compatible_licenses` has precedence. :field:`attributes` MAY also include the following OPTIONAL fields: @@ -1031,6 +1028,10 @@ The single resource object's response dictionary MUST include the following fiel If this member is *not* provided, the client MUST assume this is **not** an index meta-database base URL (i.e., the default is for :field:`is_index` to be :field-val:`false`). + - **compatible\_licenses**: List of SPDX license identifiers giving licenses the data and metadata in a database is compatible with. + In case the data and metadata is multiply-licensed, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata could be used. + If :field:`license` and :field:`compatible_licenses` contradict, :field:`compatible_licenses` has precedence. + If this is an index meta-database base URL (see section `Index Meta-Database`_), then the response dictionary MUST also include the field: - **relationships**: Dictionary that MAY contain a single `JSON API relationships object `__: From 80556c19051987a53e003ade05f8ae5111b745fe Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Fri, 3 Jun 2022 10:34:30 +0200 Subject: [PATCH 07/10] Making the text a bit more easy to read. --- optimade.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optimade.rst b/optimade.rst index e748b71b0..1e43c9049 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1028,7 +1028,7 @@ The single resource object's response dictionary MUST include the following fiel If this member is *not* provided, the client MUST assume this is **not** an index meta-database base URL (i.e., the default is for :field:`is_index` to be :field-val:`false`). - - **compatible\_licenses**: List of SPDX license identifiers giving licenses the data and metadata in a database is compatible with. + - **compatible\_licenses**: List of SPDX license identifiers giving licenses that the data and metadata in a database is compatible with. In case the data and metadata is multiply-licensed, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata could be used. If :field:`license` and :field:`compatible_licenses` contradict, :field:`compatible_licenses` has precedence. From c1339598851ee3d5eaf8cdb1b4bc2c41017f1d69 Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Fri, 17 Jun 2022 16:59:01 +0300 Subject: [PATCH 08/10] Update optimade.rst Co-authored-by: Rickard Armiento --- optimade.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/optimade.rst b/optimade.rst index 26eeb6c53..448f56528 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1032,9 +1032,11 @@ The single resource object's response dictionary MUST include the following fiel If this member is *not* provided, the client MUST assume this is **not** an index meta-database base URL (i.e., the default is for :field:`is_index` to be :field-val:`false`). - - **compatible\_licenses**: List of SPDX license identifiers giving licenses that the data and metadata in a database is compatible with. - In case the data and metadata is multiply-licensed, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata could be used. - If :field:`license` and :field:`compatible_licenses` contradict, :field:`compatible_licenses` has precedence. + - **available\_licenses**: List of SPDX license identifiers specifying a set of alternative licenses under which the client is granted access to the data and metadata in this database. + Inclusion of a license identifier in the list is a commitment of the database that the rights are in place to grant clients access to all the data and metadata according to the terms of either of these licenses (at the choice of the client). + If the licensing information provided via the field :field:`license` omits licensing options specified in :field:`available_licenses`, or if it otherwise contradicts them, a client MUST still be allowed to interpret the inclusion of a license in :field:`available_licenses` as a full commitment from the database that the data and metadata is available, without exceptions, under the respective licenses. + If the database cannot make that commitment, e.g., if only part of the data is available under a license, the corresponding license identifier MUST NOT appear in :field:`available_licenses` (but, rather, the field :field:`license` is to be used to clarify the licensing situation.) + In case the data and metadata is multiply-licensed, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata can be used. If this is an index meta-database base URL (see section `Index Meta-Database`_), then the response dictionary MUST also include the field: From 954b0eb8df5fc088bb44fcac61b28765029234cd Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Mon, 20 Jun 2022 11:01:14 +0300 Subject: [PATCH 09/10] Update optimade.rst Co-authored-by: Rickard Armiento --- optimade.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/optimade.rst b/optimade.rst index 448f56528..53c549ff5 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1032,12 +1032,12 @@ The single resource object's response dictionary MUST include the following fiel If this member is *not* provided, the client MUST assume this is **not** an index meta-database base URL (i.e., the default is for :field:`is_index` to be :field-val:`false`). - - **available\_licenses**: List of SPDX license identifiers specifying a set of alternative licenses under which the client is granted access to the data and metadata in this database. + - **available\_licenses**: List of `SPDX license identifiers ` specifying a set of alternative licenses under which the client is granted access to all the data and metadata in this database. + If the data and metadata is available under multiple alternative licenses, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata can be used. Inclusion of a license identifier in the list is a commitment of the database that the rights are in place to grant clients access to all the data and metadata according to the terms of either of these licenses (at the choice of the client). If the licensing information provided via the field :field:`license` omits licensing options specified in :field:`available_licenses`, or if it otherwise contradicts them, a client MUST still be allowed to interpret the inclusion of a license in :field:`available_licenses` as a full commitment from the database that the data and metadata is available, without exceptions, under the respective licenses. If the database cannot make that commitment, e.g., if only part of the data is available under a license, the corresponding license identifier MUST NOT appear in :field:`available_licenses` (but, rather, the field :field:`license` is to be used to clarify the licensing situation.) - In case the data and metadata is multiply-licensed, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata can be used. - + An empty list indicates that none of the SPDX licenses apply for the entirety of the database and that the licensing situation is clarified in human readable form in the field :field:`license`. If this is an index meta-database base URL (see section `Index Meta-Database`_), then the response dictionary MUST also include the field: - **relationships**: Dictionary that MAY contain a single `JSON API relationships object `__: From 392e1e4fb7893a1be5814bae3c57945973021bb9 Mon Sep 17 00:00:00 2001 From: Andrius Merkys Date: Mon, 20 Jun 2022 11:06:07 +0300 Subject: [PATCH 10/10] Update optimade.rst Co-authored-by: Rickard Armiento --- optimade.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/optimade.rst b/optimade.rst index 53c549ff5..3865f4cf3 100644 --- a/optimade.rst +++ b/optimade.rst @@ -1022,9 +1022,9 @@ The single resource object's response dictionary MUST include the following fiel - **formats**: List of available output formats. - **entry\_types\_by\_format**: Available entry endpoints as a function of output formats. - **available\_endpoints**: List of available endpoints (i.e., the string to be appended to the versioned or unversioned base URL serving the API). - - **license**: A `JSON API links object `__ giving a pointer to a license covering all the data and metadata provided under this database. - If the license is included in the `SPDX License List `__, then the URL MUST point to SPDX-hosted license fulltext, i.e., it MUST start with :field-val:`https://spdx.org/licenses/`, but MUST NOT include the terminating :field-val:`.html`. - Example: :field-val:`https://spdx.org/licenses/CC0-1.0`. + - **license**: A `JSON API links object `__ giving a URL to a web page containing a human-readable text describing the license (or licensing options if there are multiple) covering all the data and metadata provided by this database. + Clients are advised not to try automated parsing of this link or its content, but rather rely on the field :field:`available_licenses` instead. + Example: :field-val:`https://example.com/licenses/example_license.html`. :field:`attributes` MAY also include the following OPTIONAL fields: