-$Id: Changes,v 1.19 2002-11-20 23:11:15 mike Exp $
+$Id: Changes,v 1.46 2008-05-28 10:03:53 mike Exp $
-Revision history for the "cql-java" package.
+Revision history for the CQL-Java package.
See the bottom of this file for a list of things still to do.
-0.4 Thu Nov 21 00:10:21 2002
+The work for releases 1.0, 1.2 and 1.2.1 was sponsored by the National
+Library of Australia, whose help we gratefully acknowledge.
+
+1.8 IN PROGRESS
+ - API changes: more information hiding, introduce getters
+ - make some contants read-only
+
+
+1.7 Tue Jul 27 17:35:25 BST 2010
+ - Patch from Ralph LeVan to recognise
+ "qualifier.dc.creator"-like properties as well as
+ "index.dc.creator" -- backwards compatible with version
+ prior to 1.0 as well as those subsequent.
+ - Reinstate the "exact" relation even when v1.2 is in effect
+ (the default), despite its removal from v1.2 of CQL. In
+ practice, it seems to be in fairly widespread use, and
+ little real purpose is served in removing it.
+
+1.6 Thu Jun 17 10:56:24 BST 2010
+ - Fix the bug where "9x" is lexed as two tokens, a TT_NUMBER
+ followed by a TT_WORD, making unquoted search-terms such as
+ 2010-06-17 syntax errors. Thanks to Erik Hetzner
+ <erik.hetzner@ucop.edu> for the patch.
+
+1.5 Tue May 25 16:44:35 CEST 2010
+ - Fix recognition of word-relations to correctly match what is
+ specified in the CQL v1.1 and v1.2 documents. In
+ particular, "encloses" and "within" are recognised, so that
+ Masterkey's use of "encloses" for IP range authentication
+ works again.
+ - Update regression tests accordingly.
+ - Extend test/random/ to emit summary line of successful
+ recompilations.
+
+1.4 Thu May 20 00:38:40 BST 2010
+ - Add support for interpreting sequences of non-keywords as a
+ single multi-word term rather than a broken INDEX RELATION
+ TERM triplet. This means that "oxford street" is a valid
+ query rather than a syntax error, and "tottenham court road"
+ is what it looks like rather than a search for the word
+ "court" related by the relation "court" to the index
+ "tottenham". Note that the word-formed relations "any",
+ "all", "exact" and (for CQL v1.2) "scr" are still treated
+ specially, as are profiled relations in context sets, of the
+ form <set>.<name>.
+
+1.3 Wed May 28 11:02:00 BST 2008
+ - Add getSortIndexes() to CQLSortNode, as suggested by Marcel
+ Versteeg <Marcel.Versteeg@KB.nl>
+
+1.2.1 Mon Aug 6 16:54:54 BST 2007
+ - Contructors for the CQLParser class are made public (as they
+ should have been all along).
+
+1.2 Tue Jul 3 17:53:28 BST 2007
+ - Support for CQL version 1.2 as described at
+ http://www.loc.gov/standards/sru/next-version.html
+ The most significant part of the v1.2 change is support for
+ sorting, but as of this writing (29th June) the official SRU
+ maintenance agency web site at
+ http://www.loc.gov/standards/sru/index.html
+ does not include any specification for CQL sorting.
+ Therefore the original proposal at
+ http://zing.z3950.org/cql/sorting.html
+ is still considered canonical.
+
+1.0 Fri Jun 29 14:10:28 BST 2007
+ - Support for version 1.1 as described at
+ http://www.loc.gov/standards/sru/specs/cql.html
+ Since this is a significant leap forward, the version
+ numbering increases to the next major version.
+ - "Qualifiers" renamed as "indexes" throughout, to match what
+ is now universal CQL terminology.
+
+ PLEASE NOTE THE FOLLOWING INCOMPATIBLE API CHANGES
+ - The class UnknownQualifierException is replaced by
+ UnknownIndexException.
+ - The CQLTermNode method getQualifier() is replaced by
+ getIndex().
+
+0.7 Thu Sep 4 22:51:11 2003
+ - Support for profiled relations and relation modifiers:
+ recognise any non-key word as a relation or modifier,
+ rejecting those that are not of the form <prefix>.<name>
+ since these must be explicitly tied to a "context" (what
+ used to be called a qualifier-set or index-set).
+
+0.6 Tue Jul 29 23:33:56 2003
+ - Include Ralph's fix for CQLTermNode::toType1BER() to prevent
+ it surrounding multi-word terms in quotes when encoded into
+ BER packet.
+
+0.5 Wed Feb 5 15:50:57 2003
+ - Add an extra back-end method,
+ byte[] toType1BER(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>
+ - Add srw.resultSet support to the toPFQ() method.
+ - Add new resultSetName() method to CQLNode and its
+ subclasses, returning the name of the referenced result-set
+ for a node that is just a result-set reference, and null for
+ anything else.
+ - 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. Various other minor
+ tweaks to the pqf.properties file, mostly to the comments.
+ - 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.
+
+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''
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 the what's in the regression test,
- rather than requiring byte-identical output.
+ _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
--
### 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.
- - Add srw.resultSet support to the toPFQ() method.
- - Write "overview" file for the javadoc documentation.
+ - Test-harness option to use Type1 BER back-end.
+ - Case-insensitive matching for serverChoice and any other
+ special-case qualifiers. (Are the configured qualifiers
+ matched case-insensitively? They should be.)
+ - Prefix-aware matching for serverChoice, so that
+ >x="http://www.loc.gov/zing/srw/dc-indexes/v1.0/" x.resultSet=foo
+ does the right thing.
+ - Extend test-suite for PQF and BER renderers.
+ - Additional test-suite entries for things like
+ case-sensitivity.
+ - Add a new configuration file that allows arbitrary new
+ relations and relation modifiers to be defined.
+ - 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.
- - 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
* Generate multi-word terms
* Generate prefix-mappings
+