[ZOOM] Possible new Connection properites - comments?

Mike Taylor mike at indexdata.com
Mon May 24 17:42:04 CEST 2004


> Date: Mon, 24 May 2004 10:33:16 +1000
> From: Alan Kent <ajk at mds.rmit.edu.au>
>
> > Unless I am missing something, this is not ZeeRex; merely an XML
> > format that resembles it in every syntactic respect.  Sorry.
> 
> I should stop mailing I know

Me too :-)

However --

> However, just to show a simple case of what I am thinking of doing,
> here is a simple subset of a ZeeRex record.
> 
>   <explain>
>     <indexInfo>
>       <index search='true'>
>         <title>Title index</title>
>         <map>
>           <name>title</name>
>         </map>
>         <map primary='true'>
>           <attr type='1'>4</attr>
>         </map>
>       </index>
>     </indexInfo>
>   </explain>
> 
> Nothing CQL specific here is there? Just lists bib-1 attributes and
> a name.

Actually as I read the ZeeRex DTD Commentary at
	http://explain.z3950.org/dtd/commentary.html#5.3
the first of these two <map>s _is_ CQL-specific:

	The set element may contain zero or more title
	elements, and declares the short form used in CQL in
	the name attribute and the identifying URI in the
	identifier attribute.
	[...]
	Each name and set combination is listed in a name
	within a map element. The name element has a set
	attribute, which contains the short name of the
	context set.

This is the _only_ use described for the <name> element in ZeeRex, so
I think it really does mean <CQLIndexName> and is only abbreviated for
brevity.

> I am going to use the <map>/<name> element as my CQL index name.
> The above does not claim its a CQL name - I am going to *use* it
> as a CQL name.

Nope, sorry.  Your fragment:

        <index search='true'>
          <title>Title index</title>
          <map>
            <name>title</name>
          </map>
          <map primary='true'>
            <attr type='1'>4</attr>
          </map>
        </index>

really does mean: "The server supports search on this index in two
ways: using the CQL index called 'title' and the Z39.50 Type-1 query
attribute with type 1, value 4."

> I now have a name I can use in a CQL query to translate it to RPN on
> the client side. This ZeeRex record does not claim the server
> supports CQL natively does it? (Am I missing something?)

Yes :-)

One solution to this problem would be to add a new element in ZeeRex
2.1, that really does mean what you want:

        <index search='true'>
          <title>Title index</title>
          <map primary='true'>
	    <applicationsMayTranslateThisCQLIndexIntoThisMap name="title"/>
            <attr type='1'>4</attr>
          </map>
        </index>

My principle problem with this is that it is in some sense a given
that CQL "title" and Type-1 @attr 1=4 both mean the same thing ("title
search"), so that mapping belongs elsewhere, in a global file, and not
in a per-database description.  Otherwise instead of a single global
statement that CQL "title" can be mapped to Type-1 @attr 1=4 and 1000
database descriptions, I'm just going to end up with 1000 database
description that _each_ say CQL "title" can be mapped to Type-1 @attr
1=4.  And not just that of course -- the same for the other twentyish
DC and Bath elements.  That's not a world I want to live in.

Now you will say that in Real Life, that's exactly what's needed
because different servers do behave differently.  One accepts @attr
1=1003 for author searches, but another can't do that and needs to be
sent @attr 1=1.  "I feel your pain".

A possible solution would be to add the
<applicationsMayTranslateThisCQLIndexIntoThisMap> element (perhaps not
with that exact name), but to add very strong, clear language to the
ZeeRex Commentary saying that "THIS SHOULD ONLY BE USED FOR DATABASES
THAT REQUIRE MAPPING OTHER THAN THE STANDARD ONES DEFINED AT <WHEREVER
THIS STUFF IS DOCUMENTED>."

In theory that's good: you then have a single global file that
describes the well-known standard mapping from CQL's DC and Bath index
sets into BIB-1; and ZeeRex records from 993 databases that don't
include <applicationsMayTranslateThisCQLIndexIntoThisMap> elements
because they are well behaved; and seven other databases whose ZeeRex
records do include <applicationsMayTranslateThisCQLIndexIntoThisMap>
elements because they describe sucky implementations.

Problem is, if we add this element, I bet you a billion dollars (US)
that everyone will stuff their ZeeRex records to the gills with dozens
of redundant <applicationsMayTranslateThisCQLIndexIntoThisMap> elements.

Tricky one.  Rob?  Alan?  Anyone?  :-)

 _/|_	 _______________________________________________________________
/o ) \/  Mike Taylor  <mike at indexdata.com>  http://www.miketaylor.org.uk
)_v__/\  "The idea behind PhyloCode is to get all the bickering done
	 now so the future generations don't have to worry about it"
	 -- T. Michael Keesey

--
Listen to free demos of soundtrack music for film, TV and radio
	http://www.pipedreaming.org.uk/soundtrack/






More information about the ZOOM mailing list