Re: "contains" must be optional

At 03:16 PM 6/30/98 PDT, Babich, Alan wrote:

Yes, of course 'contains' must be optional.  I do not think anyone
disagrees with that.  (Speak up if you do.)

What we have yet to agree on is the MEANS by which such optionality is
provided.  There are at least two alternatives:

1) the operator itself is optional.  A server need not recognize it
and MUST return an error if it is used.

2) Every DASL server MUST recognize every operator, and MUST treat the
results of applying unimplemented operators as unknown.  So implementation
is optional, but the syntax isn't.

To elaborate:  Consider a server with no CBR, and the search 
 (and
   (= author  "Gates")
   (contains "I love Janet"))

In case 1 you get back an error (probably 400, perhaps with a reply body
containing an explanation of the problem in natural language), in case 2
you get back an empty list because contains returns unknown.  You may also
get back an explanatory text in the statusdescription, maybe.

For case 2, one could re-write the query above to be
(and
   (= author  "Gates")
   (or (contains "I love Janet")
       (= (contains "I love Janet") unknown)))

On servers without CBR, this becomes just a test on the author property
alone, which is the best you can do.  On servers with CBR, it applies the
additional test.  I have no idea whether this re-writing would be good
idea.  (Clearly it's bad if it causes the contains predicate to run twice!)

We should pick exactly one of these two alternatives, unless there's a
third one.  I don't know which one is better.

Received on Tuesday, 30 June 1998 21:17:12 UTC