NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Dennis: I am old and slow, but suppose I am in OpeNDAP, are you proposing to separate say constraint expressions and server-side function requests basically the same (ie I just scan what is after each comma) or do you propose some method that signifies in the URL that what follows is an expression? In F-TDS and GDS the form of the URL is: http://machine:port/thredds/dodsC/dataset_expr_{dataset2,dataset3,...}{expression1;expression2;...}.URLsuffix?constraint so it is clear in parsing the URL that there is an expressions. (I am neither for nor against this, just trying to lay out what has been done). This still leaves open what the form of the expression itself (F-TDS and GDS use their own syntax, which opens a can of worms). I know several people on the list have implemented WPS or WCPS, can we get a brief idea of how the request are implemented there, and whether other than the general commands for process control, is there any agreement on how to request functions. BTW, the reason I have asked about the experience of people who are using F-TDS and GDS on whether synchronous requests can cover the large majority of cases, is because I am very partial to systems where the URL completely defines the request, and hence essentially use GET as the verb. The reason for this is long experience. where client code has broken with change sin operating system and/or application, fixes were slow in coming, so many users were left with nothing working. In a system where the URL completely defined the request, say ERDDAP, in Matlab: > link='http://coastwatch.pfeg.noaa.gov/erddap/griddap/erdBAsstamday.mat?sst[(2010-01-16T12:00:00Z):1:(2010-01-16T12:00:00Z)][(0.0):1:(0.0)][(30):1:(50.0)][(220):1:(240.0)]'; > F=urlwrite(link,'cwatch.mat'); > will get the related file, and the entire command is in Matlab, no extra code required. The same in R is: > download.file(url="http://coastwatch.pfeg.noaa.gov/erddap/griddap/erdBAsstamday.nc?sst[(2010-01-16T12:00:00Z):1:(2010-01-16T12:00:00Z)][(0.0):1:(0.0)][(30):1:(50.0)][(220):1:(240.0)]", > destfile="AGssta.nc",mode='wb') > again, "download.file" is an R command. I would prefer to maintain this simplicity and cover 80% of the cases if possible, than cover the rest but where more complex, application specific code would have to be developed and maintained. -Roy On Jun 28, 2012, at 12:31 PM, Dennis Heimbigner wrote: > In my more extended version of this proposal, I allow > for namespaces so that server-specific, and even > user-specific functions can be defined. I also > propose to allow for the uploading of new functions. > > =Dennis Heimbigner > Unidata > > John Caron wrote: >> On 6/28/2012 1:12 PM, Dennis Heimbigner wrote: >>> Server-Side Expression Proposal >>> ------------------------------- >>> >>> A semantically nonsensical, but syntactically correct, example might >>> look something like this. >>> >>> $x=f("string17",g(h(12))),f2($x,p[0:3:10]) >>> >>> The idea is that a URL would contain in its query section >>> (the part after the '?') a set of comma separated expressions. >>> An expression would be either >>> 1. a function invocation, or >>> 2. an assignment of a function invocation to >>> a single-assignment variable. >>> >>> A function invocation is your typical one of the form >>> f(arg1,arg2,...,argn) >>> where the arguments can be any of the following. >>> 1. another, nested, function invocation >>> 2. a constant (string, number, etc) >>> 3. a dataset >>> 4. a variable. >>> >>> The value of a function is a dataset (see below) so that >>> functions can be nested/composed. >>> >>> The term "dataset" is intended to cover all of the following >>> possibilities. >>> 1. whole dataset (e.g. a DAP Dataset or a netcdf dataset) >>> 2. a variable within a dataset (variable here is not be confused >>> with a single-assignment variable. >>> 3. a range expression applied to a variable within a dataset >>> p[0:1:30], for example. >>> >>> The term "single-assignment" means that a variable can have >>> a value assigned to it exactly once. The reason for using >>> single-assignment is that allows for the representation of >>> any possible data-flow without introducting the notion of >>> mutable state. >>> >>> The above is just a sketch, and there are many details >>> I am ignoring (such as typing and namespaces). >>> >>> =Dennis Heimbigner >>> Unidata >> Interesting. could you give as many examples as you can? >> are the functions all predefined, or can a user define them? >> _______________________________________________ >> thredds mailing list >> thredds@xxxxxxxxxxxxxxxx >> For list information or to unsubscribe, visit: >> http://www.unidata.ucar.edu/mailing_lists/ > > _______________________________________________ > thredds mailing list > thredds@xxxxxxxxxxxxxxxx > For list information or to unsubscribe, visit: > http://www.unidata.ucar.edu/mailing_lists/ ********************** "The contents of this message do not reflect any position of the U.S. Government or NOAA." ********************** Roy Mendelssohn Supervisory Operations Research Analyst NOAA/NMFS Environmental Research Division Southwest Fisheries Science Center 1352 Lighthouse Avenue Pacific Grove, CA 93950-2097 e-mail: Roy.Mendelssohn@xxxxxxxx (Note new e-mail address) voice: (831)-648-9029 fax: (831)-648-8440 www: http://www.pfeg.noaa.gov/ "Old age and treachery will overcome youth and skill." "From those who have been given much, much will be expected" "the arc of the moral universe is long, but it bends toward justice" -MLK Jr.
thredds
archives: