[opendap-tech] DAP 2.0 Questions and Comments

Bob Simons Bob.Simons at noaa.gov
Wed Aug 8 14:13:02 PDT 2007


I have a few questions and comments related to ESE-RFC-004.0.08
"The Data Access Protocol - DAP 2.0" (dated 2005-10-27).

First, let me say that I am a big fan of the DAP specification and
all the software that implement it.
My comments are intended to be helpful, not critical.
I am more confident of some items than others.
Some of the items are important. Some are picky details.
So please take them all with a grain of salt.

In an effort to make the examples more readable, I will indent literal
examples instead of putting them in double quotes.

Here are the questions and comments:

* Table 5 lists the "=~" operator,
   but dods.dap.parser.ExprParserConstants.java lists "~=" instead.
   And the online help at 
http://www.opendap.org/user/guide-html/guide_35.html#id4
   lists "~=" instead.
   Which is correct?

* In your notation, square brackets indicate optional items.
   The box in section 6.1.1 lists
      [ array-dim ]
   Shouldn't it be
      *[ "[" array-dim "]" ]
   instead, particularly since array-dim doesn't include "[" and "]"?

* Footnote 8: instead of
      decimal value 10 and decimal vale [sic] 13.
   perhaps it would be better to say
      decimal value 13 and decimal value 10, respectively.

* Footnote 8, the general use of CRLF in the document, and the
   CRLF description in Appendix A.2 are somewhat misleading.
   Appendix A.2 mentions section 3.7 of RFC 2616 which
   indicates that just CR or just LF
   can be used in place of CRLF if used consistently throughout
   a document. Indeed, this is what some implementations, e.g., TDS,
   seem to do.
   I understand that you are following the HTTP syntax, but perhaps
   it makes sense to add a comment about allowing just
   CR or just LF to the DAP specification.

* Section 7.1.4 has a minor typographic error:
      includ
   should be changed to
      include
   .

* All of the examples of the XDODS-Server header in section 8
   (e.g., "Friendly-neighborhood DAP implementation v/3.1.1")
   are very different from the specification in section 7.1.7
   (e.g., dods/3.2.2).

* Is the "Last-Modified" header described in section 7.1.4.2
   a MUST or an OPTIONAL header?

* In section 7.1.4.2, what do you mean "the last time the
   server changed"?
   The last time the server software was updated?
   The version date for the server software?

* Perhaps I missed it, but where is the server version number
   defined? section 7.1.7 describes how to return the number in
   the header. But where does that number come from?
   Does it indicate the DAP standard number? (I don't think so.)
   Does it indicate the version number of my OPeNDAP server software?
   (I don't think so, because this would be meaningless to most clients,
   since the header includes "dods", not the name of my software.)
   Does it indicate the version number of some OPeNDAP software?
   If so, which software?

* It seems odd to put Figure 2 (which is referenced in section 7.2.2 and
   relates to section 7.2.2) before section 7.2.2.

* The box in section 7.2.2 includes
      "data-source"
   but the Figure 2 example, the examples in section 8, and actual
   implementations seem to use
      "dataset"
   instead.

* It is unfortunate that the term "array-dim" is used in two
   different contexts and is therefore defined differently in
   section 6.1.1.2 and section 7.2.2.2.

* In the box in section 7.2.2.3, isn't
      structure
   a literal? So shouldn't it it be
      "structure"
   instead?

* In the box in section 7.2.2.4, isn't
      sequence
   a literal? So shouldn't it it be
      "sequence"
   instead?

* In the box in section 7.2.2.4, there is a reference to
      [sequence-type]
   but there is no definition of sequence-type.
   Did you mean
      sequence-decl
   instead? (I'm not sure.)

* In the box in section 7.2.4, there is no
      ";"
   after
      "}"
   The trailing semi-colon seems to be required by
   dods.dap.DConnect
   and seems to be included with errors from DAP implementations
   like TDS (e.g., see
 
http://oceanwatch.pfeg.noaa.gov:8081/thredds/dodsC/satellite/MH/chla/8day.dods?zzz 
).

* In the second box in section 7.2.5, is "dap-version" really required?
   I note that TDS does not include dap-version (e.g., see
 
http://oceanwatch.pfeg.noaa.gov:8081/thredds/dodsC/satellite/MH/chla/8day.ver 

   or
   http://oceanwatch.pfeg.noaa.gov:8081/thredds/dodsC/version ).
   Or is this a mistake in the TDS implementation of the DAP spec?

* In the second box in section 7.2.5, it would be nice if there were a
   description of what the "token" should indicate for dap-version,
   server-version, and data-source-version.
   Specifically, if the token needs to be, or is usually, a specific
   word (e.g., "dods"), it would be nice to mention that.

* In the second box in section 7.2.5, should the final
      "." 1*DIGIT
   be optional?
   I note that the XDODS-Server version number defined in section
   7.1.7 allows for 2 or 3 digits.

* At the very end of section 8.1, perhaps it would be useful to change
      MUST NOT contain any carriage-return line-feed pairs.
   into
      MUST NOT contain any carriage-return line-feed pairs inserted
      as separators. Carriage-return line-feed pairs in the binary data
      section are interpreted as data values.
   or something like that, since #13 and #10 may appear as part of
   the binary data.

* Some of the examples in section 8 include <CRLF> indicators, some
   do not. Some (like the last example) include <CRLF> in some places
   where they must appear, but not other places where they must appear.

Thank you for considering these questions and comments.
I hope they are useful.

Sincerely,

Bob Simons
Satellite Data Product Manager
Environmental Research Division
NOAA Southwest Fisheries Science Center
1352 Lighthouse Ave
Pacific Grove, CA 93950-2079
(831)658-3205
bob.simons at noaa.gov

The contents of this message are mine personally and
do not necessarily reflect any position of the
Government or the National Oceanic and Atmospheric
Administration.
<>< <>< <>< <>< <>< <>< <>< <>< <><



More information about the Opendap-tech mailing list