[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Status of the CALSCH working group (QUERYID)




Doug replied on 11/07/2003 04:14:11 PM:
> > EXPAND and QUERYID -- I am having a hard time understanding how stored
> > queries can be useful without search wildcards. Can anyone explain
> > this to me? We dropped the ability to auto execute stored queries.
>
> There is NO restriction that the results of fetching a stored query
> return static results (the
>  same is true for all components) . So I could define (using unspecified
> admin tools) a stored
> query called 'TODAY' that returns a dynamically returns a VQUERY when
> run returns the results of todays events from several calendars.

A: There were several questions regarding the usefulness and behaviour of stored queries so the WG (except for Doug) decided to defer the entire concept to post CAP 1.0 so they could be adequately addressed.

B: The original intent was to make it easier for 'thin' clients to do normal queries and save them bandwidth and memory footprints.  However we never actually had wildcarding in the language (or we lost it at some point) so we failed to fulfil the original intent.

C: Anyone can provide a stored VQUERY on their implementation (as an extension to CAP 1.0).  Any CUA should be able to retrieve it using CAP 1.0 by simply SEARCHing for the QUERYID:TODAY and the CS should return it.  Unfortunately there is nothing in the CAP 1.0 spec that would be able to do this since "today" is a concept that is not encodable using the current query linga.  As such doing what Doug suggested results in a VQUERY that exists in the CS that can be referenced by using QUERYID but that is NOT retrievable by the CUA.  This means that the user has NO way to know what query "TODAY" is (and its worse if the CS is in a different TZ than the user so they can be in different days when the query is run!).  Plus, it is not safe for CUAs to assume or use canned 'special' queries that are not retrievable.  Product A's "TODAY" query may be different from Product B's "TODAY" so mixing CUAs and CSs could have incorrect results.

> When we had auto-execute, then you could run them without fetching
> them. Now you have to fetch them and then run them (I still do not see
> why that is better).


You dont have to fetch them and then send them back, you simply craft them locally and send them.  Its also been demonstrated that the savings in octets is minimal (~50-60 I think) so making ALL CS's implement stored queries is something I find questionable.  Also, just how would someone using your CUA that wants to use the stored "TODAY" query work when talking with someone elses CS that does not support stored queries?  It would have to construct the query itself and the just send it to the CS.

Given the CAP 1.0 query language we have, the CUA must rewrite nearly all queries related to frequently performed operations (ie: What alarms trigger in the next 15 minutes? What entries are on my calendar for Today? etc) so what benefit there may be to stored queries is offset to the degree that the CUA has to rewrite the query and resave it.

> All of my requests for such an explanation have been ignored by those
> that do not want
> the CS to be able to have builtin, stored, or dynamically created
> queries. PDAs and
> devices on low bandwidth or high latency connections need this feature.

Unless all CUAs (thin and fat) have the same fixed list of stored queries that do things that are NOT representable in CAP-Query Language, there is little if any demonstratable savings in keeping stored queries for CAP 1.0 as they were defined.  

You also neglect to factor in the need of the thin clients to have to rewrite stored queries to keep them accurate (ie: rewrite the bounds of the alarm TRIGGER check every 15 minutes).  

In addition I see no benefit in relying on remotely stored queries that are not currently encodable in our query language thus unrepresentable in response to this simple SEARCH:

      C: Content-Type: text/calendar
     C:
     C: BEGIN:VCALENDAR
     C: VERSION:2.0
     C: PRODID:-//someone's prodid
     C: CMD:SEARCH
     C: TARGET:relcal1
     C: BEGIN:VQUERY
     C: QUERY:SELECT * FROM VQUERY
     C:  WHERE QUERYID >= 'TODAY'
     C: END:VQUERY
     C: END:VCALENDAR


that are ~product specific and thus non-interoperable (or even in conflict).

Bruce
===========================================================================
Bruce Kahn                                INet: Bruce_Kahn@xxxxxxxxxxxxxxxx
Messaging & Collaboration                 Phone: 978.399.6496
IBM Software Group                         FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...