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