Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Means to specify database license #414

Merged
merged 13 commits into from
Jun 29, 2022
7 changes: 7 additions & 0 deletions optimade.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1018,13 +1018,20 @@ 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 <http://jsonapi.org/format/1.0/#document-links>`__ 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 <https://spdx.org/licenses/>`__, 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`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There may be more databases besides MPDS that use a per entry licencing system. So I think it would be good to specify that in that case, the link should point to a document describing how to find the licence for each entry. Otherwise someone may fill in a null value here, because there is no server wide licence.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest resolving this by explicitly stating that there is no default value/interpretation of null for these licensing properties. In case no pointers are provided in license (or *_licenses), this means no rights are granted for the client (as is with the source code). I do not want to entangle too much logic around this PR - there is a field for provider to put a link to their license/policies, and it is up to a provider to describe their license/policies in it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, with the latest edits, the text for license says that the text it points to may express "(or licensing options if there are multiple)", which I think is the appropriate level of clarification about this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But maybe we need to explicitly state what missing/null value for license means too?

Copy link
Contributor

@rartino rartino Jun 20, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, it does not hurt to clarify for both the fields that null/missing means "no license". But, I suppose, in particular available_licenses present, and license missing should still be interpretable.

Example: :field-val:`https://spdx.org/licenses/CC0-1.0`.
merkys marked this conversation as resolved.
Show resolved Hide resolved
merkys marked this conversation as resolved.
Show resolved Hide resolved

: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`_).

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.
merkys marked this conversation as resolved.
Show resolved Hide resolved

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 <https://jsonapi.org/format/1.0/#document-resource-object-relationships>`__:
Expand Down