Print

Print


> XCQL again sorry. I got a reasonable way along implementing a parser,
> and then realised my model was not quite right for generating XCQL. I
> have been resolving prefixes while parsing the CQL. To generate XCQL it
> seems necessary not to resolve them durin parsing - the parse tree needs
> to have them retained if I want to generate XCQL from the parse tree.

Yes.  But it's not difficult to retain them as well as resolving them.


> This lead me to wonder what the XCQL was for exactly. It seems the
> prefixes are like XML namespaces. Currently XCQL uses names like CQL
> that consist of an optional prefix plus a name (dc.title or title). The
> XCQL document also contains prefix declarations.

In 1.0, we allowed XCQL as an optional query type on the grounds that if
you can construct an xml request, you can probably construct an XCQL
query with the same tools.  In practice, it's much much easier to
construct CQL queries.
The only reason then to keep them was to allow self describing complex
terms. But with relation modifiers for term format, that's no longer
necessary either, so we ditched XCQL on the request.

Currently it's returned in the response only in echoedRequest, such that
an XSLT sheet can pick apart the query rather than having to implement a
CQL parser in XSLT (urgh!)


> An alternative way (not necessarily better) of doing things is to not
> include prefixes, but rather have the prefixes all expanded. That is, in

Yes, but then you can't return to an identical query as the user sent.

> The current XCQL form requires the XML to be processed to normalize
> prefixes to namespace URIs before processing, with default namespace
> etc processing taking place. Expanding prefixes would require that all
> the prefix->URI bindings be known when converting CQL query into XCQL,
> which is not true in the current XCQL form.

Yes, if I understand properly.

As a X/CQL processor may not know what 'dc' is supposed to expand to, it
can't expand it.  This is fine if the processor is part of a client, as
the server may know what dc expands to.  The end user will know too, as
they've looked at the explain record for the server.

Rob

--
      ,'/:.          Dr Robert Sanderson ([log in to unmask])
    ,'-/::::.        http://www.o-r-g.org/~azaroth/
  ,'--/::(@)::.      Special Collections and Archives, extension 3142
,'---/::::::::::.    Nebmedes:  http://nebmedes.o-r-g.org:8000/
____/:::::::::::::.
I L L U M I N A T I