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