From 21643f65db2a67e230b9a96dfb7324158fa0db43 Mon Sep 17 00:00:00 2001 From: vaitkus Date: Fri, 12 Jan 2024 15:30:24 +0200 Subject: [PATCH 1/4] Remove extra backslashes. --- optimade.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/optimade.rst b/optimade.rst index 948143bc2..c6d1694c8 100644 --- a/optimade.rst +++ b/optimade.rst @@ -2542,7 +2542,7 @@ elements - **Query**: MUST be a queryable property with support for all mandatory filter features. - The strings are the chemical symbols, i.e., either a single uppercase letter or an uppercase letter followed by a number of lowercase letters. - The order MUST be alphabetical. - - MUST refer to the same elements in the same order, and therefore be of the same length, as `elements\_ratios`_, if the latter is provided. + - MUST refer to the same elements in the same order, and therefore be of the same length, as `elements_ratios`_, if the latter is provided. - Note: This property SHOULD NOT contain the string "X" to indicate non-chemical elements or "vacancy" to indicate vacancies (in contrast to the field :field:`chemical_symbols` for the :property:`species` property). - **Examples**: @@ -2565,7 +2565,7 @@ nelements - **Support**: SHOULD be supported by all implementations, i.e., SHOULD NOT be :val:`null`. - **Query**: MUST be a queryable property with support for all mandatory filter features. - - MUST be equal to the lengths of the list properties `elements`_ and `elements\_ratios`_, if they are provided. + - MUST be equal to the lengths of the list properties `elements`_ and `elements_ratios`_, if they are provided. - **Examples**: @@ -2713,8 +2713,8 @@ dimension\_types ~~~~~~~~~~~~~~~~ - **Description**: List of three integers describing the periodicity of the boundaries of the unit cell. - For each direction indicated by the three `lattice\_vectors`_, this list indicates if the direction is periodic (value :val:`1`) or non-periodic (value :val:`0`). - Note: the elements in this list each refer to the direction of the corresponding entry in `lattice\_vectors`_ and *not* the Cartesian x, y, z directions. + For each direction indicated by the three `lattice_vectors`_, this list indicates if the direction is periodic (value :val:`1`) or non-periodic (value :val:`0`). + Note: the elements in this list each refer to the direction of the corresponding entry in `lattice_vectors`_ and *not* the Cartesian x, y, z directions. - **Type**: list of integers. - **Requirements/Conventions**: @@ -2733,18 +2733,18 @@ dimension\_types nperiodic\_dimensions ~~~~~~~~~~~~~~~~~~~~~ -- **Description**: An integer specifying the number of periodic dimensions in the structure, equivalent to the number of non-zero entries in `dimension\_types`_. +- **Description**: An integer specifying the number of periodic dimensions in the structure, equivalent to the number of non-zero entries in `dimension_types`_. - **Type**: integer - **Requirements/Conventions**: - **Support**: SHOULD be supported by all implementations, i.e., SHOULD NOT be :val:`null`. - **Query**: MUST be a queryable property with support for all mandatory filter features. - - The integer value MUST be between 0 and 3 inclusive and MUST be equal to the sum of the items in the `dimension\_types`_ property. + - The integer value MUST be between 0 and 3 inclusive and MUST be equal to the sum of the items in the `dimension_types`_ property. - This property only reflects the treatment of the lattice vectors provided for the structure, and not any physical interpretation of the dimensionality of its contents. - **Examples**: - - :val:`2` should be indicated in cases where :property:`dimension\_types` is any of :val:`[1, 1, 0]`, :val:`[1, 0, 1]`, :val:`[0, 1, 1]`. + - :val:`2` should be indicated in cases where :property:`dimension_types` is any of :val:`[1, 1, 0]`, :val:`[1, 0, 1]`, :val:`[0, 1, 1]`. - **Query examples**: @@ -2764,10 +2764,10 @@ lattice\_vectors - MUST be a list of three vectors *a*, *b*, and *c*, where each of the vectors MUST BE a list of the vector's coordinates along the x, y, and z Cartesian coordinates. (Therefore, the first index runs over the three lattice vectors and the second index runs over the x, y, z Cartesian coordinates). - For databases that do not define an absolute Cartesian system (e.g., only defining the length and angles between vectors), the first lattice vector SHOULD be set along *x* and the second on the *xy*-plane. - - MUST always contain three vectors of three coordinates each, independently of the elements of property `dimension\_types`_. + - MUST always contain three vectors of three coordinates each, independently of the elements of property `dimension_types`_. The vectors SHOULD by convention be chosen so the determinant of the :property:`lattice_vectors` matrix is different from zero. The vectors in the non-periodic directions have no significance beyond fulfilling these requirements. - - The coordinates of the lattice vectors of non-periodic dimensions (i.e., those dimensions for which `dimension\_types`_ is :val:`0`) MAY be given as a list of all :val:`null` values. + - The coordinates of the lattice vectors of non-periodic dimensions (i.e., those dimensions for which `dimension_types`_ is :val:`0`) MAY be given as a list of all :val:`null` values. If a lattice vector contains the value :val:`null`, all coordinates of that lattice vector MUST be :val:`null`. - **Examples**: From 0bb9d5342cc25e356d3d54fa3330198e8928fe95 Mon Sep 17 00:00:00 2001 From: vaitkus Date: Fri, 12 Jan 2024 15:39:34 +0200 Subject: [PATCH 2/4] Fix indentation. --- optimade.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/optimade.rst b/optimade.rst index c6d1694c8..df1e6b44b 100644 --- a/optimade.rst +++ b/optimade.rst @@ -737,6 +737,7 @@ Every response SHOULD contain the following fields, and MUST contain at least :f If it is a string, or a dictionary containing no :field:`meta` field, the provided URL MUST point at an `OpenAPI `__ schema. It is possible that future versions of this specification allow for alternative schema types. Hence, if the :field:`meta` field of the JSON:API links object is provided and contains a field :field:`schema_type` that is not equal to the string :field-val:`OpenAPI` the client MUST NOT handle failures to parse the schema or to validate the response against the schema as errors. + **Note**: The :field:`schema` field was previously RECOMMENDED in all responses, but is now demoted to being OPTIONAL since there now is a standard way of specifying a response schema in JSON:API through the :field:`describedby` subfield of the top-level :field:`links` field. - **data**: The schema of this value varies by endpoint, it can be either a *single* `JSON:API resource object `__ or a *list* of JSON:API resource objects. @@ -801,7 +802,7 @@ The response MAY also return resources related to the primary data in the field: The URL SHOULD resolve into a JSON formatted response returning a JSON object with top level :field:`$schema` and/or :field:`$id` fields that can be used by the client to identify the schema format. **Note**: This field is the standard facility in JSON:API to communicate a response schema. - It overlaps in function with the field :field:`schema` in the top level :field:`meta` field. + It overlaps in function with the field :field:`schema` in the top level :field:`meta` field. The following fields are REQUIRED for implementing pagination: From 751a58e45f1127ede405f99af234daffaea148c1 Mon Sep 17 00:00:00 2001 From: vaitkus Date: Fri, 12 Jan 2024 15:44:16 +0200 Subject: [PATCH 3/4] Add missing empty lines. --- optimade.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/optimade.rst b/optimade.rst index df1e6b44b..16b9a7578 100644 --- a/optimade.rst +++ b/optimade.rst @@ -511,6 +511,7 @@ However, when an implementation supports the :field:`property_metadata` field, i Example of a response in the JSON response format with two structure entries that each include a metadata property for the attribute field :field:`element_ratios` and the database-specific per entry metadata field :field:`_exmpl_originates_from_project` : .. code:: jsonc + { "data": [ { @@ -549,6 +550,7 @@ Example of a response in the JSON response format with two structure entries tha Example of the corresponding metadata property definition contained in the field :field:`x-optimade-metadata-definition` which is placed in the property definition of :field:`element_ratios`: .. code:: jsonc + // ... "x-optimade-metadata-definition": { "title": "Metadata for the element_ratios field", From 93f7b8411b4b63b0b7779e1cb7d90eb5388ae956 Mon Sep 17 00:00:00 2001 From: vaitkus Date: Fri, 12 Jan 2024 16:06:41 +0200 Subject: [PATCH 4/4] Change 'element_ratios' to 'elements_ratios'. --- optimade.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/optimade.rst b/optimade.rst index 16b9a7578..d8205d450 100644 --- a/optimade.rst +++ b/optimade.rst @@ -508,7 +508,7 @@ The reason for this limitation is to avoid name collisions with metadata fields Implementation of the :field:`meta` field is OPTIONAL. However, when an implementation supports the :field:`property_metadata` field, it SHOULD include metadata fields for all properties which have metadata and are present in the data part of the response. -Example of a response in the JSON response format with two structure entries that each include a metadata property for the attribute field :field:`element_ratios` and the database-specific per entry metadata field :field:`_exmpl_originates_from_project` : +Example of a response in the JSON response format with two structure entries that each include a metadata property for the attribute field :field:`elements_ratios` and the database-specific per entry metadata field :field:`_exmpl_originates_from_project` : .. code:: jsonc @@ -518,11 +518,11 @@ Example of a response in the JSON response format with two structure entries tha "type": "structures", "id": "example.db:structs:0001", "attributes": { - "element_ratios":[0.33336, 0.22229, 0.44425] + "elements_ratios":[0.33336, 0.22229, 0.44425] }, "meta": { "property_metadata": { - "element_ratios": { + "elements_ratios": { "_exmpl_originates_from_project": "piezoelectic_perovskites" } } @@ -532,11 +532,11 @@ Example of a response in the JSON response format with two structure entries tha "type": "structures", "id": "example.db:structs:1234", "attributes": { - "element_ratios":[0.5, 0.5] + "elements_ratios":[0.5, 0.5] }, "meta": { "property_metadata":{ - "element_ratios": { + "elements_ratios": { "_exmpl_originates_from_project": "ferroelectric_binaries" } } @@ -547,20 +547,20 @@ Example of a response in the JSON response format with two structure entries tha // ... } -Example of the corresponding metadata property definition contained in the field :field:`x-optimade-metadata-definition` which is placed in the property definition of :field:`element_ratios`: +Example of the corresponding metadata property definition contained in the field :field:`x-optimade-metadata-definition` which is placed in the property definition of :field:`elements_ratios`: .. code:: jsonc // ... "x-optimade-metadata-definition": { - "title": "Metadata for the element_ratios field", - "description": "This field contains the per-entry metadata for the element_ratios field.", + "title": "Metadata for the elements_ratios field", + "description": "This field contains the per-entry metadata for the elements_ratios field.", "x-optimade-type": "dictionary", "x-optimade-unit": "inapplicable", "type": ["object", "null"], "properties" : { "_exmpl_originates_from_project": { - "$id": "https://properties.example.com/v1.2.0/element_ratios_meta/_exmpl_originates_from_project", + "$id": "https://properties.example.com/v1.2.0/elements_ratios_meta/_exmpl_originates_from_project", "description" : "A string naming the internal example.com project id where this property was added to the database.", "x-optimade-type": "string", "x-optimade-unit" : "inapplicable"