Re: 20000712: a question


tomw wrote:
> 
> Ethan:
> 
> > We've thought more about the first option than the second because:
> > option one would also be valuable outside the VisAD community; and
> > with option two, the use of attribute conventions would have to be
> > added instead of taking advantage of the netCDF conventions already
> > in the VisAD netCDF adaptor.
> 
> I agree about the first option.  As long as VisAD uses the Java NetCDF
> library, and DODS provides the mechanism to extend these classes with
> ones which would, when needed use DODS access, it would allow anyone
> with an app that uses NetCDF to use DODS -- just like in the C and
> Fortran world, right?  That would seem to be the all-around best
> solution.
> 
> (One of the reasons I would not want to make a DODS VisAD adapter is
> that there is a lot of 'magic' (read: hard work) that Steve Emmerson did
> in the NetCDF adapter to turn the metadata into the proper MathTypes in
> VisAD and make Data objects that are directly usable.  It would seem the
> same kind of work would be needed to convert a DODS data object, as
> well.)
> 
> Does someone see this differently?
> 

well of course i see it differently :^}

It seems to me that the problem is that the netcdf API is not high level 
enough for what we want to acheive (eg create visad objects with
semantics 
that match the data). I suspect DODs isnt either, but im not sure. 
i dont see how you can adequately represent the data semantics unless 
you are parsing something like a netcdf Convention, but perhaps I'm
missing 
something. it seems like the problem must be compounded if you
try to map DODS to netcdf (partly because the two APIs have some
impedence 
mismatch).

One solution that keeps coming up for me is to create pluggable semantic 
parsers specific to various datasets and/or Conventions. Also create C/
Fortran/Java data APIs for the data _writers_, and get away from 
specifying things at the netcdf attribute level (we will still need
that, 
but most users would prefer a higher level API). 

I plan on looking at DODS (and ADDE) more closely so I can understand
them
better with respect to these issues. Any pointers appreciated.