Skip to content

Commit 0091cec

Browse files
committed
node names
1 parent 189a1d0 commit 0091cec

File tree

1 file changed

+77
-9
lines changed

1 file changed

+77
-9
lines changed

slides/v3-update-20190619.md

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)