-$Id: Changes,v 1.1 2002-11-06 00:05:57 mike Exp $
+$Id: Changes,v 1.26 2002-12-09 17:01:03 mike Exp $
-Revision history for "cql-java"
+Revision history for the CQL-Java package.
+See the bottom of this file for a list of things still to do.
-0.2 (IN PROGRESS)
+0.5 (IN PROGRESS, currently at RC1)
+ - Add an extra back-end method,
+ byte[] toType1(Properties config)
+ which generates an opaque BER-encoded PDU suitable for
+ forwarding to Z39.50 server as a pasrt of a searchRequest
+ APDU. This was contributed by Ralph Levan <levan@oclc.org>
+ - Change regression-test rules for Adam's compiler to use his
+ new front-end cql2xcql instead of the old cqlparse3.
+ - Change the names of the anchoring properties in
+ etc/pqf.properties and the CQLTermNode code that examines
+ them, in accordance with Adam's PQF-renderer's behaviour.
+ This gives more flexibility in terms of generating
+ attributes for end-of-field anchoring.
+ - Fix comment in etc/pqf.properties (claimed that the Type-1
+ "string" attribute was "phrase"). Just a documentation
+ error.
+ - Change the capitalisation of the project name from
+ "cql-java" to "CQL-Java". That doesn't really make any
+ difference to anything: in particular, file-names such as
+ "cql-java.jar" remain the same.
+ - Recreate last-in-field support
+ - Add srw.resultSet support to the toPFQ() method. I've not
+ attempted this for the toType1() method: Ralph will have to
+ do it.
+
+0.4 Thu Nov 21 10:09:26 2002
+ - 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 the XCQL output to include the nasty (but official)
+ <leftOperand> and <rightOperand> wrapper elements.
+ - Change the XCQL output to use the nasty (but official)
+ rendition of prefix-mapping: a <prefixes> element,
+ containing one of more <prefix>es may appear at the top
+ of either a <searchClause> or a <triple>.
+ - Include test/regression/xmlpp.pl in the distribution: this
+ may now be used for testing whether a CQL compiler produces
+ _equivalent_ XCQL to what's in the regression test, rather
+ than requiring byte-identical output.
+ - Include the reference XCQL output in the distribution, for
+ the regression test suite to run against.
+ - Change build process so that javadoc documentation is built
+ by "make" in the "docs" directory. There's now a top-level
+ makefile that builds the source, runs the test suite and
+ creates the documentation.
+ - Write javadoc comments for CQLRelation and ModifierSet.
+ - Other improvements to javadoc comments (e.g. describe the
+ `config' parameter to the toPQF() method.)
+ - Sort out the licence: I've settled on the LGPL.
+ - Remove the redundant and misleading etc/Grammar file.
+ - Fix up various Maintenance Agency web addresses that have
+ moved in the great ZING-release shake-up.
+
+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://www.loc.gov/zing/cql/dc-indexes/" dc.title=fish
+ and
+ >"http://www.loc.gov/zing/cql/dc-indexes/" dc.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
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 javadoc comments for CQLNode and subclasses.
- - Add the toPQF(Properties p) method to CQLNode and subclasses.
- (### NOT YET FINISHED)
- - Add UnknownQualifierException and UnknownRelationException.
+ - 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 <props-file>" option to the CQLParser test-harness,
indicating that the parsed tree is to be rendered to PQF.
- - Add etc/pqf.properties to configure to toPQF() method.
+ - 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
+ - Fix term-to-PQF translation to omit empty properties
+ (for the broken Korean server)
+ - Write "package.html" 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.
+ - 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
+ * Generate prefix-mappings
+