lingo 1.8.4.2 → 1.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +413 -325
  3. data/README +380 -131
  4. data/Rakefile +19 -21
  5. data/de/lingo-abk.txt +15 -17
  6. data/de/lingo-dic.txt +20210 -20659
  7. data/de/lingo-mul.txt +5 -13
  8. data/de/lingo-syn.txt +5 -8
  9. data/de/test_dic.txt +2 -0
  10. data/de/test_gen.txt +8 -0
  11. data/de/{test_mul2.txt → test_mu2.txt} +0 -0
  12. data/de/{test_singleword.txt → test_sgw.txt} +0 -0
  13. data/de/user-dic.txt +5 -7
  14. data/de.lang +64 -49
  15. data/en/lingo-dic.txt +6398 -6404
  16. data/en/lingo-irr.txt +2 -3
  17. data/en/lingo-mul.txt +6 -7
  18. data/en/lingo-wdn.txt +881 -1762
  19. data/en/user-dic.txt +2 -5
  20. data/en.lang +39 -39
  21. data/lib/lingo/app.rb +10 -6
  22. data/lib/lingo/attendee/abbreviator.rb +1 -0
  23. data/lib/lingo/attendee/decomposer.rb +2 -1
  24. data/lib/lingo/attendee/multi_worder.rb +5 -6
  25. data/lib/lingo/attendee/stemmer.rb +1 -1
  26. data/lib/lingo/attendee/synonymer.rb +4 -2
  27. data/lib/lingo/attendee/text_reader.rb +77 -57
  28. data/lib/lingo/attendee/text_writer.rb +1 -1
  29. data/lib/lingo/attendee/tokenizer.rb +101 -50
  30. data/lib/lingo/attendee/variator.rb +2 -1
  31. data/lib/lingo/attendee/vector_filter.rb +28 -6
  32. data/lib/lingo/attendee/word_searcher.rb +2 -1
  33. data/lib/lingo/attendee.rb +8 -4
  34. data/lib/lingo/call.rb +7 -3
  35. data/lib/lingo/cli.rb +8 -16
  36. data/lib/lingo/config.rb +11 -6
  37. data/lib/lingo/ctl.rb +54 -3
  38. data/lib/lingo/database/crypter.rb +8 -14
  39. data/lib/lingo/database/hash_store.rb +1 -1
  40. data/lib/lingo/database/{show_progress.rb → progress.rb} +7 -8
  41. data/lib/lingo/database/source/key_value.rb +6 -5
  42. data/lib/lingo/database/source/multi_key.rb +5 -2
  43. data/lib/lingo/database/source/multi_value.rb +6 -4
  44. data/lib/lingo/database/source/single_word.rb +2 -3
  45. data/lib/lingo/database/source/word_class.rb +24 -5
  46. data/lib/lingo/database/source.rb +5 -3
  47. data/lib/lingo/database.rb +102 -41
  48. data/lib/lingo/error.rb +24 -2
  49. data/lib/lingo/language/dictionary.rb +26 -54
  50. data/lib/lingo/language/grammar.rb +19 -23
  51. data/lib/lingo/language/lexical.rb +5 -1
  52. data/lib/lingo/language/lexical_hash.rb +7 -12
  53. data/lib/lingo/language/token.rb +10 -1
  54. data/lib/lingo/language/word.rb +35 -23
  55. data/lib/lingo/language/word_form.rb +5 -4
  56. data/lib/lingo/{show_progress.rb → progress.rb} +43 -30
  57. data/lib/lingo/srv/lingosrv.cfg +1 -1
  58. data/lib/lingo/srv/public/.gitkeep +0 -0
  59. data/lib/lingo/srv.rb +11 -6
  60. data/lib/lingo/version.rb +2 -2
  61. data/lib/lingo/web/lingoweb.cfg +1 -1
  62. data/lib/lingo/web/views/index.erb +4 -4
  63. data/lib/lingo/web.rb +4 -6
  64. data/lib/lingo.rb +4 -12
  65. data/lingo.cfg +1 -1
  66. data/lir.cfg +1 -1
  67. data/ru/lingo-dic.txt +33473 -2113
  68. data/ru/lingo-mul.txt +8430 -1913
  69. data/ru/lingo-syn.txt +1634 -0
  70. data/ru/user-dic.txt +6 -0
  71. data/ru.lang +49 -47
  72. data/spec/spec_helper.rb +4 -0
  73. data/test/attendee/ts_decomposer.rb +2 -2
  74. data/test/attendee/ts_synonymer.rb +3 -3
  75. data/test/attendee/ts_tokenizer.rb +215 -2
  76. data/test/attendee/ts_variator.rb +2 -2
  77. data/test/attendee/ts_word_searcher.rb +10 -6
  78. data/test/ref/artikel.seq +2 -2
  79. data/test/ref/artikel.vec +5 -5
  80. data/test/ref/artikel.ven +11 -11
  81. data/test/ref/artikel.ver +11 -11
  82. data/test/ref/lir.seq +13 -13
  83. data/test/ref/lir.vec +31 -31
  84. data/test/test_helper.rb +19 -5
  85. data/test/ts_database.rb +206 -77
  86. data/test/ts_language.rb +86 -26
  87. metadata +93 -49
  88. data/.rspec +0 -1
  89. data/de/test_syn2.txt +0 -1
data/ChangeLog CHANGED
@@ -2,19 +2,62 @@
2
2
 
3
3
  = Revision history for Lingo
4
4
 
5
+ == 1.8.5 [2014-10-02]
6
+
7
+ * Dictionary values (projections) are no longer sorted; hence, order of
8
+ definition affects processing.
9
+ * Lexicals in Lingo::Language::Word are no longer sorted; in particular,
10
+ compound parts keep their original order.
11
+ * Lexicals in Lingo::Language::Word are no longer cleaned from duplicates.
12
+ * Compiled dictionaries are updated whenever the Lingo version or their
13
+ configuration changes, not only when the source file's size or modification
14
+ time changes.
15
+ * Lingo::Attendee::Synonymer learned <tt>compound-parts</tt> option to also
16
+ generate synonyms for compound parts when set to +true+.
17
+ * Lingo::Attendee::TextReader learned better PDF-to-text conversion using the
18
+ +pdftotext+ command; specify <tt>filter: pdftotext</tt> in the config.
19
+ * Lingo::Attendee::VectorFilter learned +dict+ option to print words in
20
+ dictionary format (viz. Lingo::Database::Source::WordClass).
21
+ * Lingo::Attendee::VectorFilter learned +preamble+ option to print current
22
+ configuration to the beginning of the log file (<tt>debug: 'true'</tt>);
23
+ set <tt>preamble: false</tt> to disable.
24
+ * Multiword dictionaries compiled from base forms can now generate inflected
25
+ adjectives based on the gender of the head noun; set <tt>inflect: true</tt>
26
+ in the dictionary config.
27
+ * Lingo::Database::Source::WordClass supports gender information being encoded
28
+ in the dictionary as well as shorthand notation for multiple word
29
+ classes/genders.
30
+ * Lingo::Database::Source::WordClass supports compounds being encoded in the
31
+ dictionary (appending <tt>+</tt> to their parts' word classes is
32
+ recommended).
33
+ * Lingo::Database::Source removes leading and trailing whitespace from
34
+ dictionary lines.
35
+ * Lingo::Database::Crypter uses OpenSSL to encrypt/decrypt dictionaries.
36
+ Note: Can't decrypt dictionaries encrypted with the old scheme anymore.
37
+ * Lingo::Attendee::Tokenizer learned subset of MediaWiki syntax.
38
+ * Eliminated pathological behaviour of the +URLS+ rule in
39
+ Lingo::Attendee::Tokenizer.
40
+ * Fixed regression introduced in 1.8.2 where <tt>combine: all</tt> would no
41
+ longer work in Lingo::Attendee::MultiWorder.
42
+ * Updated and extended Russian dictionaries. (Yulia Dorokhova, Thomas Müller)
43
+ * +lingoctl+ no longer overwrites existing files without confirmation.
44
+ * +lingoctl+ learned +archive+ command.
45
+ * Dictionary cleanup.
46
+
5
47
  == 1.8.4 [2013-10-18]
6
48
 
7
- * Attendee::Sequencer accepts regular expression patterns.
8
- * Attendee::Sequencer substitutes +0+ in the format string for the matched
9
- pattern.
10
- * Attendee::NonewordFilter learned +dict+ option to print nonewords in
11
- dictionary format.
12
- * Added progress reporting to Attendee::TextReader for STDIN.
49
+ * Lingo::Attendee::Sequencer accepts regular expression patterns.
50
+ * Lingo::Attendee::Sequencer substitutes +0+ in the format string for the
51
+ matched pattern.
52
+ * Lingo::Attendee::NonewordFilter learned +dict+ option to print nonewords
53
+ in dictionary format.
54
+ * Added progress reporting to Lingo::Attendee::TextReader for +STDIN+.
13
55
  * <tt>lingoctl demo</tt> reports successful initialization.
14
- * Russian localization for Lingo Web. (Yulia Dorokhova, Thomas Müller)
15
- * Lingo Web learned parameter +hl+ to set UI language.
16
- * Lingo Web displays the configuration in use.
17
- * Lingo Srv accepts array of query strings in addition to single query string.
56
+ * Russian localization for Lingo::Web. (Yulia Dorokhova, Thomas Müller)
57
+ * Lingo::Web learned parameter +hl+ to set UI language.
58
+ * Lingo::Web displays the configuration in use.
59
+ * Lingo::Srv accepts array of query strings in addition to single query
60
+ string.
18
61
  * Meeting config takes precedence over language config.
19
62
  * When dictionary entries are rejected during conversion, the location of the
20
63
  reject file will be shown.
@@ -24,7 +67,7 @@
24
67
 
25
68
  == 1.8.3 [2012-09-20]
26
69
 
27
- * Fixed regression introduced in 1.8.2 where reading input from STDIN was no
70
+ * Fixed regression introduced in 1.8.2 where reading input from +STDIN+ was no
28
71
  longer possible.
29
72
  * Fixed regression introduced in 1.8.2 where Lingo would no longer run on Ruby
30
73
  1.9.2.
@@ -33,40 +76,48 @@
33
76
  * Fixed issue with BOM in config files.
34
77
  * Modified character handling to accept *any* Unicode letter (_Alphabetic_)
35
78
  and digit (<i>Decimal Number</i>).
36
- * Modified Attendee::Tokenizer to use only hard-coded tokenization rules.
37
- * Modified Attendee::VectorFilter's +lexicals+ option to be case-sensitive.
38
- * Improved overall performance and memory usage; Attendee::Sequencer changed
39
- the order sequences are inserted into the stream.
40
- * Eliminated performance penalty caused by Attendee::Abbreviator.
79
+ * Modified Lingo::Attendee::Tokenizer to use only hard-coded tokenization
80
+ rules.
81
+ * Modified Lingo::Attendee::VectorFilter option +lexicals+ to be
82
+ case-sensitive.
83
+ * Improved overall performance and memory usage; Lingo::Attendee::Sequencer
84
+ changed the order sequences are inserted into the stream.
85
+ * Eliminated performance penalty caused by Lingo::Attendee::Abbreviator.
41
86
  * Added Russian language support. (Yulia Dorokhova, Thomas Müller)
42
- * Added +fields+ option to Attendee::TextReader to cut off field labels;
43
- defaults to +true+ in record (LIR) mode.
44
- * Added +skip+ option to Attendee::TextReader to skip lines matching the given
45
- pattern.
46
- * Added +src+ option to Attendee::VectorFilter to print "source" part of
47
- compounds.
87
+ * Added +fields+ option to Lingo::Attendee::TextReader to cut off field
88
+ labels; defaults to +true+ in record (LIR) mode.
89
+ * Added +skip+ option to Lingo::Attendee::TextReader to skip lines matching
90
+ the given pattern.
91
+ * Added +src+ option to Lingo::Attendee::VectorFilter to print "source" part
92
+ of compounds.
48
93
  * Added +lingosrv+ and +lingoweb+ executables. The former provides a simple
49
94
  HTTP endpoint with JSON output; the latter serves a demo web interface.
50
95
  * Refactored internal caching.
51
96
  * Made dependency on Ruby version >= 1.9.2 explicit.
52
- * Removed reporting facility (options '--perfmon' and '--status').
53
- * Learned '--profile' option to collect profiling information while running.
54
- * Deprecated Language::Grammar option +compositum+ (now +compound+), Config
55
- option +textreader+ (now +text_reader+), and Attendee::TextReader option
56
- +lir-record-pattern+ (now +records+); they will be removed in Lingo 1.9.
97
+ * Removed reporting facility (options <tt>--perfmon</tt> and
98
+ <tt>--status</tt>).
99
+ * Learned <tt>--profile</tt> option to collect profiling information while
100
+ running.
101
+ * Deprecated Lingo::Language::Grammar option +compositum+ (now +compound+),
102
+ Lingo::Config option +textreader+ (now +text_reader+), and
103
+ Lingo::Attendee::TextReader option +lir-record-pattern+ (now +records+);
104
+ they will be removed in Lingo 1.9.
57
105
 
58
106
  == 1.8.2 [2012-04-19]
59
107
 
60
- * Performance improvements regarding Attendee::VectorFilter's (as well as
61
- Attendee::NonewordFilter's) memory usage; set <tt>sort: false</tt> in the config.
62
- * Added Attendee::Stemmer (implementing Porter's algorithm for suffix stripping).
63
- * Added progress reporting to Attendee::TextReader; set <tt>progress: true</tt>
108
+ * Performance improvements regarding Lingo::Attendee::VectorFilter (as well
109
+ as Lingo::Attendee::NonewordFilter) memory usage; set <tt>sort: false</tt>
64
110
  in the config.
65
- * Added directory and glob processing to Attendee::TextReader (new options
66
- +glob+ and +recursive+).
67
- * Renamed Attendee::TextReader's option +lir-record-pattern+ to +records+.
68
- * Fixed Attendee::Debugger to forward all objects so it can be inserted
69
- between any two attendees in the config.
111
+ * Added Lingo::Attendee::Stemmer (implementing Porter's algorithm for suffix
112
+ stripping).
113
+ * Added progress reporting to Lingo::Attendee::TextReader; set <tt>progress:
114
+ true</tt> in the config.
115
+ * Added directory and glob processing to Lingo::Attendee::TextReader (new
116
+ options +glob+ and +recursive+).
117
+ * Renamed Lingo::Attendee::TextReader option +lir-record-pattern+ to
118
+ +records+.
119
+ * Fixed Lingo::Attendee::Debugger to forward all objects so it can be
120
+ inserted between any two attendees in the config.
70
121
  * Fixed regression introduced in 1.8.0 where Lingo would not use existing
71
122
  compiled dictionary when source file is not present.
72
123
  * Fixed "invalid byte sequence in UTF-8" on Windows for SDBM store.
@@ -92,39 +143,43 @@
92
143
  * Executable may be run from outside installation root directory now.
93
144
  See README for further details.
94
145
  * Search path for dictionaries and configuration files; plugin system.
95
- * Textreader can read from STDIN if no files given; leave out the +files+
96
- parameter in the config for this to trigger.
146
+ * Lingo::Attendee::TextReader can read from +STDIN+ if no files given;
147
+ leave out the +files+ parameter in the config for this to trigger.
97
148
  * Status/performance details as well as progress information are now
98
- printed on STDERR instead of STDOUT in order to not mix with regular
99
- output. Learned '--log' option to write such information to a file.
149
+ printed on +STDERR+ instead of +STDOUT+ in order to not mix with regular
150
+ output. Learned <tt>--log</tt> option to write such information to a file.
100
151
  * Additional internal refactorings. (To be continued...)
101
152
 
102
153
  == 1.7.1 [2011-10-24]
103
154
 
104
- * Multiworder actually finds the *longest* matching multiword group.
105
- * Multiword entries in SingleWord dictionaries now respect <tt>def-wc</tt>;
106
- new parameter <tt>def-mul-wc</tt> to control the word class for multiword
107
- entries (defaults to <tt>def-wc</tt>). Use <tt>def-mul-wc: 'm'</tt> in your
108
- <tt>.lang</tt> to restore the previous behaviour.
109
- * New Attendee::Formatter for configurable output formatting as an alternative
110
- to Attendee::Textwriter.
111
- * New basic input filters to enable indexing of HTML/XML (and PDF?) files.
155
+ * Lingo::Attendee::MultiWorder actually finds the *longest* matching multiword
156
+ group.
157
+ * Multiword entries in Lingo::Database::Source::SingleWord dictionaries now
158
+ respect <tt>def-wc</tt>; new parameter <tt>def-mul-wc</tt> to control
159
+ the word class for multiword entries (defaults to <tt>def-wc</tt>). Use
160
+ <tt>def-mul-wc: 'm'</tt> in your <tt>.lang</tt> to restore the previous
161
+ behaviour.
162
+ * New Lingo::Attendee::Formatter for configurable output formatting as an
163
+ alternative to Lingo::Attendee::TextWriter.
164
+ * New basic input filters to enable indexing of HTML/XML (and PDF) files.
112
165
  * Updated the system dictionary.
113
166
  * Switched license to Affero GPL.
114
167
 
115
168
  == 1.7.0 [2010-12-15]
116
169
 
117
170
  * More Ruby 1.9 compatibility.
118
- * Extended VectorFilter to double as enhanced Non(e)wordFilter.
119
- * Fixed Sequencer to recognize additional word classes beyond the first.
120
- * Fixed Sequencer to not prematurely flush the buffer, which led to a
121
- decreased recognition rate.
171
+ * Extended Lingo::Attendee::VectorFilter to double as enhanced
172
+ Lingo::Attendee::NonewordFilter.
173
+ * Fixed Lingo::Attendee::Sequencer to recognize additional word classes beyond
174
+ the first.
175
+ * Fixed Lingo::Attendee::Sequencer to not prematurely flush the buffer, which
176
+ led to a decreased recognition rate.
122
177
  * Housekeeping.
123
178
 
124
179
  == 1.6.12 [2010-11-22]
125
180
 
126
181
  * Ruby 1.9 compatibility, finally.
127
- * Added lingoweb.rb, a plain & simple web frontend for Lingo.
182
+ * Added <tt>lingoweb.rb</tt>, a plain & simple web frontend for Lingo.
128
183
  * Added DIFF-LCS gem directly to Lingo distribution.
129
184
 
130
185
  == 1.6.11 [2010-02-04]
@@ -132,19 +187,19 @@
132
187
  * Redirect Lingo output to <tt>/dev/null</tt> during testing. Indicate error
133
188
  with appropriate exit code.
134
189
  * Replace usage of command-line diff with cross-plattform Ruby implementation
135
- (requires diff-lcs[http://raa.ruby-lang.org/project/diff-lcs/]).
190
+ (requires diff-lcs[https://rubygems.org/gems/diff-lcs]).
136
191
  * Provide alternatives to standard zip command on windows platforms.
137
192
  * Use +UNK+ itself if it doesn't have any lexicals.
138
193
  * Use compo form instead of word form when lexicalizing compound entry for
139
194
  multiword dictionaries.
140
- * LexicalHash#[] must use target (not source) form.
195
+ * Lingo::Language::LexicalHash#[] must use target (not source) form.
141
196
  * Optionally, try to find matches for all lexicals a word has.
142
- * Make '-' a PRINTABLE_CHAR.
197
+ * Made '-' a +PRINTABLE_CHAR+.
143
198
  * Allow synonyms to be considered for multiword matching.
144
199
  * Don't use compound parts.
145
200
  * Introduced some (more or less arbitrary) line length limit. We can only
146
201
  store values of a certain length anyway (with SDBM). Entries exceeding this
147
- limit will be rejected and logged in the .rev file.
202
+ limit will be rejected and logged in the <tt>.rev</tt> file.
148
203
 
149
204
  == 1.6.10 [2009-11-09]
150
205
 
@@ -164,16 +219,17 @@
164
219
  * BUGFIX: Token wurden durch den Caching-Mechanismus in ihrer Schreibweise
165
220
  verändert (Groß-/Kleinschreibung).
166
221
  * Englische Wörterbücher, ein Beispiel-Artikel und eine Konfiguration für das
167
- Englische wurden aufgenommen. Aufruf mit lingo.rb -c lingo-en.cfg -l en <datei>.
222
+ Englische wurden aufgenommen. Aufruf mit <tt>lingo.rb -c lingo-en.cfg -l en
223
+ <datei></tt>.
168
224
  * Integration der Testumgebung für Entwickler.
169
225
  * Die Attendees in den Lingo-Konfigurationsdateien werden automatisch
170
226
  verkettet. Dies erspart mühsame Verlinkung von Hand und macht die
171
227
  Konfiguration lesbarer.
172
228
  * Modified parameters for Tokenizer and building of databases to handle UTF-8
173
- correctly. Printable characters from the ASCII charset and every UTF character
174
- greater than x80 is now recognized as a non word breaking character. so now
175
- diacritical characters are handled well.
176
- * Added a command line option '-p' for lingo.rb for making detailed
229
+ correctly. Printable characters from the ASCII charset and every UTF
230
+ character greater than x80 is now recognized as a non word breaking
231
+ character. so now diacritical characters are handled well.
232
+ * Added a command line option <tt>-p</tt> for lingo.rb for making detailed
177
233
  performance mesurements possible for each single attendee.
178
234
  * Allow Lingo.new to be called from a different directory. (Still need to
179
235
  Dir.chdir to #talk because of the dictionaries...).
@@ -192,8 +248,9 @@
192
248
 
193
249
  * <b>Englische Wörterbücher ergänzt</b>
194
250
 
195
- Lingo kann nun auch Englisch. Dazu muss beim Aufruf von Lingo die Option "-l en"
196
- angegeben werden. Ein englischer Artikel ist unter txt/artikel-en.txt zu finden.
251
+ Lingo kann nun auch Englisch. Dazu muss beim Aufruf von Lingo die Option
252
+ <tt>-l en</tt> angegeben werden. Ein englischer Artikel ist unter
253
+ txt/artikel-en.txt zu finden.
197
254
 
198
255
  == 1.6.5 [2006-09-18]
199
256
 
@@ -220,23 +277,24 @@
220
277
 
221
278
  * <b>Return-Codes</b>
222
279
 
223
- Bei Aufruf der Hilfe oder bei Fehlersituationen, die intern abgefangen werden,
224
- wird der Return-Code 1 gesetzt, um somit bessere Steuerung in der
225
- Batchverarbeitung zu ermöglichen.
280
+ Bei Aufruf der Hilfe oder bei Fehlersituationen, die intern abgefangen
281
+ werden, wird der Return-Code 1 gesetzt, um somit bessere Steuerung in
282
+ der Batchverarbeitung zu ermöglichen.
226
283
 
227
284
  == 1.6.1 [2006-03-22]
228
285
 
229
286
  * <b>Fehlerkorrektur im Multiworder</b>
230
287
 
231
- Der Multiworder hat sich in einem seltenen Spezialfall nicht korrekt verhalten. Das
232
- ist bereinigt.
288
+ Der Multiworder hat sich in einem seltenen Spezialfall nicht korrekt
289
+ verhalten. Das ist bereinigt.
233
290
 
234
291
  == 1.6.0 [2006-03-20]
235
292
 
236
293
  * <b>Wörterbücher umbenannt</b>
237
294
 
238
- Die standardmäßig mitgelieferten Wörterbücher sind umbenannt worden in lingo-xxx.txt
239
- und haben als einheitlichen Separator zwischen Schlüssel und Werten das '='-Zeichen.
295
+ Die standardmäßig mitgelieferten Wörterbücher sind umbenannt worden in
296
+ lingo-xxx.txt und haben als einheitlichen Separator zwischen Schlüssel
297
+ und Werten das '='-Zeichen.
240
298
 
241
299
  * <b>Bereinigungen durchgeführt</b>
242
300
 
@@ -246,8 +304,9 @@
246
304
 
247
305
  * <b>Wörterbücher umbenannt</b>
248
306
 
249
- Die standardmäßig mitgelieferten Wörterbücher sind umbenannt worden in lingo-xxx.txt und
250
- haben als einheitlichen Separator zwischen Schlüssel und Werten das '='-Zeichen.
307
+ Die standardmäßig mitgelieferten Wörterbücher sind umbenannt worden in
308
+ lingo-xxx.txt und haben als einheitlichen Separator zwischen Schlüssel
309
+ und Werten das '='-Zeichen.
251
310
 
252
311
  * <b>Bereinigungen durchgeführt</b>
253
312
 
@@ -257,130 +316,139 @@
257
316
 
258
317
  * <b>Fehlerkorrektur Multiworder</b>
259
318
 
260
- Ein klitzekleiner Fehler hat sich doch durch die übereifrig schnelle Bereitstellung
261
- der neuen Version eingeschlichen. Ist korrigiert und in die Testroutinen mit aufgenommen.
319
+ Ein klitzekleiner Fehler hat sich doch durch die übereifrig schnelle
320
+ Bereitstellung der neuen Version eingeschlichen. Ist korrigiert und in
321
+ die Testroutinen mit aufgenommen.
262
322
 
263
- * <b>Punkt-Behandlung vollständig überarbeitet (Abbreviator wieder im Einsatz!) => TEIL 2</b>
323
+ * <b>Punkt-Behandlung vollständig überarbeitet (Abbreviator wieder im
324
+ Einsatz!) => TEIL 2</b>
264
325
 
265
- ...hatte ich doch vergessen zu erwähnen, dass als Voraussetzung für das Funktionieren
266
- der neu eingeführten Punkt-Behandlung ZWINGEND die Tokenizer-Regel 'ABRS' in der
267
- <tt>de.lang</tt> auskommentiert werden muss ?:o\
326
+ ...hatte ich doch vergessen zu erwähnen, dass als Voraussetzung für das
327
+ Funktionieren der neu eingeführten Punkt-Behandlung ZWINGEND die
328
+ Tokenizer-Regel 'ABRS' in der <tt>de.lang</tt> auskommentiert werden muss.
268
329
 
269
330
  == 1.6.0rc2 [2006-03-09]
270
331
 
271
332
  * <b>Vorsicht bei CFG-Dateien!</b>
272
333
 
273
- Multiworder und Sequencer vertragen beide einen 'stopper'-Parameter, der in der
274
- Regel mit 'PUNCT,OTH_C' vorbelegt ist. Dies soll Token identifizieren, die durch
275
- die Regel gleichen Namens im Tokenizer erkannt wurden. Diese Regeln sind jedoch
276
- umbenannt worden (weiß nicht mit welcher Version) in 'PUNC' und 'OTHR'. Daher bitte
277
- die entsprechenden Einträge ändern auf 'PUNC,OTHR'.
334
+ Multiworder und Sequencer vertragen beide einen 'stopper'-Parameter, der in
335
+ der Regel mit 'PUNCT,OTH_C' vorbelegt ist. Dies soll Token identifizieren,
336
+ die durch die Regel gleichen Namens im Tokenizer erkannt wurden. Diese
337
+ Regeln sind jedoch umbenannt worden (weiß nicht mit welcher Version) in
338
+ 'PUNC' und 'OTHR'. Daher bitte die entsprechenden Einträge ändern auf
339
+ 'PUNC,OTHR'.
278
340
 
279
- * <b>Punkt-Behandlung vollständig überarbeitet (Abbreviator wieder im Einsatz!)</b>
341
+ * <b>Punkt-Behandlung vollständig überarbeitet (Abbreviator wieder im
342
+ Einsatz!)</b>
280
343
 
281
- Die Behandlung des Zeichen '.' wurde komplett neu designet. Das Zeichen '.' kommt
282
- grundsätzlich in drei verschiedenen Kontexten vor:
344
+ Die Behandlung des Zeichen '.' wurde komplett neu designet. Das Zeichen '.'
345
+ kommt grundsätzlich in drei verschiedenen Kontexten vor:
283
346
 
284
347
  1. Als Punkt hinter einer Zahl (1. = Erster, 2. = Zweiter,...)
285
348
  2. Als Abkürzungspunkt
286
349
  3. Der Satzendepunkt
287
350
 
288
- Der 1. Fall ist sehr sicher durch eine Tokenizer-Regel zu identifizieren und
289
- wird daher hier nicht weiter betrachtet. Dabei wird kein Punkt-Token erzeugt,
290
- sondern der Punkt im Stammwort mitgegeben (z.B. <1.>).
351
+ Der 1. Fall ist sehr sicher durch eine Tokenizer-Regel zu identifizieren
352
+ und wird daher hier nicht weiter betrachtet. Dabei wird kein Punkt-Token
353
+ erzeugt, sondern der Punkt im Stammwort mitgegeben (z.B. <1.>).
291
354
 
292
- Zwischen dem 2. und dem 3. Fall macht der Tokenizer keine Unterscheidung mehr.
293
- Der Punkt wird als eigenständiges Token erkannt und in den Verarbeitungsstrom
294
- weitergereicht. Der Abbreviator versucht nun Abkürzungen anhand von Punkt-Token
295
- zu erkennen. Taucht ein Punkt im Zeichenstrom auf, dann wird das vorhergehende Word
296
- im Abkürzungswörterbuch nachgeschlagen. Wird das Wort dort gefunden, wird das
297
- Punkt-Token aus dem Zeichenstrom entfernt und die Abkürzung als identifiziert
298
- weitergereicht.
355
+ Zwischen dem 2. und dem 3. Fall macht der Tokenizer keine Unterscheidung
356
+ mehr. Der Punkt wird als eigenständiges Token erkannt und in den
357
+ Verarbeitungsstrom weitergereicht. Der Abbreviator versucht nun
358
+ Abkürzungen anhand von Punkt-Token zu erkennen. Taucht ein Punkt im
359
+ Zeichenstrom auf, dann wird das vorhergehende Word im Abkürzungswörterbuch
360
+ nachgeschlagen. Wird das Wort dort gefunden, wird das Punkt-Token aus dem
361
+ Zeichenstrom entfernt und die Abkürzung als identifiziert weitergereicht.
299
362
 
300
- Bleibt neben dem Satzendepunkt noch der Abkürzungspunkt z.B. in Personennamen
301
- (John F. Kennedy). Diese müssen vom Multiworder zuverlässig als Teil einer
302
- Mehrwortgruppe erkannt und ggf. ebenfalls entfernt werden. Die zusätzlich
303
- aufgebohrtet Testroutinen zeigten ein zuverlässiges Verhalten.
363
+ Bleibt neben dem Satzendepunkt noch der Abkürzungspunkt z.B. in
364
+ Personennamen (John F. Kennedy). Diese müssen vom Multiworder zuverlässig
365
+ als Teil einer Mehrwortgruppe erkannt und ggf. ebenfalls entfernt werden.
366
+ Die zusätzlich aufgebohrtet Testroutinen zeigten ein zuverlässiges
367
+ Verhalten.
304
368
 
305
369
  == 1.6.0rc1 [2006-02-27]
306
370
 
307
371
  * <b>Grundlegende architektonische Überarbeitung</b>
308
372
 
309
- Die über ein Jahr gewachsene Struktur von Lingo wurde grundlich überarbeitet.
310
- Detailliertere Dokumentation folgt.
373
+ Die über ein Jahr gewachsene Struktur von Lingo wurde grundlich
374
+ überarbeitet. Detailliertere Dokumentation folgt.
311
375
 
312
376
  * <b>Abbreviator entfernt</b>
313
377
 
314
- Den Attendee Abbreviator gibt es nicht mehr. Seine Funktion wird vom Wordsearcher
315
- mit übernommen. Wenn ein Wort nicht erkannt wird, so prüft der Wordsearcher das
316
- Wort erneut mit abschließendem Punkt, wenn das nächste Token im Zeichenstrom
317
- tatsächlich ein Punkt ist. In diesem Fall wird das Punkt-Token aus dem Datenstrom
318
- entfernt.
378
+ Den Attendee Abbreviator gibt es nicht mehr. Seine Funktion wird vom
379
+ Wordsearcher mit übernommen. Wenn ein Wort nicht erkannt wird, so prüft
380
+ der Wordsearcher das Wort erneut mit abschließendem Punkt, wenn das
381
+ nächste Token im Zeichenstrom tatsächlich ein Punkt ist. In diesem Fall
382
+ wird das Punkt-Token aus dem Datenstrom entfernt.
319
383
 
320
384
  * <b>Ocr_variator heißt jetzt Variator</b>
321
385
 
322
- Kleine kosmetische Anpassung. Der Ocr-Bezug stimmt zwar historisch gesehen noch,
323
- mit der eigentlichen Funktion hat es jedoch nichts zu tun.
386
+ Kleine kosmetische Anpassung. Der Ocr-Bezug stimmt zwar historisch gesehen
387
+ noch, mit der eigentlichen Funktion hat es jedoch nichts zu tun.
324
388
 
325
389
  * <b>Decomposer mit zusätzlicher Validitätsprüfung und Kennzeichnung</b>
326
390
 
327
- Der Decomposer kann bei Bedarf Komposita einer zusätzlichen Prüfung unterziehen.
328
- Ist der Schlüssel <tt>de.lang:language/dictionary/compound/skip-sequences</tt>
329
- angegeben, der z.B. in der Form <tt>skip-sequences: [ VS ]</tt> definiert wird,
330
- wird zusätzlich geprüft, ob das Kompositum mit seinen Teilen diesen Wortklassen
331
- entspricht. Hiernach werden Komposita verworfen, die aus Verb-Substantiv-Kombination
332
- bestehen. Die Angabe des Parameters ist optional.
333
- Zusätzlich werden bei Angabe des Schlüssels <tt>de.lang:language/dictionary/compound/append-wordclass</tt>,
334
- der i.d.R einen ein Zeichen langen String enthält, die durch Zerlegung erkannten
335
- Wortstämme markiert, in dem ihre Wortklasse das über diesen Schlüssel definierte
336
- Zeichen angehangen bekommt.
391
+ Der Decomposer kann bei Bedarf Komposita einer zusätzlichen Prüfung
392
+ unterziehen. Ist der Schlüssel
393
+ <tt>de.lang:language/dictionary/compound/skip-sequences</tt> angegeben, der
394
+ z.B. in der Form <tt>skip-sequences: [ VS ]</tt> definiert wird, wird
395
+ zusätzlich geprüft, ob das Kompositum mit seinen Teilen diesen Wortklassen
396
+ entspricht. Hiernach werden Komposita verworfen, die aus
397
+ Verb-Substantiv-Kombination bestehen. Die Angabe des Parameters ist
398
+ optional. Zusätzlich werden bei Angabe des Schlüssels
399
+ <tt>de.lang:language/dictionary/compound/append-wordclass</tt>, der i.d.R.
400
+ einen ein Zeichen langen String enthält, die durch Zerlegung erkannten
401
+ Wortstämme markiert, in dem ihre Wortklasse das über diesen Schlüssel
402
+ definierte Zeichen angehangen bekommt.
337
403
 
338
404
  * <b>Install.rb nicht mehr notwendig</b>
339
405
 
340
- Die Umwandlung von Text-Dateien in SDBM-Dateien erfolgt nicht mehr über Install,
341
- sondern durch 'jeden' Lingoaufruf implizit. Beim öffnen der SDBM-Datei wird
342
- automatisch die Aktualität geprüft und bei Bedarf eine erneute Übersetzung
343
- angestartet.
406
+ Die Umwandlung von Text-Dateien in SDBM-Dateien erfolgt nicht mehr über
407
+ Install, sondern durch 'jeden' Lingoaufruf implizit. Beim öffnen der
408
+ SDBM-Datei wird automatisch die Aktualität geprüft und bei Bedarf eine
409
+ erneute Übersetzung angestartet.
344
410
 
345
411
  == 1.5.0 [2005-12-08]
346
412
 
347
413
  * <b>Sprachkonfiguration aktualisiert</b>
348
414
 
349
- Die Konfigurationsdatei de.lang ist an produktive Erfahrungen angepasst worden.
350
- Insbesondere werden jetzt alle Sonderzeichen der Zeichensätze ISO-8859-1 und
351
- Windows-1252 vollständig erkannt, ohne dass laufend Zeichen nachgepflegt werden
352
- müssen.
415
+ Die Konfigurationsdatei de.lang ist an produktive Erfahrungen angepasst
416
+ worden. Insbesondere werden jetzt alle Sonderzeichen der Zeichensätze
417
+ ISO-8859-1 und Windows-1252 vollständig erkannt, ohne dass laufend Zeichen
418
+ nachgepflegt werden müssen.
353
419
 
354
420
  * <b>Cachable arbeitet jetzt mit Duplikaten</b>
355
421
 
356
- Objekte, die in den Cache von Datasource, Dictionary oder Grammer übernommen
357
- wurden, wurden auch immer als Referenz ausgelesen. Die hatte zur Folge, dass
358
- wenn Cacheinhalte im späteren Verlauf der Lingo-Kette verändert wurden, diese
359
- Veränderung auch alle nachfolgen aus dem Cache gelesenen Objekte betraf.
360
- D.h.: Wird das Wort <von|?> in den Cache geschrieben, so werden alle
361
- nachfolgenden Suchanfragen aus dem Cache bedient. So weit so gut. Wenn ein
362
- Attendee nach Cacheauslesen der Meinung ist, er müsste für das Objekt das Attribut
363
- z.B. auf 'MU?' (Teil einer Mehrwortgruppe) ändern, dann wurde dadurch auch das
364
- Element im Cache geändert. Nachfolgende Suchanfragen erhielten somit <von|MU?> als
365
- Antwort. Ab jetzt werden nur noch Kopien des Originals in den Cache übernommen,
422
+ Objekte, die in den Cache von Datasource, Dictionary oder Grammer
423
+ übernommen wurden, wurden auch immer als Referenz ausgelesen. Die hatte
424
+ zur Folge, dass wenn Cacheinhalte im späteren Verlauf der Lingo-Kette
425
+ verändert wurden, diese Veränderung auch alle nachfolgen aus dem Cache
426
+ gelesenen Objekte betraf. D.h.: Wird das Wort <von|?> in den Cache
427
+ geschrieben, so werden alle nachfolgenden Suchanfragen aus dem Cache
428
+ bedient. So weit so gut. Wenn ein Attendee nach Cacheauslesen der Meinung
429
+ ist, er müsste für das Objekt das Attribut z.B. auf 'MU?' (Teil einer
430
+ Mehrwortgruppe) ändern, dann wurde dadurch auch das Element im Cache
431
+ geändert. Nachfolgende Suchanfragen erhielten somit <von|MU?> als Antwort.
432
+ Ab jetzt werden nur noch Kopien des Originals in den Cache übernommen,
366
433
  so das eine versehentliche Veränderung ausgeschlossen wird.
367
434
 
368
435
  * <b>String hat attr-Methode</b>
369
436
 
370
- Die Methode _select_ der Klasse _Dictionary_ gibt die gefundenen Lexicals sortiert
371
- zurück. Bei der Verarbeitung von Mehrwortwörterbüchern kann jedoch auch z.B. '*5'
372
- als Antwort gegeben werden, was dem Multiworder mitteilt, dass es eine Mehrwortgruppe
373
- der Länge 5 gibt, die mit genau den drei nachgefragten Wörtern beginnt und der
374
- Multiworder eine weitere Abfrage machen soll. Klappt alles wunderbar, nur dass _select_
375
- nicht in der Lage ist ein Array aus Lexicals und Strings anhand des attr-Wertes zu
376
- sortieren. Jetzt hat die Klasse String eines attr-Wert '' bekommen und die Sortierung
377
- funktioniert wieder.
437
+ Die Methode _select_ der Klasse _Dictionary_ gibt die gefundenen Lexicals
438
+ sortiert zurück. Bei der Verarbeitung von Mehrwortwörterbüchern kann
439
+ jedoch auch z.B. '*5' als Antwort gegeben werden, was dem Multiworder
440
+ mitteilt, dass es eine Mehrwortgruppe der Länge 5 gibt, die mit genau
441
+ den drei nachgefragten Wörtern beginnt und der Multiworder eine weitere
442
+ Abfrage machen soll. Klappt alles wunderbar, nur dass _select_ nicht in
443
+ der Lage ist ein Array aus Lexicals und Strings anhand des attr-Wertes zu
444
+ sortieren. Jetzt hat hat die Klasse String eines attr-Wert '' bekommen
445
+ und die Sortierung funktioniert wieder.
378
446
 
379
447
  * <b>Neues Synonym-Wörterbuch</b>
380
448
 
381
- Ein sehr gut gepflegtes Synonym-Wörterbuch ist als Beispiel mit aufgenommen worden.
382
- Wie beim Mehrwortwörterbuch system_mul.txt sind jedoch nur Einträge mit dem
383
- Anfangsbuchstabe 'a' enthalten.
449
+ Ein sehr gut gepflegtes Synonym-Wörterbuch ist als Beispiel mit
450
+ aufgenommen worden. Wie beim Mehrwortwörterbuch system_mul.txt
451
+ sind jedoch nur Einträge mit dem Anfangsbuchstabe 'a' enthalten.
384
452
 
385
453
  == 1.5.0rc2 [2005-12-06]
386
454
 
@@ -398,50 +466,55 @@
398
466
 
399
467
  * <b>Kompositumerkennung redesigned</b>
400
468
 
401
- Neben den Klassen für Datenzugriff auf unterster Ebene (Datasource) und dem
402
- Wörterbuchzugriff (Dictionary) gibt es nun auch eine Klasse für grammatikalische
403
- Spezialitäten (Grammar), welche die Kompositumerkennung aufgenommen hat.
469
+ Neben den Klassen für Datenzugriff auf unterster Ebene (Datasource) und
470
+ dem Wörterbuchzugriff (Dictionary) gibt es nun auch eine Klasse für
471
+ grammatikalische Spezialitäten (Grammar), welche die Kompositumerkennung
472
+ aufgenommen hat.
404
473
 
405
474
  * <b>Testroutinen ausgebaut</b>
406
475
 
407
- Alle bisher per Mail gemeldeten Fehlersituationen sind in die Testroutinen eingebaut
408
- worden, so dass sie bei zukünftigen Versionen direkt mit getestet werden. Also
409
- weiterhin fleißig per Mail z.B. an error@lex-lingo.de melden.
476
+ Alle bisher per Mail gemeldeten Fehlersituationen sind in die Testroutinen
477
+ eingebaut worden, so dass sie bei zukünftigen Versionen direkt mit getestet
478
+ werden. Also weiterhin fleißig per Mail z.B. an error@lex-lingo.de melden.
410
479
 
411
480
  * <b>_Stopworder_ getilgt</b>
412
481
 
413
- Der _Stopworder_ hat seine Schuldigkeit getan. Sein Konzept ist von gestern.
414
- Weil er auch durch normale Wörterbuchsuche abbildbar ist, wird hier auf die
415
- weitere Pflege verzichtet. <b>Bitte in den Konfig-Dateien berücksichtigen! und
416
- WICHTIG: Stopwörter im Wörterbuch ggf. nachpflegen!</b>
482
+ Der _Stopworder_ hat seine Schuldigkeit getan. Sein Konzept ist von
483
+ gestern. Weil er auch durch normale Wörterbuchsuche abbildbar ist, wird
484
+ hier auf die weitere Pflege verzichtet. <b>Bitte in den Konfig-Dateien
485
+ berücksichtigen! und WICHTIG: Stopwörter im Wörterbuch ggf.
486
+ nachpflegen!</b>
417
487
 
418
488
  * <b>Neuer Attendee _Abbreviator_</b>
419
489
 
420
- Bisher hat der Tokenizer per Konfiguration eine Liste von Abkürzungen mitgeteilt
421
- bekommen, die er in einer Textzeile als Token erkennen und in den Datenstrom
422
- einfliessen lassen sollte. Die Pflege dieser Konfigurationsdaten fiel vollends
423
- aus dem sonst stringenten Wörterbuchkonzept heraus. Daher wurde dies Funktion in
424
- den Abbreviator ausgelagert, der sich die bekannten Abkürzungen aus einem eigenen
490
+ Bisher hat der Tokenizer per Konfiguration eine Liste von Abkürzungen
491
+ mitgeteilt bekommen, die er in einer Textzeile als Token erkennen und
492
+ in den Datenstrom einfliessen lassen sollte. Die Pflege dieser
493
+ Konfigurationsdaten fiel vollends aus dem sonst stringenten
494
+ Wörterbuchkonzept heraus. Daher wurde dies Funktion in den Abbreviator
495
+ ausgelagert, der sich die bekannten Abkürzungen aus einem eigenen
425
496
  Wörterbuch holt. <b>Bitte in den Konfig-Dateien berücksichtigen!</b>
426
497
 
427
498
  * <b>Datenformate in <tt>de.lang</tt> vereinfacht</b>
428
499
 
429
500
  Die Datenformate für den _Tokenizer_ und die _Suffix_e haben sich in der
430
- Sprachkonfigurationsdatei de.lang geändert. Sofern eine alte de.lang-Datei mit dieser
431
- Version zusammen laufen soll, <b>bitte in den Konfig-Dateien berücksichtigen!</b>
501
+ Sprachkonfigurationsdatei de.lang geändert. Sofern eine alte de.lang-Datei
502
+ mit dieser Version zusammen laufen soll, <b>bitte in den Konfig-Dateien
503
+ berücksichtigen!</b>
432
504
 
433
505
  * <b>Attendees überarbeitet</b>
434
506
 
435
- Das Verhalten der Attendees wurde homogenisiert. Als zusätzliche Klasse wurde
436
- der BufferedAttendee eingeführt, der den Eingabe-Strom zwischen speichern kann
437
- und den angestauten Buffer mit einem mal verarbeiten kann. Dies ist insbesondere
438
- förderlich für die Attendees Multiworder und Sequencer, die eine Kette von Objekten
439
- untersuchen müssen.
507
+ Das Verhalten der Attendees wurde homogenisiert. Als zusätzliche Klasse
508
+ wurde der BufferedAttendee eingeführt, der den Eingabe-Strom zwischen
509
+ speichern kann und den angestauten Buffer mit einem mal verarbeiten kann.
510
+ Dies ist insbesondere förderlich für die Attendees Multiworder und
511
+ Sequencer, die eine Kette von Objekten untersuchen müssen.
440
512
 
441
513
  * <b>Dokumentation erstellt</b>
442
514
 
443
- Für alle Attendees gibt es jetzt reichlich Dokumentation, die mit doc/index.html
444
- aufgerufen werden kann. Weitere Dokumentation muss noch folgen...
515
+ Für alle Attendees gibt es jetzt reichlich Dokumentation, die mit
516
+ doc/index.html aufgerufen werden kann. Weitere Dokumentation muss
517
+ noch folgen...
445
518
 
446
519
  == 1.4.2 [2005-10-11]
447
520
 
@@ -454,16 +527,17 @@
454
527
 
455
528
  * <b>_Synonymer_ verarbeitet jetzt WIRKLICH mehrere Wörterbücher</b>
456
529
 
457
- Aus einem mir bislang unbekannten Grund sind die in der letzten Version gemachten
458
- Änderungen nicht übernommen worden. Ist bereinigt.
530
+ Aus einem mir bislang unbekannten Grund sind die in der letzten Version
531
+ gemachten Änderungen nicht übernommen worden. Ist bereinigt.
459
532
 
460
533
  * <b><i>Vector_filter</i> mit geändertem +sort+-Parameter</b>
461
534
 
462
- Der +sort+-Parameter konnte vormals die Werte +normal+, +count+ und +term+ annehmen.
463
- Die Werte +count+ und +term+ wurden durch die Bezeichnungen +term_abs+ und +term_rel+
464
- ersetzt. Zusätzlich hinzugekommen sind die Werte +sto_abs+ und +sto_rel+, welche mit
465
- den o.g. korrespondieren, der Zahlenwert jedoch in geschweiften Klammern hinter dem
466
- Wort stehen. Dies ist notwendig für das _LIR_-Format.
535
+ Der +sort+-Parameter konnte vormals die Werte +normal+, +count+ und +term+
536
+ annehmen. Die Werte +count+ und +term+ wurden durch die Bezeichnungen
537
+ +term_abs+ und +term_rel+ ersetzt. Zusätzlich hinzugekommen sind die Werte
538
+ +sto_abs+ und +sto_rel+, welche mit den o.g. korrespondieren, der Zahlenwert
539
+ jedoch in geschweiften Klammern hinter dem Wort stehen. Dies ist notwendig
540
+ für das _LIR_-Format.
467
541
 
468
542
  * <b>Für zukünftige Meldungen!</b>
469
543
 
@@ -474,13 +548,15 @@
474
548
 
475
549
  * <b>Neuer Attendee _Sequencer_</b>
476
550
 
477
- Der _Sequencer_ erkennt Mehrwortgruppen, die nicht über ein Wörterbuch vorgegeben
478
- werden müssen, sondern über ihre Wortklassen erkannt werden. Steht z.B. in
479
- <tt>de.lang:language/attendees/sequencer/sequences: [ [AS, "2, 1"], [AK, "2, 1"] ]</tt>
480
- so werden Wortfolgen der Art Adjektiv-Subjektiv und Adjektiv-Kompositum erkannt
481
- und in der in Gänsefüsschen angegebenen Form als Indexeintrag bereitgestellt.
482
- So wird 'geniale Indexierung' als 'indexierung, genial' in Form eines zusätzlichen
483
- Wortes in den Ausgabestrom eingefügt mit Attribut +SEQ+ und der Wortklasse +q+.
551
+ Der _Sequencer_ erkennt Mehrwortgruppen, die nicht über ein Wörterbuch
552
+ vorgegeben werden müssen, sondern über ihre Wortklassen erkannt werden.
553
+ Steht z.B. in <tt>de.lang:language/attendees/sequencer/sequences:
554
+ [ [AS, "2, 1"], [AK, "2, 1"] ]</tt> so werden Wortfolgen der Art
555
+ Adjektiv-Subjektiv und Adjektiv-Kompositum erkannt und in der in
556
+ Gänsefüsschen angegebenen Form als Indexeintrag bereitgestellt. So wird
557
+ 'geniale Indexierung' als 'indexierung, genial' in Form eines zusätzlichen
558
+ Wortes in den Ausgabestrom eingefügt mit Attribut +SEQ+ und der Wortklasse
559
+ +q+.
484
560
 
485
561
  * <b>Bugfixing Kompositum-Caching</b>
486
562
 
@@ -490,41 +566,42 @@
490
566
 
491
567
  * <b>_Synonymer_ verarbeitet mehrere Wörterbücher</b>
492
568
 
493
- Mit Angabe des Parameters <tt>mode=all</tt> kann der _Synonymer_ jetzt auch mehrere
494
- Wörterbücher verarbeiten.
569
+ Mit Angabe des Parameters <tt>mode=all</tt> kann der _Synonymer_ jetzt
570
+ auch mehrere Wörterbücher verarbeiten.
495
571
 
496
572
  == 1.3.1 [2005-08-18]
497
573
 
498
574
  * <b>Neuer Attendee _Objectfilter_</b>
499
575
 
500
576
  Als Basis für eine eher allgemeinere und flexiblere Filter-Möglichkeit im
501
- Vergleich zum <i>Noneword_filter</i> kann der _Objectfilter_ alle Arten von Selektion
502
- vornehmen. Das Attribut +objects+ ist eine Ruby-Bedingung, die, wenn sie als
503
- +false+ ausgewertet wird, dass aktuelle Objekt filtert.
577
+ Vergleich zum <i>Noneword_filter</i> kann der _Objectfilter_ alle Arten von
578
+ Selektion vornehmen. Das Attribut +objects+ ist eine Ruby-Bedingung, die,
579
+ wenn sie als +false+ ausgewertet wird, dass aktuelle Objekt filtert.
504
580
 
505
581
  == 1.3.0 [2005-08-03]
506
582
 
507
583
  * <b>Neuer Attendee _Compositizer_</b>
508
584
 
509
- Die Kompositumzerlegung war bisher im Attendee _Wordsearcher_ enthalten. Dadurch
510
- wurden für die Zerlegung immer die gleichen Wörterbücher benutzt, die auf für
511
- die Wortsuche verwendet wurden. Durch die Trennung ist eine separate Angabe
512
- von Wörterbüchern möglich.
585
+ Die Kompositumzerlegung war bisher im Attendee _Wordsearcher_ enthalten.
586
+ Dadurch wurden für die Zerlegung immer die gleichen Wörterbücher benutzt,
587
+ die auf für die Wortsuche verwendet wurden. Durch die Trennung ist eine
588
+ separate Angabe von Wörterbüchern möglich.
513
589
 
514
590
  * <b>Testing</b>
515
591
 
516
592
  Ausführliche Testroutinen sind erstellt worden, welche die Folge-Releases
517
593
  deutlich stabiler machen werden. Innerhalb einer Sekunde sind sämtlich
518
- Attendees durchgetestet. Die durchgeführten Tests basieren auf Fehlermeldungen
519
- und Anregungen aus vergangenen E-Mails. Sie können jederzeit erweitert werden.
520
- In diesem Zusammenhand ist auf die Basisklasse aller Attendees (vorher Lingo)
521
- neu erstellt worden. In Verbindung mit der Einführung von YAML als
522
- Konfigurationssprache wurden diese automatischen Tests erst möglich.
594
+ Attendees durchgetestet. Die durchgeführten Tests basieren auf
595
+ Fehlermeldungen und Anregungen aus vergangenen E-Mails. Sie können
596
+ jederzeit erweitert werden. In diesem Zusammenhand ist auf die Basisklasse
597
+ aller Attendees (vorher Lingo) neu erstellt worden. In Verbindung mit der
598
+ Einführung von YAML als Konfigurationssprache wurden diese automatischen
599
+ Tests erst möglich.
523
600
 
524
601
  * <b>YAML</b>
525
602
 
526
- Bei YAML unbedingt darauf achten, dass keine TABs verwendet werden. YAML ist
527
- da sehr empfindlich.
603
+ Bei YAML unbedingt darauf achten, dass keine TABs verwendet werden. YAML
604
+ ist da sehr empfindlich.
528
605
 
529
606
  == 1.2.1 [2005-07-03]
530
607
 
@@ -538,35 +615,36 @@
538
615
 
539
616
  * <b><i>Vector_Filter</i> mit Term-Frequenz</b>
540
617
 
541
- Wird beim Attendee <i>Vector_filter</i> das Attribut <tt>sort='term'</tt> angegeben,
542
- wird statt der absoluten Zahl (wie bei <tt>sort='count'</tt>) die Term-Frequenz
543
- eines Wortes ermittelt. Die Term-Frequenz bezieht sich auf die Anzahl Worte in der
544
- Datei. Diese wiederum können über das Attribut <tt>no-count</tt> gesteuert werden.
545
- Das Attribut entscheidet darüber, welche Wort-Typen nicht in die Gesamtwortanzahl
546
- der Worte in der Datei berücksichtigt werden. Default hierfür ist
547
- <tt>no-count='PUNCT,OTH_C'</tt>.
618
+ Wird beim Attendee <i>Vector_filter</i> das Attribut <tt>sort='term'</tt>
619
+ angegeben, wird statt der absoluten Zahl (wie bei <tt>sort='count'</tt>)
620
+ die Term-Frequenz eines Wortes ermittelt. Die Term-Frequenz bezieht sich
621
+ auf die Anzahl Worte in der Datei. Diese wiederum können über das Attribut
622
+ <tt>no-count</tt> gesteuert werden. Das Attribut entscheidet darüber,
623
+ welche Wort-Typen nicht in die Gesamtwortanzahl der Worte in der Datei
624
+ berücksichtigt werden. Default hierfür ist <tt>no-count='PUNCT,OTH_C'</tt>.
548
625
 
549
626
  * <b>Kompositum-Zerlegung mit weiterer Einschränkung</b>
550
627
 
551
628
  Ein weiterer Parameter ist für die Kompositumzerlegung hinzugekommen. Als
552
- Attribute des Tags <tt>XML:dictionary/compound</tt> können jetzt angegeben werden:
629
+ Attribute des Tags <tt>XML:dictionary/compound</tt> können jetzt angegeben
630
+ werden:
553
631
 
554
- Attribut Default Funktion
555
- ============================================================================
556
- min-word-size 8 Prüft nur Wörter ab dieser Größe auf Kompositum
632
+ Attribut Default Funktion
633
+ ========================================================================
634
+ min-word-size 8 Prüft nur Wörter ab dieser Größe auf Kompositum
557
635
 
558
636
  Die folgenden Attribute werden auf gefundene Komposita angewendet. Das
559
637
  Kompositum muss diese Prüfung bestehen, um gewertet zu werden.
560
638
 
561
- min-avg-part-size 4 Die durchschnittliche Größe aller Wortteile muss
562
- mindestens diesen Wert haben
563
- min-part-size 1 Jeder Wortteil muss mindestens so groß sein
564
- max-parts 4 Es darf höchstens so viele Wortteile geben.
639
+ min-avg-part-size 4 Die durchschnittliche Größe aller Wortteile muss
640
+ mindestens diesen Wert haben
641
+ min-part-size 1 Jeder Wortteil muss mindestens so groß sein
642
+ max-parts 4 Es darf höchstens so viele Wortteile geben.
565
643
 
566
644
  * <b>Install-Routine um Linux-Kommandos erweitert</b>
567
645
 
568
- Die Install-Routine sollte jetzt alle Aufgaben sowohl auf Windows wie auch Linux
569
- komplett abschließen können.
646
+ Die Install-Routine sollte jetzt alle Aufgaben sowohl auf Windows wie auch
647
+ Linux komplett abschließen können.
570
648
 
571
649
  * <b>Zu lange Datensätze</b>
572
650
 
@@ -579,42 +657,42 @@
579
657
 
580
658
  * <b>Test-Routinen erweitert</b>
581
659
 
582
- Insbesondere die Sortierung von Lexicals wurde noch einmal intensiv unter die
583
- Lupe genommen. Dabei sind ein paar kleine Dinge noch begradigt worden.
660
+ Insbesondere die Sortierung von Lexicals wurde noch einmal intensiv unter
661
+ die Lupe genommen. Dabei sind ein paar kleine Dinge noch begradigt worden.
584
662
 
585
663
  * <b>Install-Routine bereinigt</b>
586
664
 
587
- Install.rb soll in Richtung Plattformunabhängigkeit weiterentwickelt werden, so
588
- dass auch Linux nicht zu kurz kommt. Da fehlen noch ein paar Kommandos, aber
589
- die Routine wird euch zu gegebener Zeit fragen :o)
665
+ Install.rb soll in Richtung Plattformunabhängigkeit weiterentwickelt
666
+ werden, so dass auch Linux nicht zu kurz kommt. Da fehlen noch ein paar
667
+ Kommandos, aber die Routine wird euch zu gegebener Zeit fragen :o)
590
668
  !!Einzelne Datenbanken können jetzt angesprochen werden!!
591
669
  Mit 'install -data -r rdk' werden z.B. alle Datenbanken, die rdk im Namen
592
- enthalten, gelöscht und mit 'install -data rdk' auch wieder hergestellt. Das sollte
593
- die Pflege der Datenbanken deutlich erleichtern.
670
+ enthalten, gelöscht und mit 'install -data rdk' auch wieder hergestellt.
671
+ Das sollte die Pflege der Datenbanken deutlich erleichtern.
594
672
 
595
673
  * <b>VORSICHT: KNOWN ERROR</b>
596
674
 
597
- Die Datenbanken werden im Verzeichnis de/store gespeichert. Unter Linux scheint
598
- das Erstellen des Verzeichnisses noch nicht die richtigen Rechte mitzugeben.
599
- Teste ich noch unter Linux, bis dahin bitte das Unterverzeichnis vor dem Aufruf
600
- von Install von Hand anlegen!
675
+ Die Datenbanken werden im Verzeichnis de/store gespeichert. Unter Linux
676
+ scheint das Erstellen des Verzeichnisses noch nicht die richtigen Rechte
677
+ mitzugeben. Teste ich noch unter Linux, bis dahin bitte das Unterverzeichnis
678
+ vor dem Aufruf von Install von Hand anlegen!
601
679
 
602
680
  == 1.1.0 [2005-06-18]
603
681
 
604
682
  * <b>Umstellung der Versionsnummernsystematik</b>
605
683
 
606
684
  Damit auch Patches und Bugfixes nicht als herrenloses Archiv ausgetauscht
607
- werden müssen und jeden besser in Erinnerung verbleibt, wann welche Funktions-
608
- erweiterung dazu kam, gelten für die Veränderungen in den Versionsnummern
609
- folgende Regeln:
685
+ werden müssen und jeden besser in Erinnerung verbleibt, wann welche
686
+ Funktionserweiterung dazu kam, gelten für die Veränderungen in den
687
+ Versionsnummern folgende Regeln:
610
688
  X.0.0 Die erste Stelle kennzeichnet einen grundlegenden architektonischen
611
- Umbau von Lingo, wie z.B. den Wechsel von Rubyling auf Lingo. Im Zweifel
612
- zählt hierzu auch eine zehnmalige Funktionserweiterung :o)
613
- 0.X.0 Die zweite Stelle kennzeichnet eine Funktionserweiterung, wie z.B. die
614
- Verarbeitung von Mehrwortgruppen.
689
+ Umbau von Lingo, wie z.B. den Wechsel von Rubyling auf Lingo. Im
690
+ Zweifel zählt hierzu auch eine zehnmalige Funktionserweiterung :o)
691
+ 0.X.0 Die zweite Stelle kennzeichnet eine Funktionserweiterung, wie z.B.
692
+ die Verarbeitung von Mehrwortgruppen.
615
693
  0.0.X Die letzte Stelle ist für Bugfixes vorbehalten.
616
- Gegebenenfalls kann der Versionsnummer noch ein kleiner Buchstabe folgen, der
617
- anzeigt, dass sich lediglich an der Dokumentation etwas geändert hat.
694
+ Gegebenenfalls kann der Versionsnummer noch ein kleiner Buchstabe folgen,
695
+ der anzeigt, dass sich lediglich an der Dokumentation etwas geändert hat.
618
696
  Gestartet wird mit der 1.1.0 (Erweiterung um Mehrworterkennung), die im
619
697
  wesentlichen der Vorversion (alte Systematik) entspricht.
620
698
 
@@ -622,46 +700,47 @@
622
700
 
623
701
  * <b>Datenbankformat und -zugriff vereinheitlicht</b>
624
702
 
625
- Bisher gab es drei verschiedene Datenformate für Wörterbücher, Synonyme und
626
- Mehrwortgruppen. Alle drei Typen finden sich nun in einem universellen Format
627
- wieder.
628
- Ebenso wurde der Zugriff auf die Daten modifiziert. Wurden vorher je nach Typ
629
- einmal eine Liste der erkannten Grundformen (Lexical) als Ergebnis erzeugt und ein
630
- anderes mal nur eine Zeichenkette zurück gegeben, werden jetzt alle Zugriffe auf
631
- die Daten als Lexical-Liste generiert. Dies hatte Auswirkungen auf die
632
- Synonymerkennung, da bisher die die Wortklasse 'y' aus dem Programm und nicht
633
- aus den Datendateien kam.
703
+ Bisher gab es drei verschiedene Datenformate für Wörterbücher, Synonyme
704
+ und Mehrwortgruppen. Alle drei Typen finden sich nun in einem universellen
705
+ Format wieder.
706
+ Ebenso wurde der Zugriff auf die Daten modifiziert. Wurden vorher je nach
707
+ Typ einmal eine Liste der erkannten Grundformen (Lexical) als Ergebnis
708
+ erzeugt und ein anderes mal nur eine Zeichenkette zurück gegeben, werden
709
+ jetzt alle Zugriffe auf die Daten als Lexical-Liste generiert. Dies hatte
710
+ Auswirkungen auf die Synonymerkennung, da bisher die die Wortklasse 'y'
711
+ aus dem Programm und nicht aus den Datendateien kam.
634
712
 
635
713
  * <b>Multiworder verarbeitet mehrere Datenbanken</b>
636
714
 
637
- Die Verarbeitung von mehreren Datenbanken für einen Zugriff wird normalerweise
638
- in der Klasse Dictionary erledigt. Da der Multiworder jedoch die Funktionen der
639
- Dictionary-Klasse nicht benötigt, greift er direkt auf die Klasse DataSource zu,
640
- welche diese Funktion nicht besitzt. Daher musste die Verarbeitung mehrerer
641
- Datendateien im Multiworder selbst erfolgen.
715
+ Die Verarbeitung von mehreren Datenbanken für einen Zugriff wird
716
+ normalerweise in der Klasse Dictionary erledigt. Da der Multiworder
717
+ jedoch die Funktionen der Dictionary-Klasse nicht benötigt, greift er
718
+ direkt auf die Klasse DataSource zu, welche diese Funktion nicht besitzt.
719
+ Daher musste die Verarbeitung mehrerer Datendateien im Multiworder selbst
720
+ erfolgen.
642
721
 
643
722
  == 1.0.3 [2005-05-21]
644
723
 
645
724
  * <b>Multiworder fertig!</b>
646
725
 
647
- Mit dem neuen Attendee Multiworder werden Mehrwortgruppen locker und schnell
648
- erkannt. Erkannte Gruppen werden als als zusätzliches (Dummy-)Wort mit in den
649
- Datenstrom eingespeist. Die Geschwindigkeit wird dadurch erreicht, dass die
650
- Mehrwortgruppen in Ihren jeweiligen Grundformen gespeichert werden. Das ist
651
- genau dass, was der Multiworder frei Haus geliefert bekommt. Das klappt
652
- wunderbar, wenn für den Multiworder-Lauf und die Ersterstellung des
653
- Mehrwörterbuches die gleichen Wörterbücher verwendet werden.
654
- Soll heißen, wenn zu einem späteren Zeitpunkt zusätzliche Wörterbücher hinzu
655
- gezogen werden, kann eine erneute Erstellung der Mehrwörterbuches Sinn
656
- machen, um die Erkennungsquote zu verbessern.
657
- Diese Version arbeitet mit einem abgespeckten Mehrwörterbuch.
726
+ Mit dem neuen Attendee Multiworder werden Mehrwortgruppen locker und
727
+ schnell erkannt. Erkannte Gruppen werden als als zusätzliches (Dummy-)Wort
728
+ mit in den Datenstrom eingespeist. Die Geschwindigkeit wird dadurch
729
+ erreicht, dass die Mehrwortgruppen in Ihren jeweiligen Grundformen
730
+ gespeichert werden. Das ist genau dass, was der Multiworder frei Haus
731
+ geliefert bekommt. Das klappt wunderbar, wenn für den Multiworder-Lauf
732
+ und die Ersterstellung des Mehrwörterbuches die gleichen Wörterbücher
733
+ verwendet werden. Soll heißen, wenn zu einem späteren Zeitpunkt
734
+ zusätzliche Wörterbücher hinzu gezogen werden, kann eine erneute
735
+ Erstellung der Mehrwörterbuches Sinn machen, um die Erkennungsquote zu
736
+ verbessern. Diese Version arbeitet mit einem abgespeckten Mehrwörterbuch.
658
737
 
659
738
  * <b>Install.rb weiter ausgebaut</b>
660
739
 
661
- Die einzelnen Installationsphasen können jetzt auch einzeln aufgerufen werden.
662
- Mit den Optionen -data, -test und -docu können die jeweiligen Phasen wiederholt
663
- werden. Mit der zusätzlichen Option -r kann auch alles wieder rückgängig gemacht
664
- werden.
740
+ Die einzelnen Installationsphasen können jetzt auch einzeln aufgerufen
741
+ werden. Mit den Optionen -data, -test und -docu können die jeweiligen
742
+ Phasen wiederholt werden. Mit der zusätzlichen Option -r kann auch alles
743
+ wieder rückgängig gemacht werden.
665
744
 
666
745
  == 1.0.2 [2005-04-30]
667
746
 
@@ -674,9 +753,10 @@
674
753
  * <b>Forget MySQL</b>
675
754
 
676
755
  Als erstes filebasiertes Datenzugriffssystem wurde SDBM integriert. Darüber
677
- wird MySQL überflüssig. Alle relevanten Daten liegen im Unterverzeichnis /de.
678
- Siehe auch de.xml:<datasource>. Vor der ersten Nutzung sollten die SDBM-
679
- Dateien mit ruby dbm.rb erzeugt werden. (wird durch install.rb erledigt)
756
+ wird MySQL überflüssig. Alle relevanten Daten liegen im Unterverzeichnis
757
+ /de. Siehe auch de.xml:<datasource>. Vor der ersten Nutzung sollten die
758
+ SDBM-Dateien mit ruby dbm.rb erzeugt werden. (wird durch install.rb
759
+ erledigt)
680
760
 
681
761
  * <b>Sortierung im Vector_filter verbessert</b>
682
762
 
@@ -697,40 +777,43 @@
697
777
 
698
778
  * <b>Kompositumverarbeitung im Vector_filter</b>
699
779
 
700
- Neben der Kompositum-Grundform werden jetzt auch die Grundformen der Wort-
701
- Teile mit eingesackt.
780
+ Neben der Kompositum-Grundform werden jetzt auch die Grundformen der
781
+ Wort-Teile mit eingesackt.
702
782
 
703
783
  == 1.0.0 [2005-04-26]
704
784
 
705
785
  * <b>Dokumentation erstellt</b>
706
786
 
707
- Sie ist zwar noch teilweise verteilt, aber sie ist da, z.B. in doc/index.html oder
708
- in Config.doc. Einigermaßen fertig (war ich nach der Erstellung). Bitte um
709
- Feedback was besser geht und was fehlt.
787
+ Sie ist zwar noch teilweise verteilt, aber sie ist da, z.B. in
788
+ doc/index.html oder in Config.doc. Einigermaßen fertig (war ich nach
789
+ der Erstellung). Bitte um Feedback was besser geht und was fehlt.
710
790
 
711
791
  * <b>Attendees überarbeitet</b>
712
792
 
713
793
  Sehen jetzt noch einfacher aus. Brauchen nur noch die Methoden
714
- init - Zur Bereitstellung von Parametern und Konfiguration für die anderen Meth.
794
+ init - Zur Bereitstellung von Parametern und Konfiguration für die
795
+ anderen Meth.
715
796
  control - Zur Verarbeitung von Kommandos
716
797
  process - Zur Ver- und Bearbeitung von zugestellten Objekten
717
798
 
718
799
  * <b>Dictionary aufgesplittet</b>
719
800
 
720
- Da es mittlerweile drei Attendees gibt, die Datenbankzugriff brauchen, ist das
721
- Dictionary eine Hauptklasse geworden. Dazu gibt es eine rudimentärere Klasse,
722
- auf die das Dictionary sich für den Datenzugriff stützt: Datasource.
723
- Diese Klasse nutzt die vollen Möglichkeiten eines eigenen Datencaches, welches
724
- die Performance noch einmal deutlich verbessert hat.
801
+ Da es mittlerweile drei Attendees gibt, die Datenbankzugriff brauchen, ist
802
+ das Dictionary eine Hauptklasse geworden. Dazu gibt es eine rudimentärere
803
+ Klasse, auf die das Dictionary sich für den Datenzugriff stützt: Datasource.
804
+ Diese Klasse nutzt die vollen Möglichkeiten eines eigenen Datencaches,
805
+ welches die Performance noch einmal deutlich verbessert hat.
725
806
 
726
807
  * <b>Konfiguration aufgesplittet</b>
727
808
 
728
- Ja ja, mein Lieblingsthema, aber ohne eine saubere Konfigurationsmöglichkeit ist
729
- Lingo leider nix Wert. Gibt jetzt
730
- lingo.xml - Zur Konfiguration der Kommandozeilenoptionen
731
- de.xml - Enthält die sprachrelevante Konfiguration
732
- <ablauf>.xml - Enthält die Lingo-Konfiguration, z.B. rubyling.xml oder ocr.xml
733
- Mit ruby lingo.rb -c <ablauf> kann jeweils eine andere Konfig. gezogen werden.
809
+ Ja ja, mein Lieblingsthema, aber ohne eine saubere Konfigurationsmöglichkeit
810
+ ist Lingo leider nix Wert. Gibt jetzt
811
+ lingo.xml - Zur Konfiguration der Kommandozeilenoptionen
812
+ de.xml - Enthält die sprachrelevante Konfiguration
813
+ <ablauf>.xml - Enthält die Lingo-Konfiguration, z.B. rubyling.xml oder
814
+ ocr.xml
815
+ Mit ruby lingo.rb -c <ablauf> kann jeweils eine andere Konfig. gezogen
816
+ werden.
734
817
 
735
818
  == 0.9.8 [2005-04-16]
736
819
 
@@ -755,11 +838,12 @@
755
838
 
756
839
  * <b>Konfiguration mit Lingo.xml</b>
757
840
 
758
- Konfiguration vollständig überarbeitet. Lingo.cfg heißt jetzt lingo.xml. Mit dieser
759
- Endung ist sie leichter mit SciTe editierbar. Die Klasse LingoConfig kann jetzt (fast)
760
- generische XML-Syntax verarbeiten. Die Werte werden auf sehr einfache Weise
761
- im Code bereitgestellt. Hinzu kommt, dass die Aufruf-Parameter ebenfalls über
762
- diesen Weg zur Verfügung stehen. Dokumentation muss folgen :o)
841
+ Konfiguration vollständig überarbeitet. Lingo.cfg heißt jetzt lingo.xml.
842
+ Mit dieser Endung ist sie leichter mit SciTe editierbar. Die Klasse
843
+ LingoConfig kann jetzt (fast) generische XML-Syntax verarbeiten. Die Werte
844
+ werden auf sehr einfache Weise im Code bereitgestellt. Hinzu kommt, dass
845
+ die Aufruf-Parameter ebenfalls über diesen Weg zur Verfügung stehen.
846
+ Dokumentation muss folgen :o)
763
847
 
764
848
  == 1.4.1 [2005-03-18] (Rubyling)
765
849
 
@@ -767,32 +851,34 @@
767
851
 
768
852
  Programm zeigte keine Reaktion mehr auf Laptop nach Standby. Daher stoppen
769
853
  und starten des MySQL-Dienstes eingebaut. Load_wbs.rb von Archiv rubyling_de
770
- nach rubyling verschoben (Version aus rubyling_de im nächsten Release entfernen!)
854
+ nach rubyling verschoben (Version aus rubyling_de im nächsten Release
855
+ entfernen!)
771
856
 
772
857
  * <b>Rubyling Parameter korrigiert</b>
773
858
 
774
- Für Programmtests waren Parameter im Programm verdrahtet. Kommandozeile wurde
775
- ignoriert.
859
+ Für Programmtests waren Parameter im Programm verdrahtet. Kommandozeile
860
+ wurde ignoriert.
776
861
 
777
862
  == 1.4.0 [2005-03-18] (Rubyling)
778
863
 
779
864
  * <b>Interne Klassenhierarchie umgebaut</b>
780
865
 
781
- In der Datei word.rb sind nun die Klassen unterschieden nach Token, Lexical und
782
- Word inkl. weiterer Hilfsklassen.
866
+ In der Datei word.rb sind nun die Klassen unterschieden nach Token, Lexical
867
+ und Word inkl. weiterer Hilfsklassen.
783
868
 
784
869
  * <b>Synonymverarbeitung eingebaut</b>
785
870
 
786
- Erkannte Worte werden zusätzlich auf Synonyme hin geprüft. Die Liste der Grundformen
787
- des Wortes wird dann um die gefundenen Synonyme erweitert. Die Synonym-Wörterbücher
788
- sind wie gewohnt in ruby.cfg unter database/synonym konfigurierbar. Derzeit wird
789
- openthesaurus als einziges Wörterbuch benutzt. Um openthesaurus zu nutzen, sei
790
- das Archiv rubyling_de(v1.0) wärmstens empfohlen.
871
+ Erkannte Worte werden zusätzlich auf Synonyme hin geprüft. Die Liste der
872
+ Grundformen des Wortes wird dann um die gefundenen Synonyme erweitert. Die
873
+ Synonym-Wörterbücher sind wie gewohnt in ruby.cfg unter database/synonym
874
+ konfigurierbar. Derzeit wird openthesaurus als einziges Wörterbuch benutzt.
875
+ Um openthesaurus zu nutzen, sei das Archiv rubyling_de (v1.0) wärmstens
876
+ empfohlen.
791
877
 
792
878
  * <b>Nicht erkannte Wörter</b>
793
879
 
794
- Als zusätzliche Datei wird jetzt auch noch eine Endung .non erzeugt, die alle
795
- nicht erkannten Wörter beinhaltet
880
+ Als zusätzliche Datei wird jetzt auch noch eine Endung .non erzeugt, die
881
+ alle nicht erkannten Wörter beinhaltet
796
882
 
797
883
  * <b>Schnelle Installation</b>
798
884
 
@@ -801,40 +887,42 @@
801
887
  dokumentieren. Alle Archive sind so aufgebaut, dass sie im Verzeichnis
802
888
  rubyling entpackt werden können.
803
889
 
804
- Archiv Ziel Inhalt
805
- ----------------------------------------------------------------------------
806
- rubyling(v1.4) /rubyling Programm, Konfiguration und Dokumentation
807
- rubyling_de(v1.0) /rubyling/de Wörterbücher und Programm zum DB-Aufbau
808
- rubyling_txt(v1.0) /rubyling/txt Texte zum testen
890
+ Archiv Ziel Inhalt
891
+ --------------------------------------------------------------------------
892
+ rubyling(v1.4) /rubyling Programm, Konfiguration und Dokumentation
893
+ rubyling_de(v1.0) /rubyling/de Wörterbücher und Programm zum DB-Aufbau
894
+ rubyling_txt(v1.0) /rubyling/txt Texte zum testen
809
895
 
810
896
  == 1.3.0 [2005-02] (Rubyling)
811
897
 
812
898
  * <b>Inline-Dokumentation erstellt</b>
813
899
 
814
- Mit Prozedur make_doc.cmd HTML-Seiten erstellen, dann doc\index.html aufrufen
900
+ Mit Prozedur make_doc.cmd HTML-Seiten erstellen, dann doc\index.html
901
+ aufrufen
815
902
 
816
903
  * <b>Konfiguration komplett überarbeitet</b>
817
904
 
818
- Eine zentrale Konfigurationsdatei ruby.cfg enthält im XML-Style alle Parameter,
819
- z.B. "<parm1 value='15'/>" in Ruby durch $CFG['parm1'] abfragbar. ruby-token.txt
820
- und ruby-suffix.txt sind nicht mewhr notwendig.
905
+ Eine zentrale Konfigurationsdatei ruby.cfg enthält im XML-Style alle
906
+ Parameter, z.B. "<parm1 value='15'/>" in Ruby durch $CFG['parm1']
907
+ abfragbar. ruby-token.txt und ruby-suffix.txt sind nicht mewhr notwendig.
821
908
 
822
909
  * <b>Reduzierung der linguistisch relevanten Klassen auf zwei Klassen</b>
823
910
 
824
- TextFile erweitert die Klasse File und ermöglicht die Datei-Verarbeitung auf
825
- Tokenbasis.
826
- Dictionary enthält mit der Methode search() die zentrale Schnittstelle für die
827
- Wörterbuch-Recherche (inkl. Stopwörtern, Suffixbehandlung und Kompositumzerlegung).
911
+ TextFile erweitert die Klasse File und ermöglicht die Datei-Verarbeitung
912
+ auf Tokenbasis.
913
+ Dictionary enthält mit der Methode search() die zentrale Schnittstelle
914
+ für die Wörterbuch-Recherche (inkl. Stopwörtern, Suffixbehandlung und
915
+ Kompositumzerlegung).
828
916
 
829
- * Rubyling erkennt bei Aufruf automatisch (jetzt richtig) das Dateiobjekt und
830
- unterscheidet Textdatei, Verzeichnis und DB-Datei (z.B. lir.txt). In den ersten
831
- beiden Fällen werden je Textdatei drei Ausgabedateien erstellt, die eine weitere
832
- Verbesserung der Verarbeitung ermöglichen:
917
+ * Rubyling erkennt bei Aufruf automatisch (jetzt richtig) das Dateiobjekt
918
+ und unterscheidet Textdatei, Verzeichnis und DB-Datei (z.B. lir.txt). In
919
+ den ersten beiden Fällen werden je Textdatei drei Ausgabedateien erstellt,
920
+ die eine weitere Verbesserung der Verarbeitung ermöglichen:
833
921
  .tok = Textfile in Token je Zeile zerlegt;
834
922
  .dic = Token mit Auflösung nach Wörterbuchzugriff;
835
923
  .vec = Inhaltsvektor der Datei.
836
924
 
837
925
  == Rubyling x.x vor dem 01.02.2005
838
926
 
839
- * Diverse Versionen, von denen Klaus meint, sie hätten noch keine eins vor dem Punkt
840
- verdient :o(
927
+ * Diverse Versionen, von denen Klaus meint, sie hätten noch keine eins vor
928
+ dem Punkt verdient :o(