1 $Id: Changes,v 1.34 2007-06-06 13:26:11 mike Exp $
3 Revision history for the CQL-Java package.
4 See the bottom of this file for a list of things still to do.
7 - Support for CQL version 1.2 as described at
8 http://www.loc.gov/standards/sru/next-version.html
9 based on support for version 1.1 as described at
10 http://www.loc.gov/standards/sru/cql/
11 Since this is a significant leap forward, the version
12 numbering increases to the next major version.
14 0.7 Thu Sep 4 22:51:11 2003
15 - Support for profiled relations and relation modifiers:
16 recognise any non-key word as a relation or modifier,
17 rejecting those that are not of the form <prefix>.<name>
18 since these must be explicitly tied to a "context" (what
19 used to be called a qualifier-set or index-set).
21 0.6 Tue Jul 29 23:33:56 2003
22 - Include Ralph's fix for CQLTermNode::toType1BER() to prevent
23 it surrounding multi-word terms in quotes when encoded into
26 0.5 Wed Feb 5 15:50:57 2003
27 - Add an extra back-end method,
28 byte[] toType1BER(Properties config)
29 which generates an opaque BER-encoded PDU suitable for
30 forwarding to Z39.50 server as a pasrt of a searchRequest
31 APDU. This was contributed by Ralph Levan <levan@oclc.org>
32 - Add srw.resultSet support to the toPFQ() method.
33 - Add new resultSetName() method to CQLNode and its
34 subclasses, returning the name of the referenced result-set
35 for a node that is just a result-set reference, and null for
37 - Change regression-test rules for Adam's compiler to use his
38 new front-end cql2xcql instead of the old cqlparse3.
39 - Change the names of the anchoring properties in
40 etc/pqf.properties and the CQLTermNode code that examines
41 them, in accordance with Adam's PQF-renderer's behaviour.
42 This gives more flexibility in terms of generating
43 attributes for end-of-field anchoring. Various other minor
44 tweaks to the pqf.properties file, mostly to the comments.
45 - Change the capitalisation of the project name from
46 "cql-java" to "CQL-Java". That doesn't really make any
47 difference to anything: in particular, file-names such as
48 "cql-java.jar" remain the same.
50 0.4 Thu Nov 21 10:09:26 2002
51 - Add support for the new "phonetic" relation modifier,
52 including its mapping in "etc/pqf.properties".
53 - Make prefix-maps bind loosely, so that ``>dc=x a and b''
54 applies the dc=x binding to both the ``a'' and ``b''
56 - Change the XCQL output to include the nasty (but official)
57 <leftOperand> and <rightOperand> wrapper elements.
58 - Change the XCQL output to use the nasty (but official)
59 rendition of prefix-mapping: a <prefixes> element,
60 containing one of more <prefix>es may appear at the top
61 of either a <searchClause> or a <triple>.
62 - Include test/regression/xmlpp.pl in the distribution: this
63 may now be used for testing whether a CQL compiler produces
64 _equivalent_ XCQL to what's in the regression test, rather
65 than requiring byte-identical output.
66 - Include the reference XCQL output in the distribution, for
67 the regression test suite to run against.
68 - Change build process so that javadoc documentation is built
69 by "make" in the "docs" directory. There's now a top-level
70 makefile that builds the source, runs the test suite and
71 creates the documentation.
72 - Write javadoc comments for CQLRelation and ModifierSet.
73 - Other improvements to javadoc comments (e.g. describe the
74 `config' parameter to the toPQF() method.)
75 - Sort out the licence: I've settled on the LGPL.
76 - Remove the redundant and misleading etc/Grammar file.
77 - Fix up various Maintenance Agency web addresses that have
78 moved in the great ZING-release shake-up.
80 0.3 Fri Nov 15 12:04:04 2002
81 - Allow keywords to be used unquoted as search terms.
82 - Add support for serverChoiceRelation (scr).
83 - Add support for prefix-mapping, as in
84 >dc="http://www.loc.gov/zing/cql/dc-indexes/" dc.title=fish
86 >"http://www.loc.gov/zing/cql/dc-indexes/" dc.title=fish
87 The XCQL generated corresponds to Adam's suggested format
88 rather than Rob's, not so much because I prefer it (although
89 I do) as because it's what fell out when I just Coded What
90 Comes Natur'ly. That may need to change, depending on the
91 result of the ZNG list's deliberations.
92 - Fix the parser to normalise relation modifiers to lower case.
93 - Fix the CQLParser test harness not to emit an extraneous
94 blank line at end of XCQL output.
95 - Fix CQLNode documentation to contain a link to YAZ's
96 documentation of Prefix Query Format (PQF) rather than
97 containing a rather unhelpful chunk of BNF.
98 - Change the test/regression Makefile so that "make clean" now
99 does what "make distclean" used to do - the distinction
100 between them is pointless.
101 - Fix a few typos in the documentation.
102 - Move the README file's old "THINGS TO DO" section to the end
103 of this file, the new "Still to do" section.
105 0.2 Wed Nov 6 23:05:54 2002
106 - Fix the order of proximity parameters in accordance with the
107 updated official grammar, which now specifies proximity
108 operators of the form
109 prox/<relation>/<distance>/<unit>/<ordering>
110 as in ``foo prox/<=/3/sentence bar''.
111 - Make the necessary parts of the CQLNode class and its
112 subclasses public. This means that client code can now walk
113 through parse-trees and so implement its own back-end
114 (e.g. to build BER-friendly data structures using whatever
115 Z39.50 toolkit is preferred.)
116 - Add the toPQF(Properties p) method to CQLNode and its
117 subclasses. This produces a query in YAZ-style Prefix Query
118 Format, which can be trivially translated into a Z39.50
119 Type-1 query (see, for example, JZKit's code to do so).
120 - Add etc/pqf.properties to configure the toPQF() method.
121 - Add "-p <props-file>" option to the CQLParser test-harness,
122 indicating that the parsed tree is to be rendered to PQF.
123 - Add PQFTranslationException and its subclasses
124 UnknownQualifierException, UnknownRelationException,
125 UnknownRelationModifierException and
126 UnknownPositionException.
127 - Rename ParameterMissingException to MissingParameterException.
128 - Add javadoc comments for CQLNode and its subclasses.
130 0.1 Sun Nov 3 20:58:27 2002
131 - First public release.
136 - Test-harness option to use Type1 BER back-end.
137 - Case-insensitive matching for serverChoice and any other
138 special-case qualifiers. (Are the configured qualifiers
139 matched case-insensitively? They should be.)
140 - Prefix-aware matching for serverChoice, so that
141 >x="http://www.loc.gov/zing/srw/dc-indexes/v1.0/" x.resultSet=foo
142 does the right thing.
143 - Extend test-suite for PQF and BER renderers.
144 - Additional test-suite entries for things like
146 - Add a new configuration file that allows arbitrary new
147 relations and relation modifiers to be defined.
148 - Fix the bug where "9x" is parsed as two tokens, a TT_NUMBER
149 followed by a TT_WORD. The problem here is that I don't
150 think it's actually possible to fix this without throwing
151 out StreamTokenizer and rolling our own, which we absolutely
152 - Fix term-to-PQF translation to omit empty properties
153 (for the broken Korean server)
154 - Write "package.html" file for the javadoc documentation.
155 - Some niceties for the cql-decompiling back-end:
156 * Don't emit redundant parentheses.
157 * Don't put spaces around relations that don't need them.
158 - Many refinements to the random query generator:
159 * Generate relation modifiers
161 * Don't always generate qualifier/relation for terms
162 * Better selection of qualifier (configurable?)
163 * Better selection of terms (from a dictionary file?)
164 * Introduce wildcard characters into generated terms
165 * Generate multi-word terms
166 * Generate prefix-mappings