[ZOOM] Possible new Connection properites - comments?

Alan Kent ajk at mds.rmit.edu.au
Thu May 20 02:20:16 CEST 2004

On Wed, May 19, 2004 at 11:10:27AM +0100, Robert Sanderson wrote:
> However, I don't see that ZOOM needs a CQL to RPN translator. Either a 
> server can talk CQL natively (via Z or SRW) or it can't.

Have I missed something? I had never seen a proposal to add CQL into
native Z39.50. Is there one around somewhere? (I think EXTERNAL was
added as a query type to Z39.50, so its now possible to drop new
query types in easily, once the ASN.1 and OID etc are defined.)
I had assumed it was necessary to turn CQL to RPN (anyway, it will
be for talking to old servers).

> If it can, then 
> those mappings should be in the ZeeRex file, so no need for automatic 
> translation at all, just send them through. If it can't, which is when 
> you want the translation, then they won't be there ... so the ZeeRex won't 
> help you either way.

Not sure I follow the latter part of this paragraph. We are successfully
using ZeeRex records to translate CQL into RPN. We require certain
information to be defined in the ZeeRex record for it to work (that
is, both a <map><name> and <map><attr> for the same index), but otherwise
its pure ZeeRex. It wont work for all ZeeRex records, but if you set up
the record correctly, it will work.

Note: we are also defining some private extensions to ZeeRex in a
separate namespace allowing CQL relations and relation modifiers to
be defined. This means someone can define new operators etc in a ZeeRex
record *if they choose to*. If not present, we drop back to standard

> > > My own clients/servers use ZeeRex as configuration, and I do see the
> > > attraction, but I don't think that it's low enough level to be Zoomy.
> > > I wouldn't object if others think that it is Zoomy though. :)

Ok, I will do it as a private extension. Easy.

> > Where then do you do CQL to RPN translations? Or do you do CQL to PQN
> > in a higher level API, then use ZOOM to talk PQN to a server?
> The latter.  My CQL->RPN translation happens in my CQL toolkit as there 
> are complex mappings that have to go on... for example for stemming and 
> relevance ranking.
> Or, rather, that I construct my queries natively in CQL and then turn them 
> into the RPN directly -- no need to go through PQF.

How do you pass your RPN query to your ZOOM API? I thought only strings
were supported, not ASN.1 based tree structures. (I am curious.) Or is
this a private extension of your own?

> It's possible to map CQL->RPN without ZeeRex files.  
>   dc.title -> @attr 1=4 
> and so forth.  It just has the same problem as always -- you don't know if 
> the attribute combination sent will be supported by the server.

True, and that is what we are going to do if no ZeeRex record or Explain
information was available.

Ok, I am going to introduce two new private extension options in my
implementation - to point it at a ZeeRex record allowing richer CQL
support, and an option to enable hunting for Explain databases allowing
richer CQL support.

Thanks for the comments everyone.


More information about the ZOOM mailing list