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