DAP3/4

From OPeNDAP Documentation
Revision as of 18:52, 24 June 2008 by Jimg (talk | contribs)
⧼opendap2-jumptonavigation⧽

DAP2 and DAP4 Specification efforts

The DAP4 specification work has morphed into a DAP2 and DAP4 specification effort. We are going to write a formal specification for DAP2 which will be submitted to NASA/ESE for ratification as an offical NASA/ESE standard.

This page holds a collection of the DAP4 specification information along with a plan for writing the DAP2 specification.


[DAPFourSpec DAP4 Specification Issues] A collection of DAP Data Model (mostly) issues

Organization of the DAP2 specification

  • The DAP2 specification will be broken down into two or more documents:

1 The Data Model description --- dap_2_data_model.tex. This will hold information about all of the essential parts of DAP 2.0. Those include:

  • Variables
  • Attributes
  • Characterization of a data source
  • Request form
  • Response form
  • A discussion of, and pointers to, notes about the `services' such as ASCII, HTML, ...

2 A note describing the ASCII response 3 Other notes as people see fit.

-- Main.JamesGallagher - 12 May 2004

Changes to the DAP 2.0 implementation

I'm not sure if these should be writen into the 2.0 (2.x?) spec or if we should add these into a 3.x spec and pursue an iterative development of 3.x specs on the way to a 4.0 spec. These _are_, however, ideas that came out of reading over the old DAP 2.0 document.

1 Change XDODS-Server to XDAP-Version: the response should say what version of the DAP is supported, not what version of the server is responding. 2 Add support (maybe in XDAP-Version 2.1?) for reliable error delivery 3 Support for 'any character in a name' using double quotes.

-- Main.JamesGallagher - 12 May 2004

DAP 2 specification draft snapshot:

  • [%ATTACHURL%/dap_2_data_model.pdf dap_2_data_model.pdf]: The latest version of the spec, as a PDF file. This snapshot almost certainly contains errors, missing stuff, et cetera. It's here to solicit comments but not to provide guidance for implementors!

Editorial changes:

  • Need to conform to ESE RFC 003
  • Check the glossary and acronyms. I think both of these sections are hosed. OTOH, that's probably best saved for later.
  • One other thing: we'll need to check all of the section refs to make sure they are correct given the cut & paste job we're doing with the DAP 4 text...
  • Check all the footnotes and make sure none of them have MUST, MAY, ... If so, move to the body of the text.

Issues with the draft: 1 Sec 2.4, Names: This entire section (2.4) should be moved inside Sec 5. Names, other than that they exist should not be part of the 'information model.' My bad. 2 Sec 2.7, Attribute Structures: Needs to be written. DONE; sections reworked and re-numbered 3 Sec. 5.2, Response Bodies: I think we need to be more formal. 4 Add a section after 5.2 which has example Request URLs and the responses. We should show the entire response document, MIME headers and all and we should show some data including Arrays and Sequences (since there are some quirks associated with those). 5 Lastly, I think we should be thinking about things that seem like a failed idea. Here's my list:

  • The List data type; I don't know of any client that can handle this. I suggest we remove it.
  • Error objects with embedded Tcl or Java programs; like List, it has never worked.
  • Attribute Aliases; I've argued these are completely necessary, but I was wrong. Only the HDF4 server used them but they are broken there.

If we're given the opportunity to think about DAP 2.1, I'd suggest: 1 Adding a XDAP-Version header, 2 Chunked encoding for data (so that we can have reliable error delivery in all cases) and 3 Eliminating the repetition of the array size for an array of Atomic types.

-- Main.JamesGallagher - 19 May 2004


Completed Changes From DAP2

OPeNDAP has three implementations of the DAP that it maintains: libdap (C++), Java-OPeNDAP (Java) and Ocapi (C; client-side only). There are other implementations which have been developed by other groups.

Features of DAP3/4 implemented in libdap

libdap is the reference implementation for DAP. Here are the DAP3 features implement in it so far:

  • DDX (although this implementation needs significant review and update)
  • XDAP header for the protocol version
  • Updated Version response which provides information about software versions and DAP version.

Proposed Changes To DAP2

Most desirable features

This is a list of the very most desirable features proposed for DAP3 (which when final will become DAP4). Only the very most important items are listed here, other documents list everything that's ever been suggested:

  • Reliable error delivery when accessing data (known defect);
  • Use of Multi-part MIME for DataDDX (feature --> adherence to standard where applicable);
  • Develop the DataDDX (feature --> adherence to standard ...);
  • Ability to return checksums from data requests (feature with several use cases).