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 +} diff --git a/latest/index.bs b/latest/index.bs index 76a40ab2..fe840b32 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -288,14 +288,50 @@ 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 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]). - -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. +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. +
+path: examples/valid_strict/multiscales_example.json 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 +}