1 $Id: Changes,v 1.27 2002-12-11 17:14:20 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.
6 0.5 (IN PROGRESS, currently at RC1)
7 - Add an extra back-end method,
8 byte[] toType1BER(Properties config)
9 which generates an opaque BER-encoded PDU suitable for
10 forwarding to Z39.50 server as a pasrt of a searchRequest
11 APDU. This was contributed by Ralph Levan <levan@oclc.org>
12 - Change regression-test rules for Adam's compiler to use his
13 new front-end cql2xcql instead of the old cqlparse3.
14 - Change the names of the anchoring properties in
15 etc/pqf.properties and the CQLTermNode code that examines
16 them, in accordance with Adam's PQF-renderer's behaviour.
17 This gives more flexibility in terms of generating
18 attributes for end-of-field anchoring.
19 - Fix comment in etc/pqf.properties (claimed that the Type-1
20 "string" attribute was "phrase"). Just a documentation
22 - Change the capitalisation of the project name from
23 "cql-java" to "CQL-Java". That doesn't really make any
24 difference to anything: in particular, file-names such as
25 "cql-java.jar" remain the same.
26 - Recreate last-in-field support
27 - Add srw.resultSet support to the toPFQ() method.
29 0.4 Thu Nov 21 10:09:26 2002
30 - Add support for the new "phonetic" relation modifier,
31 including its mapping in "etc/pqf.properties".
32 - Make prefix-maps bind loosely, so that ``>dc=x a and b''
33 applies the dc=x binding to both the ``a'' and ``b''
35 - Change the XCQL output to include the nasty (but official)
36 <leftOperand> and <rightOperand> wrapper elements.
37 - Change the XCQL output to use the nasty (but official)
38 rendition of prefix-mapping: a <prefixes> element,
39 containing one of more <prefix>es may appear at the top
40 of either a <searchClause> or a <triple>.
41 - Include test/regression/xmlpp.pl in the distribution: this
42 may now be used for testing whether a CQL compiler produces
43 _equivalent_ XCQL to what's in the regression test, rather
44 than requiring byte-identical output.
45 - Include the reference XCQL output in the distribution, for
46 the regression test suite to run against.
47 - Change build process so that javadoc documentation is built
48 by "make" in the "docs" directory. There's now a top-level
49 makefile that builds the source, runs the test suite and
50 creates the documentation.
51 - Write javadoc comments for CQLRelation and ModifierSet.
52 - Other improvements to javadoc comments (e.g. describe the
53 `config' parameter to the toPQF() method.)
54 - Sort out the licence: I've settled on the LGPL.
55 - Remove the redundant and misleading etc/Grammar file.
56 - Fix up various Maintenance Agency web addresses that have
57 moved in the great ZING-release shake-up.
59 0.3 Fri Nov 15 12:04:04 2002
60 - Allow keywords to be used unquoted as search terms.
61 - Add support for serverChoiceRelation (scr).
62 - Add support for prefix-mapping, as in
63 >dc="http://www.loc.gov/zing/cql/dc-indexes/" dc.title=fish
65 >"http://www.loc.gov/zing/cql/dc-indexes/" dc.title=fish
66 The XCQL generated corresponds to Adam's suggested format
67 rather than Rob's, not so much because I prefer it (although
68 I do) as because it's what fell out when I just Coded What
69 Comes Natur'ly. That may need to change, depending on the
70 result of the ZNG list's deliberations.
71 - Fix the parser to normalise relation modifiers to lower case.
72 - Fix the CQLParser test harness not to emit an extraneous
73 blank line at end of XCQL output.
74 - Fix CQLNode documentation to contain a link to YAZ's
75 documentation of Prefix Query Format (PQF) rather than
76 containing a rather unhelpful chunk of BNF.
77 - Change the test/regression Makefile so that "make clean" now
78 does what "make distclean" used to do - the distinction
79 between them is pointless.
80 - Fix a few typos in the documentation.
81 - Move the README file's old "THINGS TO DO" section to the end
82 of this file, the new "Still to do" section.
84 0.2 Wed Nov 6 23:05:54 2002
85 - Fix the order of proximity parameters in accordance with the
86 updated official grammar, which now specifies proximity
88 prox/<relation>/<distance>/<unit>/<ordering>
89 as in ``foo prox/<=/3/sentence bar''.
90 - Make the necessary parts of the CQLNode class and its
91 subclasses public. This means that client code can now walk
92 through parse-trees and so implement its own back-end
93 (e.g. to build BER-friendly data structures using whatever
94 Z39.50 toolkit is preferred.)
95 - Add the toPQF(Properties p) method to CQLNode and its
96 subclasses. This produces a query in YAZ-style Prefix Query
97 Format, which can be trivially translated into a Z39.50
98 Type-1 query (see, for example, JZKit's code to do so).
99 - Add etc/pqf.properties to configure the toPQF() method.
100 - Add "-p <props-file>" option to the CQLParser test-harness,
101 indicating that the parsed tree is to be rendered to PQF.
102 - Add PQFTranslationException and its subclasses
103 UnknownQualifierException, UnknownRelationException,
104 UnknownRelationModifierException and
105 UnknownPositionException.
106 - Rename ParameterMissingException to MissingParameterException.
107 - Add javadoc comments for CQLNode and its subclasses.
109 0.1 Sun Nov 3 20:58:27 2002
110 - First public release.
115 - Fix the bug where "9x" is parsed as two tokens, a TT_NUMBER
116 followed by a TT_WORD. The problem here is that I don't
117 think it's actually possible to fix this without throwing
118 out StreamTokenizer and rolling our own, which we absolutely
119 - Fix term-to-PQF translation to omit empty properties
120 (for the broken Korean server)
121 - Write "package.html" file for the javadoc documentation.
122 - Some niceties for the cql-decompiling back-end:
123 * Don't emit redundant parentheses.
124 * Don't put spaces around relations that don't need them.
125 - Many refinements to the random query generator:
126 * Generate relation modifiers
128 * Don't always generate qualifier/relation for terms
129 * Better selection of qualifier (configurable?)
130 * Better selection of terms (from a dictionary file?)
131 * Introduce wildcard characters into generated terms
132 * Generate multi-word terms
133 * Generate prefix-mappings