From 31bbd9a14b7b8d50c753a840c16fb9f77548c9a1 Mon Sep 17 00:00:00 2001 From: jmoore Date: Thu, 21 Apr 2022 11:43:41 +0200 Subject: [PATCH 01/10] Reformat multiscales dictionary section --- latest/index.bs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/latest/index.bs b/latest/index.bs index 76a40ab2..3ad0e25b 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -288,14 +288,21 @@ It MAY contain exactly one `translation` that specifies the offset from the orig The length of the `scale` and `translation` array MUST be the same as the length of "axes". The requirements (only `scale` and `translation`, restrictions on order) are in place to provide a simple mapping from data coordinates to physical coordinates while being compatible with the general transformation spec. -Each "multiscales" dictionary MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner. -The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them. -They can for example be used to specify the `scale` for a dimension that is the same for all resolutions. +Each "multiscales" dictionary: + * MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner. + The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them. + They can for example be used to specify the `scale` for a dimension that is the same for all resolutions. -Each "multiscales" dictionary SHOULD contain the field "name". It SHOULD contain the field "version", which indicates the version of the multiscale metadata of this image (current version is [NGFFVERSION]). + * SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation. -Each "multiscales" dictionary SHOULD contain the field "type", which gives the type of downscaling method used to generate the multiscale image pyramid. -It SHOULD contain the field "metadata", which contains a dictionary with additional information about the downscaling method. +* SHOULD contain the field "version", which indicates the version of the + multiscale metadata of this image (current version is [NGFFVERSION]). + +* SHOULD contain the field "type", which gives the type of downscaling method + used to generate the multiscale image pyramid. + +* SHOULD contain the field "metadata", which contains a dictionary with + additional information about the downscaling method.
 path: examples/valid_strict/multiscales_example.json

From e78d386b68dc81dd6ba6ba45b14629a7964810fc Mon Sep 17 00:00:00 2001
From: jmoore 
Date: Thu, 21 Apr 2022 11:43:51 +0200
Subject: [PATCH 02/10] multiscales: add SHOULD section for "uuid"

In order to uniquely identify the images that are being generated,
this change proposes that a UUID should be included with each multiscale.
The UUID can either be generated at creation or perhaps copied from
an existing array if all meta(data) is identical (e.g. a rechunking).
---
 latest/index.bs | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/latest/index.bs b/latest/index.bs
index 3ad0e25b..876a2181 100644
--- a/latest/index.bs
+++ b/latest/index.bs
@@ -295,6 +295,11 @@ Each "multiscales" dictionary:
 
  * SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation.
 
+ * SHOULD contain the field "uuid" which is a
+   [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant
+   string representation of a universally unique identifier, e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use
+   a compliant generator to minimize potential conflicts.
+
 * SHOULD contain the field "version", which indicates the version of the
   multiscale metadata of this image (current version is [NGFFVERSION]).
 

From fc26c8971c496bb1c49f2c14d572b501815bdecc Mon Sep 17 00:00:00 2001
From: Josh Moore 
Date: Wed, 11 May 2022 12:46:34 +0200
Subject: [PATCH 03/10] Fix bullet points

---
 latest/index.bs | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/latest/index.bs b/latest/index.bs
index 876a2181..c28ffd51 100644
--- a/latest/index.bs
+++ b/latest/index.bs
@@ -289,16 +289,17 @@ The length of the `scale` and `translation` array MUST be the same as the length
 The requirements (only `scale` and `translation`, restrictions on order) are in place to provide a simple mapping from data coordinates to physical coordinates while being compatible with the general transformation spec.
 
 Each "multiscales" dictionary:
- * MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner.
-   The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them.
-   They can for example be used to specify the `scale` for a dimension that is the same for all resolutions.
 
- * SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation.
+* MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner.
+  The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them.
+  They can for example be used to specify the `scale` for a dimension that is the same for all resolutions.
 
- * SHOULD contain the field "uuid" which is a
-   [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant
-   string representation of a universally unique identifier, e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use
-   a compliant generator to minimize potential conflicts.
+* SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation.
+
+* SHOULD contain the field "uuid" which is a
+  [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant
+  string representation of a universally unique identifier, e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use
+  a compliant generator to minimize potential conflicts.
 
 * SHOULD contain the field "version", which indicates the version of the
   multiscale metadata of this image (current version is [NGFFVERSION]).

From b1c7ab0e5d3e7365f5debdb4716d088fa9dad20f Mon Sep 17 00:00:00 2001
From: Josh Moore 
Date: Wed, 11 May 2022 12:46:40 +0200
Subject: [PATCH 04/10] Add uuid to the example

---
 latest/examples/valid_strict/multiscales_example.json | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/latest/examples/valid_strict/multiscales_example.json b/latest/examples/valid_strict/multiscales_example.json
index 73e5286c..75d75c65 100644
--- a/latest/examples/valid_strict/multiscales_example.json
+++ b/latest/examples/valid_strict/multiscales_example.json
@@ -2,6 +2,7 @@
     "multiscales": [
         {
             "version": "0.5-dev",
+            "uuid": "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6",
             "name": "example",
             "axes": [
                 {"name": "t", "type": "time", "unit": "millisecond"},
@@ -51,4 +52,4 @@
             }
         }
     ]
-}
\ No newline at end of file
+}

From 01d58a1babb14a41dd9104343d248ff74278a77e Mon Sep 17 00:00:00 2001
From: Josh Moore 
Date: Wed, 11 May 2022 12:52:45 +0200
Subject: [PATCH 05/10] Use double trailing-space for multi-line bullets

---
 latest/index.bs | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/latest/index.bs b/latest/index.bs
index c28ffd51..425ce810 100644
--- a/latest/index.bs
+++ b/latest/index.bs
@@ -290,25 +290,26 @@ The requirements (only `scale` and `translation`, restrictions on order) are in
 
 Each "multiscales" dictionary:
 
-* MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner.
-  The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them.
-  They can for example be used to specify the `scale` for a dimension that is the same for all resolutions.
+* MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner.  
+The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them.  
+They can for example be used to specify the `scale` for a dimension that is the same for all resolutions.
 
 * SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation.
 
-* SHOULD contain the field "uuid" which is a
-  [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant
-  string representation of a universally unique identifier, e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use
-  a compliant generator to minimize potential conflicts.
+* SHOULD contain the field "uuid" which is a  
+[RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant  
+string representation of a universally unique identifier,  
+ke.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use  
+a compliant generator to minimize potential conflicts.
 
-* SHOULD contain the field "version", which indicates the version of the
-  multiscale metadata of this image (current version is [NGFFVERSION]).
+* SHOULD contain the field "version", which indicates the version of the  
+multiscale metadata of this image (current version is [NGFFVERSION]).
 
-* SHOULD contain the field "type", which gives the type of downscaling method
-  used to generate the multiscale image pyramid.
+* SHOULD contain the field "type", which gives the type of downscaling method  
+used to generate the multiscale image pyramid.
 
-* SHOULD contain the field "metadata", which contains a dictionary with
-  additional information about the downscaling method.
+* SHOULD contain the field "metadata", which contains a dictionary with  
+additional information about the downscaling method.
 
 
 path: examples/valid_strict/multiscales_example.json

From c7a655e9b09528d1064bd6515676c3decdbb5de8 Mon Sep 17 00:00:00 2001
From: Josh Moore 
Date: Wed, 11 May 2022 12:55:27 +0200
Subject: [PATCH 06/10] Re-add prelim spaces

---
 latest/index.bs | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/latest/index.bs b/latest/index.bs
index 425ce810..56f3b05c 100644
--- a/latest/index.bs
+++ b/latest/index.bs
@@ -291,25 +291,25 @@ The requirements (only `scale` and `translation`, restrictions on order) are in
 Each "multiscales" dictionary:
 
 * MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner.  
-The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them.  
-They can for example be used to specify the `scale` for a dimension that is the same for all resolutions.
+ The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them.  
+ They can for example be used to specify the `scale` for a dimension that is the same for all resolutions.
 
 * SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation.
 
 * SHOULD contain the field "uuid" which is a  
-[RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant  
-string representation of a universally unique identifier,  
-ke.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use  
-a compliant generator to minimize potential conflicts.
+ [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant  
+ string representation of a universally unique identifier,  
+ ke.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use  
+ a compliant generator to minimize potential conflicts.
 
 * SHOULD contain the field "version", which indicates the version of the  
-multiscale metadata of this image (current version is [NGFFVERSION]).
+ multiscale metadata of this image (current version is [NGFFVERSION]).
 
 * SHOULD contain the field "type", which gives the type of downscaling method  
-used to generate the multiscale image pyramid.
+ used to generate the multiscale image pyramid.
 
 * SHOULD contain the field "metadata", which contains a dictionary with  
-additional information about the downscaling method.
+ additional information about the downscaling method.
 
 
 path: examples/valid_strict/multiscales_example.json

From e01aafee642f9b583b8c6443930f61136230e204 Mon Sep 17 00:00:00 2001
From: Josh Moore 
Date: Wed, 11 May 2022 13:03:34 +0200
Subject: [PATCH 07/10] Use HTML instead

---
 latest/index.bs | 56 +++++++++++++++++++++++++++++++------------------
 1 file changed, 36 insertions(+), 20 deletions(-)

diff --git a/latest/index.bs b/latest/index.bs
index 56f3b05c..57855ecc 100644
--- a/latest/index.bs
+++ b/latest/index.bs
@@ -290,26 +290,42 @@ The requirements (only `scale` and `translation`, restrictions on order) are in
 
 Each "multiscales" dictionary:
 
-* MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner.  
- The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them.  
- They can for example be used to specify the `scale` for a dimension that is the same for all resolutions.
-
-* SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation.
-
-* SHOULD contain the field "uuid" which is a  
- [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant  
- string representation of a universally unique identifier,  
- ke.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use  
- a compliant generator to minimize potential conflicts.
-
-* SHOULD contain the field "version", which indicates the version of the  
- multiscale metadata of this image (current version is [NGFFVERSION]).
-
-* SHOULD contain the field "type", which gives the type of downscaling method  
- used to generate the multiscale image pyramid.
-
-* SHOULD contain the field "metadata", which contains a dictionary with  
- additional information about the downscaling method.
+
    +
  • + MAY contain the field "coordinateTransformations", describing transformations that are applied to all resolution levels in the same manner. + The transformations MUST follow the same rules about allowed types, order, etc. as in "datasets:coordinateTransformations" and are applied after them. + They can for example be used to specify the `scale` for a dimension that is the same for all resolutions. +
  • + +
  • + SHOULD contain the field "name" which is informative to users but not sufficient for unique identifiation. +
  • + +
  • + SHOULD contain the field "uuid" which is a +
  • + +
  • + [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant + string representation of a universally unique identifier, + e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use + a compliant generator to minimize potential conflicts. +
  • + +
  • + SHOULD contain the field "version", which indicates the version of the + multiscale metadata of this image (current version is [NGFFVERSION]). +
  • + +
  • + SHOULD contain the field "type", which gives the type of downscaling method + used to generate the multiscale image pyramid. +
  • + +
  • + SHOULD contain the field "metadata", which contains a dictionary with + additional information about the downscaling method. +
  •  path: examples/valid_strict/multiscales_example.json
    
    From 0904633b80491a768789c067c87f200852405c14 Mon Sep 17 00:00:00 2001
    From: Josh Moore 
    Date: Wed, 11 May 2022 13:36:44 +0200
    Subject: [PATCH 08/10] Add uuid field to the schema
    
    ---
     latest/schemas/image.schema        | 3 +++
     latest/schemas/strict_image.schema | 4 ++--
     2 files changed, 5 insertions(+), 2 deletions(-)
    
    diff --git a/latest/schemas/image.schema b/latest/schemas/image.schema
    index 3926c4f4..723c2e2d 100644
    --- a/latest/schemas/image.schema
    +++ b/latest/schemas/image.schema
    @@ -14,6 +14,9 @@
               "name": {
                 "type": "string"
               },
    +          "uuid": {
    +            "type": "string"
    +          },
               "datasets": {
                 "type": "array",
                 "minItems": 1,
    diff --git a/latest/schemas/strict_image.schema b/latest/schemas/strict_image.schema
    index bcecc003..6f192f82 100644
    --- a/latest/schemas/strict_image.schema
    +++ b/latest/schemas/strict_image.schema
    @@ -9,11 +9,11 @@
             "multiscales": {
               "items": {
                 "required": [
    -              "version", "metadata", "type", "name"
    +              "version", "metadata", "type", "name", "uuid"
                 ]
               }
             }
           }
         }
       ]
    -}
    \ No newline at end of file
    +}
    
    From 4b4d8d8b5c3ab9fdf90f54ce68a0ccbcba5dab83 Mon Sep 17 00:00:00 2001
    From: Josh Moore 
    Date: Fri, 13 May 2022 08:06:34 +0200
    Subject: [PATCH 09/10] Fix split list element
    
    ---
     latest/index.bs | 3 ---
     1 file changed, 3 deletions(-)
    
    diff --git a/latest/index.bs b/latest/index.bs
    index 57855ecc..e0d9f8e1 100644
    --- a/latest/index.bs
    +++ b/latest/index.bs
    @@ -303,9 +303,6 @@ Each "multiscales" dictionary:
     
     
  • SHOULD contain the field "uuid" which is a -
  • - -
  • [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant string representation of a universally unique identifier, e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use From de0b1519e8407ea48f4e7ab87d37d48713c9be83 Mon Sep 17 00:00:00 2001 From: Josh Moore Date: Fri, 13 May 2022 08:12:24 +0200 Subject: [PATCH 10/10] Add text on intent of uuid --- latest/index.bs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/latest/index.bs b/latest/index.bs index e0d9f8e1..fe840b32 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -302,11 +302,20 @@ Each "multiscales" dictionary:
  • +

    SHOULD contain the field "uuid" which is a [RFC 4122](https://www.ietf.org/rfc/rfc4122.txt) compliant string representation of a universally unique identifier, e.g., "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" and SHOULD use a compliant generator to minimize potential conflicts. +

    +

    + The uuid field is used to uniquely assign an identity to + objects in the dataset. Users MAY choose to store identical + objects, i.e. with the same uuid, in multiple filesets with + the intent that changes to either may eventually be applied + to all copies. +