@@ -76,7 +76,7 @@ Alistair Miles ([@alimanfoo](https://github.com/alimanfoo))
7676
7777====
7878
79- ### Spec development process (1)
79+ ### Spec development process - current
8080
8181* Currently @alimanfoo is acting as editor for the v3.0 core protocol
8282 spec.
@@ -90,7 +90,7 @@ Alistair Miles ([@alimanfoo](https://github.com/alimanfoo))
9090
9191===
9292
93- ### Spec development process (2)
93+ ### Spec development process - future?
9494
9595* Ultimately I think we'll need to define a community process for spec
9696 development, so that:
@@ -101,24 +101,92 @@ Alistair Miles ([@alimanfoo](https://github.com/alimanfoo))
101101
102102 * It's clear what stage of maturity each spec is at.
103103
104- * Postpone that for now , may need external advice/help on best
104+ * Don't have a solution for that yet , may need advice/help on best
105105 approach.
106106
107107===
108108
109- ### Spec development process (3)
109+ ### Spec development process - freedoms
110110
111111* Hopefully the [ zarr-specs
112112 repo] ( https://github.com/zarr-developers/zarr-specs ) can serve as a
113113 focus for community spec development.
114114
115+ * ...and the [ zarr-specs RTFD
116+ site] ( https://zarr-specs.readthedocs.io ) can serve as a discovery
117+ point for specs.
118+
115119* However, don't want to force all spec development down the same
116- route.
120+ route, or force all specs to be published in the same place .
117121
118- * This is one reason why currently the core spec makes use of
119- ** URIs** in metadata to refer to protocol extensions and codecs -
120- allow for anyone to publish their own spec.
122+ * This is one reason why currently the core protocol spec makes use
123+ of ** URIs** in metadata to refer to protocol extensions and
124+ codecs - allow freedom for anyone to publish their own spec.
125+
126+ ====
127+
128+ ### [ Core protocol - concepts and terminology] ( https://zarr-specs.readthedocs.io/en/core-protocol-v3.0-dev/protocol/core/v3.0.html#concepts-and-terminology )
129+
130+ * Hierachy. Group. Array. Name. Path. Dimension. Shape. Element. Data
131+ type. Chunk. Grid. Memory layout. Compressor. Codec. Metadata
132+ document. Store.*
133+
134+ * Are we comfortable with this terminology and how it is defined?
135+
136+ * Any important missing terms/concepts?
121137
122138====
123139
124- ###
140+ ### [ Core protocol - node names] ( https://zarr-specs.readthedocs.io/en/core-protocol-v3.0-dev/protocol/core/v3.0.html#node-names )
141+
142+ * Each node (array or group) in a hierarchy has a name.
143+
144+ * Node names are used to form node paths.
145+
146+ * E.g., "/foo/bar" is a path identifying a node named "bar" whose
147+ parent is named "foo" whose parent is the root node.
148+
149+ ===
150+
151+ ### Node names - restrictions
152+
153+ * Node paths are used by users to access nodes and navigate a
154+ hierarchy.
155+
156+ * N.B., node paths are also used to form storage keys (see later).
157+
158+ * To try and ensure compatibility with a variety of storage systems,
159+ the core protocol currently states fairly heavy restrictions on node
160+ names.
161+
162+ * Includes restriction to ASCII alpha-numeric characters, "-", "_ "
163+ and ".".
164+
165+ ===
166+
167+ ### Node names - restrictions
168+
169+ * Are we comfortable with the current restrictions?
170+
171+ * Should we be aiming to support Unicode? Or is that a bridge too far
172+ for now?
173+
174+ * Not sure what full implications would be, but supporting Unicode
175+ could make storage specs and implementations harder to develop.
176+
177+ ===
178+
179+ ### Node names - case (in)sensitivity
180+
181+ * N.B., some file systems are case sensitive, some are not.
182+
183+ * This can ([ and
184+ has] ( https://github.com/cggh/scikit-allel/issues/215#issuecomment-434088283 ) )
185+ led to bugs with the zarr v2 protocol when used with file system
186+ storage on different operating systems.
187+
188+ * Hard to resolve without annoying users (e.g., force all names to
189+ lower case) or increasing implementation complexity (e.g., check for
190+ case-insensitive name clashes).
191+
192+ * I'm not happy with the spec's current approach to this.
0 commit comments