Dear Daniel and Charlie

Thanks for this proposal. I think it's a sensible way to support groups, and I 
agree with it, except that I'm not convinced about the lateral search. You 
don't sound convinced about it either, in saying that it's allowed for 
backward-compatibility and may be deprecated in future. Why not deprecate it 
*now* (meaning that the CF-checker would give a warning)? Why allow it at all? 
Is there a more specific extra search rule you could provide instead of your 
general lateral algorithm to deal with the existing datasets you have in mind?

I think that at the meeting we talked about how you would flatten a file, if 
you didn't want groups. Could we include that aspect in the proposal? If it's 
reversible, that would be neat.

I feel that the text could be made simpler and easier to understand, and most 
of my suggestions below are along those lines. Although I think I get the 
spirit of your search rules, I have to say I don't properly follow them in 
detail. The text seems obscure to me - maybe you could say it more plainly, and 
diagrams would help, I expect.

* In ch01 you propose a number of definitions. However, you don't propose to 
use these terms anywhere in the convention outside your new subsection of ch02. 
Hence I suggest you start your ch02 subsection with these definitions, instead 
of putting them in ch01, so they're in the place where the reader of ch02 will 
see them.

* You haven't defined what you mean by ancestor group, sibling group, 
descendant group, identifier and element. Why not say "nearest" instead of 
"most proximal"? What does "nearest" mean in the description of "local apex 
group"?

* For the first sentence of the new Groups subsection, I would suggest, "Groups 
provide a mechanism to structure data hierarchically within files." It doesn't 
seem especially "powerful" to me - it's just what you'd expect it to be! It's 
also not the only way, since hierarchy can equally well be done with 
directories.

* Are "object" and "element" the same? If so, I'd use only one of these terms, 
and "element" seems better to me because it's not language-specific. Say what 
sort of thing can be an "element" - a dimension? a variable? of any role?

* Say what an "identifier" is and in which contexts in CF it can occur. What is 
a "location"?

* "Resolves to" is programmatic jargon - could you say this in more ordinary 
language?

* Is the convention of paths to name groups and elements something that you are 
 defining here as part of CF, rather than built into netCDF? I guess that it 
is, and if so, I would state explicitly that you are doing so, because it reads 
as though you assume the reader knows what is meant by a path to a group. As 
part of this, please explain how to interpret a path.

* In a path, is `.` allowed? Is `//` allowed?

* Does the restriction on out-of-group refs ("The dataset producer etc.") apply 
only to the case of absolute paths, or in all cases? If the latter, it should 
be stated before or after the three cases, I suppose.

* In "Search by absolute path", what does "nearest dimension" mean? 

* In "Search by absolute path" you use the phrase "out-of-group", before its 
definition, which appears further down.

* In "Search by proximity", say what "with no path" means. What's a "direct 
ancestor" - I mean, could an ancestor be "indirect"? I would combine the Note 
with the paragraph which follows, because in the Note it's not obvious what 
strategy you're talking about i.e. the "special case".

* I think that you shouldn't list the attributes concerned, because this is 
redundant within the convention. This information is in Appendix A. If it's 
repeated here, it'll probably become inconsistent. If you want, you could give 
just a single example from each list e.g. `title`, `units`.

* Is the last paragraph saying that groups can have attributes, like global 
attributes? If so, please say that - "being present within" sounds vague. Does 
a group attribute override a global attribute? Are global attributes assumed 
(unless overridden) to apply to all variables in all groups? I suggest that 
this part should come in the same place as the text about global attributes, 
before the text about variable attributes. I think that (what is currently) the 
last sentence isn't necessary - that's implied by the previous sentence, isn't 
it?

I hope that helps. Best wishes

Jonathan


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/144#issuecomment-411055132

Reply via email to