Re: XML-QL Follow up

Michael Kay (M.H.Kay@eng.icl.co.uk)
Wed, 28 Oct 1998 12:14:47 -0000


> For instance, I'd like to be able to issue something like:
>select * from invoices where value(<total>) > 1000
>or
>select * from musicians where name like 'Garcia'
>
Yes I think there's a need for this.
Some observations:
* You need to be clear whether you are aiming for a "boolean" style of
predicate (every document either matches it or doesn't) or a "relevance
ranking" approach. Your two examples illustrate the two types. SQL doesn't
extend neatly to relevance ranking, which is far more effective than boolean
queries for information retrieval applications.
* If you want to do boolean queries, one approach is to define a mapping
from XML to an object structure (the DOM?) and then use OQL. However, this
would probably lead to very complex queries, with a lot of "there exists"
and "for all" qualifiers to handle repeated child elements. If you want to
reduce the complexity, you need to define a lot of "intuitive
interpretations", e.g. "name like 'Garcia'" means "there exist one or more
child elements N such that N.tag='name' and N.content.islike('Garcia')". The
danger is that these can trip people over if their intuition is wrong - e.g.
what does "name not like 'Garcia'" mean?
* The real need is to make XML documents accessible to web search engines,
where (a) the query language is already defined, and (b) the vast majority
of queries are extremely simple. So it's not a new query language that's
needed, but an intelligent interpretation of an existing query language in
an XML context.

Mike Kay