"Where" condition too general vis a vis "contains"

The current "where" condition query syntax is too general
as far as the way it allows "contains" to be used:

Document management systems are one important use case for
DASL, so we should try to accommodate them. There are
at least two ways document management systems can have content
based retrieval functionality: (1) Put everything into
an engine that can handle mixed hard property conditions and
full text conditions; (2) put the hard properties in an RDBMS,
and use some other vendor's engine for content based
retrieval. All the systems I am familiar with do it the
second way. That doesn't necessarily mean the first way 
doesn't occur in nature or won't occur in nature in the future.
It just means that case (2) is important. Case (2) is the 
problem case.

Since two engines are involved (an RDBMS and a CBR engine),
you must either run the query on the RDBMS and filter the
results past the CBR engine, or you must run the query on
the CBR engine, and filter the results past the RDBMS.
We ran into this problem in the AIIM demo code. What
we did may be relevant to DASL: We made the restriction that
when hard property conditions and content based conditions
are mixed, the top level operator in the "where" condition
had to be an AND operator with two operands: The first
operand had to be a pure hard property condition, and the
second operand had to be a pure CBR condition. (If the
top level operator were OR with two operands, that would
work too.)

However, instead of even that much generality, I would
propose the following for simplesearch: If the "contains"
operator is used, it is the entire "where" condition.
That ought to be good enough for 1.0 . We can allow
generalizations of this in later enhancements to the
query syntax. Remember -- "contains" is a "pass through"
operator. It can handle arbitrary Boolean combinations
of content based retrieval conditions and hard property
conditions -- whatever the full text vendor allows.

Alan Babich

Received on Sunday, 12 July 1998 19:00:18 UTC