Change project-name capitalisation from "cql-java" to "CQL-Java".
[cql-java-moved-to-github.git] / Changes
1 $Id: Changes,v 1.24 2002-12-09 16:29:44 mike Exp $
2
3 Revision history for the CQL-Java package.
4 See the bottom of this file for a list of things still to do.
5
6 0.5  (IN PROGRESS)
7         - Add an extra back-end method,
8                 byte[] toType1(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
21           error.
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
27 0.4  Thu Nov 21 10:09:26 2002
28         - Add support for the new "phonetic" relation modifier,
29           including its mapping in "etc/pqf.properties".
30         - Make prefix-maps bind loosely, so that ``>dc=x a and b''
31           applies the dc=x binding to both the ``a'' and ``b''
32           sub-queries.
33         - Change the XCQL output to include the nasty (but official)
34           <leftOperand> and <rightOperand> wrapper elements.
35         - Change the XCQL output to use the nasty (but official)
36           rendition of prefix-mapping: a <prefixes> element,
37           containing one of more <prefix>es may appear at the top
38           of either a <searchClause> or a <triple>.
39         - Include test/regression/xmlpp.pl in the distribution: this
40           may now be used for testing whether a CQL compiler produces
41           _equivalent_ XCQL to what's in the regression test, rather
42           than requiring byte-identical output.
43         - Include the reference XCQL output in the distribution, for
44           the regression test suite to run against.
45         - Change build process so that javadoc documentation is built
46           by "make" in the "docs" directory.  There's now a top-level
47           makefile that builds the source, runs the test suite and
48           creates the documentation.
49         - Write javadoc comments for CQLRelation and ModifierSet.
50         - Other improvements to javadoc comments (e.g. describe the
51           `config' parameter to the toPQF() method.)
52         - Sort out the licence: I've settled on the LGPL.
53         - Remove the redundant and misleading etc/Grammar file.
54         - Fix up various Maintenance Agency web addresses that have
55           moved in the great ZING-release shake-up.
56
57 0.3  Fri Nov 15 12:04:04 2002
58         - Allow keywords to be used unquoted as search terms.
59         - Add support for serverChoiceRelation (scr).
60         - Add support for prefix-mapping, as in
61                 >dc="http://www.loc.gov/zing/cql/dc-indexes/" dc.title=fish
62           and
63                 >"http://www.loc.gov/zing/cql/dc-indexes/" dc.title=fish
64           The XCQL generated corresponds to Adam's suggested format
65           rather than Rob's, not so much because I prefer it (although
66           I do) as because it's what fell out when I just Coded What
67           Comes Natur'ly.  That may need to change, depending on the
68           result of the ZNG list's deliberations.
69         - Fix the parser to normalise relation modifiers to lower case.
70         - Fix the CQLParser test harness not to emit an extraneous
71           blank line at end of XCQL output.
72         - Fix CQLNode documentation to contain a link to YAZ's
73           documentation of Prefix Query Format (PQF) rather than
74           containing a rather unhelpful chunk of BNF.
75         - Change the test/regression Makefile so that "make clean" now
76           does what "make distclean" used to do - the distinction
77           between them is pointless.
78         - Fix a few typos in the documentation.
79         - Move the README file's old "THINGS TO DO" section to the end
80           of this file, the new "Still to do" section.
81
82 0.2  Wed Nov  6 23:05:54 2002
83         - Fix the order of proximity parameters in accordance with the
84           updated official grammar, which now specifies proximity
85           operators of the form
86                 prox/<relation>/<distance>/<unit>/<ordering>
87           as in ``foo prox/<=/3/sentence bar''.
88         - Make the necessary parts of the CQLNode class and its
89           subclasses public.  This means that client code can now walk
90           through parse-trees and so implement its own back-end
91           (e.g. to build BER-friendly data structures using whatever
92           Z39.50 toolkit is preferred.)
93         - Add the toPQF(Properties p) method to CQLNode and its
94           subclasses.  This produces a query in YAZ-style Prefix Query
95           Format, which can be trivially translated into a Z39.50
96           Type-1 query (see, for example, JZKit's code to do so).
97         - Add etc/pqf.properties to configure the toPQF() method.
98         - Add "-p <props-file>" option to the CQLParser test-harness,
99           indicating that the parsed tree is to be rendered to PQF.
100         - Add PQFTranslationException and its subclasses
101           UnknownQualifierException, UnknownRelationException,
102           UnknownRelationModifierException and
103           UnknownPositionException.
104         - Rename ParameterMissingException to MissingParameterException.
105         - Add javadoc comments for CQLNode and its subclasses.
106
107 0.1  Sun Nov  3 20:58:27 2002
108         - First public release.
109
110 --
111
112 ### Still to do
113         - Fix the bug where "9x" is parsed as two tokens, a TT_NUMBER
114           followed by a TT_WORD.  The problem here is that I don't
115           think it's actually possible to fix this without throwing
116           out StreamTokenizer and rolling our own, which we absolutely
117           _don't_ want to do.
118         - Add srw.resultSet support to the toPFQ() method.
119         - Write some "glue" code to generate a BER-encoded Type-1
120           query packet using ZJKit's PQF-compiler and the facilities
121           for serialising the resulting Type-1 tree representation.
122         - Write "package.html" file for the javadoc documentation.
123         - Some niceties for the cql-decompiling back-end:
124           * Don't emit redundant parentheses.
125           * Don't put spaces around relations that don't need them.
126         - Consider the utility of yet another back-end that translates
127           a CQLNode tree into JZKit's representation of a Type-1 query
128           tree.  That would be nice so that CQL could become a JZKit
129           query-type; but you could achieve the same effect by
130           generating PQF, and running that through JZKit's existing
131           PQN-to-Type-1 compiler.
132         - Many refinements to the random query generator:
133           * Generate relation modifiers
134           * Proximity support
135           * Don't always generate qualifier/relation for terms
136           * Better selection of qualifier (configurable?)
137           * Better selection of terms (from a dictionary file?)
138           * Introduce wildcard characters into generated terms
139           * Generate multi-word terms
140           * Generate prefix-mappings
141