$Id: Changes,v 1.13 2002-11-17 23:29:02 mike Exp $ Revision history for "cql-java" See the bottom of this file for a list of things still to do. 0.4 (IN PROGRESS) - Add support for the new "phonetic" relation modifier, including its mapping in "etc/pqf.properties". - Make prefix-maps bind loosely, so that ``>dc=x a and b'' applies the dc=x binding to both the ``a'' and ``b'' sub-queries. - Change build process so that javadoc documentation is built by "make" in the "docs" directory. - Write javadoc comments for CQLRelation and ModifierSet. - Other improvements to javadoc comments (e.g. describe the `config' parameter to the toPQF() method.) 0.3 Fri Nov 15 12:04:04 2002 - Allow keywords to be used unquoted as search terms. - Add support for serverChoiceRelation (scr). - Add support for prefix-mapping, as in >dc="http://dublincore.org/ dc.title=fish and >"http://dublincore.org/ title=fish The XCQL generated corresponds to Adam's suggested format rather than Rob's, not so much because I prefer it (although I do) as because it's what fell out when I just Coded What Comes Natur'ly. That may need to change, depending on the result of the ZNG list's deliberations. - Fix the parser to normalise relation modifiers to lower case. - Fix the CQLParser test harness not to emit an extraneous blank line at end of XCQL output. - Fix CQLNode documentation to contain a link to YAZ's documentation of Prefix Query Format (PQF) rather than containing a rather unhelpful chunk of BNF. - Change the test/regression Makefile so that "make clean" now does what "make distclean" used to do - the distinction between them is pointless. - Fix a few typos in the documentation. - Move the README file's old "THINGS TO DO" section to the end of this file, the new "Still to do" section. 0.2 Wed Nov 6 23:05:54 2002 - Fix the order of proximity parameters in accordance with the updated official grammar, which now specifies proximity operators of the form prox//// as in ``foo prox/<=/3/sentence bar''. - Make the necessary parts of the CQLNode class and its subclasses public. This means that client code can now walk through parse-trees and so implement its own back-end (e.g. to build BER-friendly data structures using whatever Z39.50 toolkit is preferred.) - Add the toPQF(Properties p) method to CQLNode and its subclasses. This produces a query in YAZ-style Prefix Query Format, which can be trivially translated into a Z39.50 Type-1 query (see, for example, JZKit's code to do so). - Add etc/pqf.properties to configure the toPQF() method. - Add "-p " option to the CQLParser test-harness, indicating that the parsed tree is to be rendered to PQF. - Add PQFTranslationException and its subclasses UnknownQualifierException, UnknownRelationException, UnknownRelationModifierException and UnknownPositionException. - Rename ParameterMissingException to MissingParameterException. - Add javadoc comments for CQLNode and its subclasses. 0.1 Sun Nov 3 20:58:27 2002 - First public release. -- ### Still to do - Fix the bug where "9x" is parsed as two tokens, a TT_NUMBER followed by a TT_WORD. The problem here is that I don't think it's actually possible to fix this without throwing out StreamTokenizer and rolling our own, which we absolutely _don't_ want to do. - Find out what the ZNG group finally settled on as the correct XCQL representation of prefix-mapping, and tweak my toXCQL() output to match that. - Add srw.resultSet support to the toPFQ() method. - Write "overview" file for the javadoc documentation. - Some niceties for the cql-decompiling back-end: * Don't emit redundant parentheses. * Don't put spaces around relations that don't need them. - Consider the utility of yet another back-end that translates a CQLNode tree into JZKit's representation of a Type-1 query tree. That would be nice so that CQL could become a JZKit query-type; but you could achieve the same effect by generating PQF, and running that through JZKit's existing PQN-to-Type-1 compiler. - Many refinements to the random query generator: * Generate relation modifiers * Proximity support * Don't always generate qualifier/relation for terms * Better selection of qualifier (configurable?) * Better selection of terms (from a dictionary file?) * Introduce wildcard characters into generated terms * Generate multi-word terms