Sequences, Lists, and Relational Constraint Expressions

Joe Sirott Joe.Sirott at noaa.gov
Fri May 5 15:07:20 PDT 2006


Hi John,

I don't know if there are /any /OpenDap server implementations that 
fully implement the selection constraints as described in the OpenDap 
spec. For instance, if I try and constrain a string variable with a 
netCDF server I get a parse error (although I could be doing something 
wrong). In practice, it's difficult to see how a server /could/ 
practically implement all of the mandated constraints -- imagine having 
to search a database of several million profiles with several 
constraints on variable values. Even though such a server would be 
obeying the "letter of the law," a timeout after five minutes is 
probably worse behavior for a client then an immediate error message.

The practical alternative is to use some convention. Dapper already uses 
an ad-hoc convention that might be useful to you (as Steve mentioned) 
since it does identify the coordinate variables and allows constraints 
on those variables. 


John Caron wrote:
>
>
> Steve Hankin wrote:
>> Hi John,
>>
>> This dilemma is the result of a mismatch between the "discipline 
>> neutral" generality of the OPeNDAP DAP and the relatively focussed 
>> data models that Unidata is working with.  The obvious way to address 
>> this is through conventions -- just as the CF conventions are already 
>> needed in order to map the generality of netCDF onto the Common Data 
>> Model.
>>
>> It seems to me that the DAPPER conventions, if fleshed out, could 
>> address the problem that you pose.  Fully fleshed out DAPPER 
>> conventions would clarify the process for identifying the independent 
>> (coordinate) variables, georeferencing, the requirement (or not) for 
>> a 2-level Sequence, the scope of structures that would be permitted 
>> inside the sequences, the adoption (or not) of CF standard names, 
>> etc.   Through the conventions one could also impose restrictions (or 
>> convey information to clients) on the types of relational operations 
>> that are allowed and/or the variables to which they can be applied.
>
> Hmmm, I dont think you could use conventions to alter the semantics of 
> the data access protocol. That is, operations will still be allowed, 
> but they may fail because they exceed resource limits.
>
> The problem is we want to model our data with variable length arrays, 
> and right now we only have Sequences to do that, which require 
> supporting RCE on all fields. We could move to supporting a List data 
> type, but that has no RCE on any fields. I want to support RCE on some 
> fields of a variable length array, because I can only do that 
> efficiently on some of the fields. (This is true even with an RDB, 
> namely the fields that you have indexed).
>
> More abstractly, this is an example where I (ideally) want to express 
> what opendap calls are practical. The client should be able to exmine 
> the DDS and decide how to best get the info it wants. Because of the 
> generality of opendap (i assume following relational theory) i cant do 
> that.
>
> So you are suggesting that instead of indicating "what is practical" 
> in the DDS, we should do it at some layer above that, eg the "Dapper 
> convention layer". Thats probably what we have to do if we cant do it 
> in the DDS. I wanted to see if anyone else had other ideas before we 
> follow that path, though.
>
>
>>
>>    - steve
>>
>> =================================================
>>
>> John Caron wrote:
>>
>>> Hi James, et al:
>>>
>>> One problem I have in implementing opendap sequences is that you 
>>> have to support relational constraint expressions (RCE) on all of 
>>> the fields of a sequence. This only scales if you use a DBMS. I 
>>> would prefer to support RCE on some of the fields, eg the space and 
>>> time coordinates and station ids.
>>> Im wondering if anyone has this problem, and if there is anything to 
>>> do about it?
>>>
>>



More information about the Opendap-tech mailing list