lingo 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/.rspec +1 -0
  2. data/COPYING +663 -0
  3. data/ChangeLog +754 -0
  4. data/README +322 -0
  5. data/Rakefile +100 -0
  6. data/TODO +28 -0
  7. data/bin/lingo +5 -0
  8. data/bin/lingoctl +6 -0
  9. data/de.lang +121 -0
  10. data/de/lingo-abk.txt +74 -0
  11. data/de/lingo-dic.txt +56822 -0
  12. data/de/lingo-mul.txt +3209 -0
  13. data/de/lingo-syn.txt +14841 -0
  14. data/de/test_dic.txt +24 -0
  15. data/de/test_mul.txt +17 -0
  16. data/de/test_mul2.txt +2 -0
  17. data/de/test_singleword.txt +2 -0
  18. data/de/test_syn.txt +4 -0
  19. data/de/test_syn2.txt +1 -0
  20. data/de/user-dic.txt +10 -0
  21. data/en.lang +113 -0
  22. data/en/lingo-dic.txt +55434 -0
  23. data/en/lingo-mul.txt +456 -0
  24. data/en/user-dic.txt +5 -0
  25. data/info/Objekte.png +0 -0
  26. data/info/Typen.png +0 -0
  27. data/info/database.png +0 -0
  28. data/info/db_small.png +0 -0
  29. data/info/download.png +0 -0
  30. data/info/gpl-hdr.txt +27 -0
  31. data/info/kerze.png +0 -0
  32. data/info/language.png +0 -0
  33. data/info/lingo.png +0 -0
  34. data/info/logo.png +0 -0
  35. data/info/meeting.png +0 -0
  36. data/info/types.png +0 -0
  37. data/lib/lingo.rb +321 -0
  38. data/lib/lingo/attendee/abbreviator.rb +119 -0
  39. data/lib/lingo/attendee/debugger.rb +111 -0
  40. data/lib/lingo/attendee/decomposer.rb +101 -0
  41. data/lib/lingo/attendee/dehyphenizer.rb +167 -0
  42. data/lib/lingo/attendee/multiworder.rb +301 -0
  43. data/lib/lingo/attendee/noneword_filter.rb +103 -0
  44. data/lib/lingo/attendee/objectfilter.rb +86 -0
  45. data/lib/lingo/attendee/sequencer.rb +190 -0
  46. data/lib/lingo/attendee/synonymer.rb +105 -0
  47. data/lib/lingo/attendee/textreader.rb +237 -0
  48. data/lib/lingo/attendee/textwriter.rb +196 -0
  49. data/lib/lingo/attendee/tokenizer.rb +218 -0
  50. data/lib/lingo/attendee/variator.rb +185 -0
  51. data/lib/lingo/attendee/vector_filter.rb +158 -0
  52. data/lib/lingo/attendee/wordsearcher.rb +96 -0
  53. data/lib/lingo/attendees.rb +289 -0
  54. data/lib/lingo/cli.rb +62 -0
  55. data/lib/lingo/config.rb +104 -0
  56. data/lib/lingo/const.rb +131 -0
  57. data/lib/lingo/ctl.rb +173 -0
  58. data/lib/lingo/database.rb +587 -0
  59. data/lib/lingo/language.rb +530 -0
  60. data/lib/lingo/modules.rb +98 -0
  61. data/lib/lingo/types.rb +285 -0
  62. data/lib/lingo/utilities.rb +40 -0
  63. data/lib/lingo/version.rb +27 -0
  64. data/lingo-all.cfg +85 -0
  65. data/lingo-call.cfg +15 -0
  66. data/lingo.cfg +78 -0
  67. data/lingo.rb +3 -0
  68. data/lir.cfg +72 -0
  69. data/porter/stem.cfg +311 -0
  70. data/porter/stem.rb +150 -0
  71. data/spec/spec_helper.rb +0 -0
  72. data/test.cfg +79 -0
  73. data/test/attendee/ts_abbreviator.rb +35 -0
  74. data/test/attendee/ts_decomposer.rb +31 -0
  75. data/test/attendee/ts_multiworder.rb +390 -0
  76. data/test/attendee/ts_noneword_filter.rb +19 -0
  77. data/test/attendee/ts_objectfilter.rb +19 -0
  78. data/test/attendee/ts_sequencer.rb +43 -0
  79. data/test/attendee/ts_synonymer.rb +33 -0
  80. data/test/attendee/ts_textreader.rb +58 -0
  81. data/test/attendee/ts_textwriter.rb +98 -0
  82. data/test/attendee/ts_tokenizer.rb +32 -0
  83. data/test/attendee/ts_variator.rb +24 -0
  84. data/test/attendee/ts_vector_filter.rb +62 -0
  85. data/test/attendee/ts_wordsearcher.rb +119 -0
  86. data/test/lir.csv +3 -0
  87. data/test/lir.txt +12 -0
  88. data/test/lir2.txt +12 -0
  89. data/test/mul.txt +1 -0
  90. data/test/ref/artikel.mul +1 -0
  91. data/test/ref/artikel.non +159 -0
  92. data/test/ref/artikel.seq +270 -0
  93. data/test/ref/artikel.syn +16 -0
  94. data/test/ref/artikel.vec +928 -0
  95. data/test/ref/artikel.ven +928 -0
  96. data/test/ref/artikel.ver +928 -0
  97. data/test/ref/lir.csv +328 -0
  98. data/test/ref/lir.mul +1 -0
  99. data/test/ref/lir.non +274 -0
  100. data/test/ref/lir.seq +249 -0
  101. data/test/ref/lir.syn +94 -0
  102. data/test/test_helper.rb +113 -0
  103. data/test/ts_database.rb +269 -0
  104. data/test/ts_language.rb +396 -0
  105. data/txt/artikel-en.txt +157 -0
  106. data/txt/artikel.txt +170 -0
  107. data/txt/lir.txt +1317 -0
  108. metadata +211 -0
data/ChangeLog ADDED
@@ -0,0 +1,754 @@
1
+ = Revision history for Lingo
2
+
3
+ == 1.8.0 [2012-01-01]
4
+
5
+ * Ruby 1.8 officially no longer supported! Use Lingo 1.7.x instead.
6
+ * Executable may be run from outside installation root directory now.
7
+ See README for further details.
8
+ * Search path for dictionaries and configuration files; plugin system.
9
+ * Textreader can read from STDIN if no files given; leave out the +files+
10
+ parameter in the config for this to trigger.
11
+ * Status/performance details as well as progress information are now
12
+ printed on STDERR instead of STDOUT in order to not mix with regular
13
+ output. Learned '--log' option to write such information to a file.
14
+ * Additional internal refactorings. (To be continued...)
15
+
16
+ == 1.7.1 [2011-10-24]
17
+
18
+ * Multiworder actually finds the *longest* matching multiword group.
19
+ * Multiword entries in SingleWord dictionaries now respect <tt>def-wc</tt>;
20
+ new parameter <tt>def-mul-wc</tt> to control the word class for multiword
21
+ entries (defaults to <tt>def-wc</tt>). Use <tt>def-mul-wc: 'm'</tt> in your
22
+ <tt>.lang</tt> to restore the previous behaviour.
23
+ * New Attendee::Formatter for configurable output formatting as an alternative
24
+ to Attendee::Textwriter.
25
+ * New basic input filters to enable indexing of HTML/XML (and PDF?) files.
26
+ * Updated the system dictionary.
27
+ * Switched license to Affero GPL.
28
+
29
+ == 1.7.0 [2010-12-15]
30
+
31
+ * More Ruby 1.9 compatibility.
32
+ * Extended VectorFilter to double as enhanced Non(e)wordFilter.
33
+ * Fixed Sequencer to recognize additional word classes beyond the first.
34
+ * Fixed Sequencer to not prematurely flush the buffer, which led to a
35
+ decreased recognition rate.
36
+ * Housekeeping.
37
+
38
+ == 1.6.12 [2010-11-22]
39
+
40
+ * Ruby 1.9 compatibility, finally.
41
+ * Added lingoweb.rb, a plain & simple web frontend for Lingo.
42
+ * Added DIFF-LCS gem directly to Lingo distribution.
43
+
44
+ == 1.6.11 [2010-02-04]
45
+
46
+ * Redirect Lingo output to <tt>/dev/null</tt> during testing. Indicate error
47
+ with appropriate exit code.
48
+ * Replace usage of command-line diff with cross-plattform Ruby implementation
49
+ (requires diff-lcs[http://raa.ruby-lang.org/project/diff-lcs/]).
50
+ * Provide alternatives to standard zip command on windows platforms.
51
+ * Use +UNK+ itself if it doesn't have any lexicals.
52
+ * Use compo form instead of word form when lexicalizing compositum entry for
53
+ multiword dictionaries.
54
+ * LexicalHash#[] must use target (not source) form.
55
+ * Optionally, try to find matches for all lexicals a word has.
56
+ * Make '-' a PRINTABLE_CHAR.
57
+ * Allow synonyms to be considered for multiword matching.
58
+ * Don't use compositum parts.
59
+ * Introduced some (more or less arbitrary) line length limit. We can only
60
+ store values of a certain length anyway (with SDBM). Entries exceeding this
61
+ limit will be rejected and logged in the .rev file.
62
+
63
+ == 1.6.10 [2009-11-09]
64
+
65
+ * Prevent "infinite" backtracking in regular expressions.
66
+
67
+ == 1.6.9 [2009-08-13]
68
+
69
+ * Updated configs.
70
+
71
+ == 1.6.8 [2009-06-01]
72
+
73
+ * Partly reverted Ruby 1.9 compatibility where it clashed with the 1.8 series.
74
+
75
+ == 1.6.7 [2009-05-21]
76
+
77
+ * Initiale Bereitstellung von Lingo in Subversion
78
+ * BUGFIX: Token wurden durch den Caching-Mechanismus in ihrer Schreibweise
79
+ verändert (Groß-/Kleinschreibung).
80
+ * Englische Wörterbücher, ein Beispiel-Artikel und eine Konfiguration für das
81
+ Englische wurden aufgenommen. Aufruf mit lingo.rb -c lingo-en.cfg -l en <datei>.
82
+ * Integration der Testumgebung für Entwickler.
83
+ * Die Attendees in den Lingo-Konfigurationsdateien werden automatisch
84
+ verkettet. Dies erspart mühsame Verlinkung von Hand und macht die
85
+ Konfiguration lesbarer.
86
+ * Modified parameters for Tokenizer and building of databases to handle UTF-8
87
+ correctly. Printable characters from the ASCII charset and every UTF character
88
+ greater than x80 is now recognized as a non word breaking character. so now
89
+ diacritical characters are handled well.
90
+ * Added a command line option '-p' for lingo.rb for making detailed
91
+ performance mesurements possible for each single attendee.
92
+ * Allow Lingo.new to be called from a different directory. (Still need to
93
+ Dir.chdir to #talk because of the dictionaries...).
94
+ * Allow Textreader to read from STDIN.
95
+ * Allow Lingo to be called from an external library or program; pass a string
96
+ and get an array back.
97
+ * Allow Textwriter to write to STDOUT.
98
+ * Match suffixes case-insensitively.
99
+ * Don't exclude synonyms that are eponymous with the original word.
100
+ * Don't stop variating hyphenated words if any component was taken as-is.
101
+ * Basic Ruby 1.9 compatibility.
102
+ * Words should be counted per record, not per document, in LIR mode.
103
+ * Added Porter stemmer.
104
+
105
+ == 1.6.6 [2007-08-18]
106
+
107
+ * <b>Englische Wörterbücher ergänzt</b>
108
+
109
+ Lingo kann nun auch Englisch. Dazu muss beim Aufruf von Lingo die Option "-l en"
110
+ angegeben werden. Ein englischer Artikel ist unter txt/artikel-en.txt zu finden.
111
+
112
+ == 1.6.5 [2006-09-18]
113
+
114
+ * <b>Eckige Klammern als darstellbare Zeichen eingebaut</b>
115
+
116
+ == 1.6.4 [2006-05-29]
117
+
118
+ * <b>Neuer Attendee Dehyphenizer</b>
119
+
120
+ Zur Behandlung von Bindestrichen am Zeilenende wurde der Dehyphenizer
121
+ eingeführt.
122
+
123
+ == 1.6.3 [2006-05-23]
124
+
125
+ * <b>GPL-Wörterbuch</b>
126
+
127
+ Das Systemwörterbuch ist vollständig unter GPL gestellt.
128
+
129
+ == 1.6.2 [2006-05-12]
130
+
131
+ * <b>Pfad- und Dateibehandlung</b>
132
+
133
+ Kleine Fehlerbehebung in der Pfadgenerierung im Textwriter.
134
+
135
+ * <b>Return-Codes</b>
136
+
137
+ Bei Aufruf der Hilfe oder bei Fehlersituationen, die intern abgefangen werden,
138
+ wird der Return-Code 1 gesetzt, um somit bessere Steuerung in der
139
+ Batchverarbeitung zu ermöglichen.
140
+
141
+ == 1.6.1 [2006-03-22]
142
+
143
+ * <b>Fehlerkorrektur im Multiworder</b>
144
+
145
+ Der Multiworder hat sich in einem seltenen Spezialfall nicht korrekt verhalten. Das
146
+ ist bereinigt.
147
+
148
+ == 1.6.0 [2006-03-20]
149
+
150
+ * <b>Wörterbücher umbenannt</b>
151
+
152
+ Die standardmäßig mitgelieferten Wörterbücher sind umbenannt worden in lingo-xxx.txt
153
+ und haben als einheitlichen Separator zwischen Schlüssel und Werten das '='-Zeichen.
154
+
155
+ * <b>Bereinigungen durchgeführt</b>
156
+
157
+ Aus dem Code sind viele alte Programmschnipsel entfernt worden.
158
+
159
+ == 1.6.0rc2b [2006-03-20]
160
+
161
+ * <b>Wörterbücher umbenannt</b>
162
+
163
+ Die standardmäßig mitgelieferten Wörterbücher sind umbenannt worden in lingo-xxx.txt und
164
+ haben als einheitlichen Separator zwischen Schlüssel und Werten das '='-Zeichen.
165
+
166
+ * <b>Bereinigungen durchgeführt</b>
167
+
168
+ Aus dem Code sind viele alte Programmschnipsel entfernt worden.
169
+
170
+ == 1.6.0rc2a [2006-03-13]
171
+
172
+ * <b>Fehlerkorrektur Multiworder</b>
173
+
174
+ Ein klitzekleiner Fehler hat sich doch durch die übereifrig schnelle Bereitstellung
175
+ der neuen Version eingeschlichen. Ist korrigiert und in die Testroutinen mit aufgenommen.
176
+
177
+ * <b>Punkt-Behandlung vollständig überarbeitet (Abbreviator wieder im Einsatz!) => TEIL 2</b>
178
+
179
+ ...hatte ich doch vergessen zu erwähnen, dass als Voraussetzung für das Funktionieren
180
+ der neu eingeführten Punkt-Behandlung ZWINGEND die Tokenizer-Regel 'ABRS' in der
181
+ <tt>de.lang</tt> auskommentiert werden muss ?:o\
182
+
183
+ == 1.6.0rc2 [2006-03-09]
184
+
185
+ * <b>Vorsicht bei CFG-Dateien!</b>
186
+
187
+ Multiworder und Sequencer vertragen beide einen 'stopper'-Parameter, der in der
188
+ Regel mit 'PUNCT,OTH_C' vorbelegt ist. Dies soll Token identifizieren, die durch
189
+ die Regel gleichen Namens im Tokenizer erkannt wurden. Diese Regeln sind jedoch
190
+ umbenannt worden (weiß nicht mit welcher Version) in 'PUNC' und 'OTHR'. Daher bitte
191
+ die entsprechenden Einträge ändern auf 'PUNC,OTHR'.
192
+
193
+ * <b>Punkt-Behandlung vollständig überarbeitet (Abbreviator wieder im Einsatz!)</b>
194
+
195
+ Die Behandlung des Zeichen '.' wurde komplett neu designet. Das Zeichen '.' kommt
196
+ grundsätzlich in drei verschiedenen Kontexten vor:
197
+
198
+ 1. Als Punkt hinter einer Zahl (1. = Erster, 2. = Zweiter,...)
199
+ 2. Als Abkürzungspunkt
200
+ 3. Der Satzendepunkt
201
+
202
+ Der 1. Fall ist sehr sicher durch eine Tokenizer-Regel zu identifizieren und
203
+ wird daher hier nicht weiter betrachtet. Dabei wird kein Punkt-Token erzeugt,
204
+ sondern der Punkt im Stammwort mitgegeben (z.B. <1.>).
205
+
206
+ Zwischen dem 2. und dem 3. Fall macht der Tokenizer keine Unterscheidung mehr.
207
+ Der Punkt wird als eigenständiges Token erkannt und in den Verarbeitungsstrom
208
+ weitergereicht. Der Abbreviator versucht nun Abkürzungen anhand von Punkt-Token
209
+ zu erkennen. Taucht ein Punkt im Zeichenstrom auf, dann wird das vorhergehende Word
210
+ im Abkürzungswörterbuch nachgeschlagen. Wird das Wort dort gefunden, wird das
211
+ Punkt-Token aus dem Zeichenstrom entfernt und die Abkürzung als identifiziert
212
+ weitergereicht.
213
+
214
+ Bleibt neben dem Satzendepunkt noch der Abkürzungspunkt z.B. in Personennamen
215
+ (John F. Kennedy). Diese müssen vom Multiworder zuverlässig als Teil einer
216
+ Mehrwortgruppe erkannt und ggf. ebenfalls entfernt werden. Die zusätzlich
217
+ aufgebohrtet Testroutinen zeigten ein zuverlässiges Verhalten.
218
+
219
+ == 1.6.0rc1 [2006-02-27]
220
+
221
+ * <b>Grundlegende architektonische Überarbeitung</b>
222
+
223
+ Die über ein Jahr gewachsene Struktur von Lingo wurde grundlich überarbeitet.
224
+ Detailliertere Dokumentation folgt.
225
+
226
+ * <b>Abbreviator entfernt</b>
227
+
228
+ Den Attendee Abbreviator gibt es nicht mehr. Seine Funktion wird vom Wordsearcher
229
+ mit übernommen. Wenn ein Wort nicht erkannt wird, so prüft der Wordsearcher das
230
+ Wort erneut mit abschließendem Punkt, wenn das nächste Token im Zeichenstrom
231
+ tatsächlich ein Punkt ist. In diesem Fall wird das Punkt-Token aus dem Datenstrom
232
+ entfernt.
233
+
234
+ * <b>Ocr_variator heißt jetzt Variator</b>
235
+
236
+ Kleine kosmetische Anpassung. Der Ocr-Bezug stimmt zwar historisch gesehen noch,
237
+ mit der eigentlichen Funktion hat es jedoch nichts zu tun.
238
+
239
+ * <b>Decomposer mit zusätzlicher Validitätsprüfung und Kennzeichnung</b>
240
+
241
+ Der Decomposer kann bei Bedarf Komposita einer zusätzlichen Prüfung unterziehen.
242
+ Ist der Schlüssel <tt>de.lang:language/dictionary/compositum/skip-sequences</tt>
243
+ angegeben, der z.B. in der Form <tt>skip-sequences: [ VS ]</tt> definiert wird,
244
+ wird zusätzlich geprüft, ob das Kompositum mit seinen Teilen diesen Wortklassen
245
+ entspricht. Hiernach werden Komposita verworfen, die aus Verb-Substantiv-Kombination
246
+ bestehen. Die Angabe des Parameters ist optional.
247
+ Zusätzlich werden bei Angabe des Schlüssels <tt>de.lang:language/dictionary/compositum/append-wordclass</tt>,
248
+ der i.d.R einen ein Zeichen langen String enthält, die durch Zerlegung erkannten
249
+ Wortstämme markiert, in dem ihre Wortklasse das über diesen Schlüssel definierte
250
+ Zeichen angehangen bekommt.
251
+
252
+ * <b>Install.rb nicht mehr notwendig</b>
253
+
254
+ Die Umwandlung von Text-Dateien in SDBM-Dateien erfolgt nicht mehr über Install,
255
+ sondern durch 'jeden' Lingoaufruf implizit. Beim öffnen der SDBM-Datei wird
256
+ automatisch die Aktualität geprüft und bei Bedarf eine erneute Übersetzung
257
+ angestartet.
258
+
259
+ == 1.5.0 [2005-12-08]
260
+
261
+ * <b>Sprachkonfiguration aktualisiert</b>
262
+
263
+ Die Konfigurationsdatei de.lang ist an produktive Erfahrungen angepasst worden.
264
+ Insbesondere werden jetzt alle Sonderzeichen der Zeichensätze ISO-8859-1 und
265
+ Windows-1252 vollständig erkannt, ohne dass laufend Zeichen nachgepflegt werden
266
+ müssen.
267
+
268
+ * <b>Cachable arbeitet jetzt mit Duplikaten</b>
269
+
270
+ Objekte, die in den Cache von Datasource, Dictionary oder Grammer übernommen
271
+ wurden, wurden auch immer als Referenz ausgelesen. Die hatte zur Folge, dass
272
+ wenn Cacheinhalte im späteren Verlauf der Lingo-Kette verändert wurden, diese
273
+ Veränderung auch alle nachfolgen aus dem Cache gelesenen Objekte betraf.
274
+ D.h.: Wird das Wort <von|?> in den Cache geschrieben, so werden alle
275
+ nachfolgenden Suchanfragen aus dem Cache bedient. So weit so gut. Wenn ein
276
+ Attendee nach Cacheauslesen der Meinung ist, er müsste für das Objekt das Attribut
277
+ z.B. auf 'MU?' (Teil einer Mehrwortgruppe) ändern, dann wurde dadurch auch das
278
+ Element im Cache geändert. Nachfolgende Suchanfragen erhielten somit <von|MU?> als
279
+ Antwort. Ab jetzt werden nur noch Kopien des Originals in den Cache übernommen,
280
+ so das eine versehentliche Veränderung ausgeschlossen wird.
281
+
282
+ * <b>String hat attr-Methode</b>
283
+
284
+ Die Methode _select_ der Klasse _Dictionary_ gibt die gefundenen Lexicals sortiert
285
+ zurück. Bei der Verarbeitung von Mehrwortwörterbüchern kann jedoch auch z.B. '*5'
286
+ als Antwort gegeben werden, was dem Multiworder mitteilt, dass es eine Mehrwortgruppe
287
+ der Länge 5 gibt, die mit genau den drei nachgefragten Wörtern beginnt und der
288
+ Multiworder eine weitere Abfrage machen soll. Klappt alles wunderbar, nur dass _select_
289
+ nicht in der Lage ist ein Array aus Lexicals und Strings anhand des attr-Wertes zu
290
+ sortieren. Jetzt hat die Klasse String eines attr-Wert '' bekommen und die Sortierung
291
+ funktioniert wieder.
292
+
293
+ * <b>Neues Synonym-Wörterbuch</b>
294
+
295
+ Ein sehr gut gepflegtes Synonym-Wörterbuch ist als Beispiel mit aufgenommen worden.
296
+ Wie beim Mehrwortwörterbuch system_mul.txt sind jedoch nur Einträge mit dem
297
+ Anfangsbuchstabe 'a' enthalten.
298
+
299
+ == 1.5.0rc2 [2005-12-06]
300
+
301
+ * <b>Fehlerkorrekturen und Anpassungen</b>
302
+
303
+ - Multiworder verarbeitet wieder mehrere Wörterbücher.
304
+ - Synonyme mit '_' statt ' ' für LIR-Format wieder entfernt.
305
+ - Abbreviator mit initialem Wörterbuch versehen
306
+ - System_dic mit Stopwörtern versehen
307
+ - Bei install.rb `...` durch system()-Aufruf getauscht
308
+ - Browser bei install.rb über Parameter -b konfigurierbar
309
+ - Kleinere Anpassungen
310
+
311
+ == 1.5.0rc [2005-11-27]
312
+
313
+ * <b>Kompositumerkennung redesigned</b>
314
+
315
+ Neben den Klassen für Datenzugriff auf unterster Ebene (Datasource) und dem
316
+ Wörterbuchzugriff (Dictionary) gibt es nun auch eine Klasse für grammatikalische
317
+ Spezialitäten (Grammar), welche die Kompositumerkennung aufgenommen hat.
318
+
319
+ * <b>Testroutinen ausgebaut</b>
320
+
321
+ Alle bisher per Mail gemeldeten Fehlersituationen sind in die Testroutinen eingebaut
322
+ worden, so dass sie bei zukünftigen Versionen direkt mit getestet werden. Also
323
+ weiterhin fleißig per Mail z.B. an error@lex-lingo.de melden.
324
+
325
+ * <b>_Stopworder_ getilgt</b>
326
+
327
+ Der _Stopworder_ hat seine Schuldigkeit getan. Sein Konzept ist von gestern.
328
+ Weil er auch durch normale Wörterbuchsuche abbildbar ist, wird hier auf die
329
+ weitere Pflege verzichtet. <b>Bitte in den Konfig-Dateien berücksichtigen! und
330
+ WICHTIG: Stopwörter im Wörterbuch ggf. nachpflegen!</b>
331
+
332
+ * <b>Neuer Attendee _Abbreviator_</b>
333
+
334
+ Bisher hat der Tokenizer per Konfiguration eine Liste von Abkürzungen mitgeteilt
335
+ bekommen, die er in einer Textzeile als Token erkennen und in den Datenstrom
336
+ einfliessen lassen sollte. Die Pflege dieser Konfigurationsdaten fiel vollends
337
+ aus dem sonst stringenten Wörterbuchkonzept heraus. Daher wurde dies Funktion in
338
+ den Abbreviator ausgelagert, der sich die bekannten Abkürzungen aus einem eigenen
339
+ Wörterbuch holt. <b>Bitte in den Konfig-Dateien berücksichtigen!</b>
340
+
341
+ * <b>Datenformate in <tt>de.lang</tt> vereinfacht</b>
342
+
343
+ Die Datenformate für den _Tokenizer_ und die _Suffix_e haben sich in der
344
+ Sprachkonfigurationsdatei de.lang geändert. Sofern eine alte de.lang-Datei mit dieser
345
+ Version zusammen laufen soll, <b>bitte in den Konfig-Dateien berücksichtigen!</b>
346
+
347
+ * <b>Attendees überarbeitet</b>
348
+
349
+ Das Verhalten der Attendees wurde homogenisiert. Als zusätzliche Klasse wurde
350
+ der BufferedAttendee eingeführt, der den Eingabe-Strom zwischen speichern kann
351
+ und den angestauten Buffer mit einem mal verarbeiten kann. Dies ist insbesondere
352
+ förderlich für die Attendees Multiworder und Sequencer, die eine Kette von Objekten
353
+ untersuchen müssen.
354
+
355
+ * <b>Dokumentation erstellt</b>
356
+
357
+ Für alle Attendees gibt es jetzt reichlich Dokumentation, die mit doc/index.html
358
+ aufgerufen werden kann. Weitere Dokumentation muss noch folgen...
359
+
360
+ == 1.4.2 [2005-10-11]
361
+
362
+ * <b>Bugfix im _Sequencer_</b>
363
+
364
+ Der _Sequencer_ sorgte für Fehlfunktionen, wenn er aus dem _Multiworder_
365
+ Worter unerwarteten Typs erhielt.
366
+
367
+ == 1.4.1 [2005-09-29]
368
+
369
+ * <b>_Synonymer_ verarbeitet jetzt WIRKLICH mehrere Wörterbücher</b>
370
+
371
+ Aus einem mir bislang unbekannten Grund sind die in der letzten Version gemachten
372
+ Änderungen nicht übernommen worden. Ist bereinigt.
373
+
374
+ * <b><i>Vector_filter</i> mit geändertem +sort+-Parameter</b>
375
+
376
+ Der +sort+-Parameter konnte vormals die Werte +normal+, +count+ und +term+ annehmen.
377
+ Die Werte +count+ und +term+ wurden durch die Bezeichnungen +term_abs+ und +term_rel+
378
+ ersetzt. Zusätzlich hinzugekommen sind die Werte +sto_abs+ und +sto_rel+, welche mit
379
+ den o.g. korrespondieren, der Zahlenwert jedoch in geschweiften Klammern hinter dem
380
+ Wort stehen. Dies ist notwendig für das _LIR_-Format.
381
+
382
+ * <b>Für zukünftige Meldungen!</b>
383
+
384
+ Besteht ein Änderungsbedarf aufgrund eines Fehlers oder der Wunsch einer
385
+ Funktionserweiterung? Mailt mir eure Wünsche an <tt>rfc@lex-lingo.de</tt>
386
+
387
+ == 1.4.0 [2005-09-25]
388
+
389
+ * <b>Neuer Attendee _Sequencer_</b>
390
+
391
+ Der _Sequencer_ erkennt Mehrwortgruppen, die nicht über ein Wörterbuch vorgegeben
392
+ werden müssen, sondern über ihre Wortklassen erkannt werden. Steht z.B. in
393
+ <tt>de.lang:language/attendees/sequencer/sequences: [ [AS, "2, 1"], [AK, "2, 1"] ]</tt>
394
+ so werden Wortfolgen der Art Adjektiv-Subjektiv und Adjektiv-Kompositum erkannt
395
+ und in der in Gänsefüsschen angegebenen Form als Indexeintrag bereitgestellt.
396
+ So wird 'geniale Indexierung' als 'indexierung, genial' in Form eines zusätzlichen
397
+ Wortes in den Ausgabestrom eingefügt mit Attribut +SEQ+ und der Wortklasse +q+.
398
+
399
+ * <b>Bugfixing Kompositum-Caching</b>
400
+
401
+ Beim zweiten Auftreten eines Kompositums wurde das Kompositum als nicht
402
+ erkanntes Wort weiterverarbeitet. Der Fehler im Chahing-Mechanismus ist
403
+ behoben, so dass die _LIR_-Verarbeitung wieder korrekt läuft.
404
+
405
+ * <b>_Synonymer_ verarbeitet mehrere Wörterbücher</b>
406
+
407
+ Mit Angabe des Parameters <tt>mode=all</tt> kann der _Synonymer_ jetzt auch mehrere
408
+ Wörterbücher verarbeiten.
409
+
410
+ == 1.3.1 [2005-08-18]
411
+
412
+ * <b>Neuer Attendee _Objectfilter_</b>
413
+
414
+ Als Basis für eine eher allgemeinere und flexiblere Filter-Möglichkeit im
415
+ Vergleich zum <i>Noneword_filter</i> kann der _Objectfilter_ alle Arten von Selektion
416
+ vornehmen. Das Attribut +objects+ ist eine Ruby-Bedingung, die, wenn sie als
417
+ +false+ ausgewertet wird, dass aktuelle Objekt filtert.
418
+
419
+ == 1.3.0 [2005-08-03]
420
+
421
+ * <b>Neuer Attendee _Compositizer_</b>
422
+
423
+ Die Kompositumzerlegung war bisher im Attendee _Wordsearcher_ enthalten. Dadurch
424
+ wurden für die Zerlegung immer die gleichen Wörterbücher benutzt, die auf für
425
+ die Wortsuche verwendet wurden. Durch die Trennung ist eine separate Angabe
426
+ von Wörterbüchern möglich.
427
+
428
+ * <b>Testing</b>
429
+
430
+ Ausführliche Testroutinen sind erstellt worden, welche die Folge-Releases
431
+ deutlich stabiler machen werden. Innerhalb einer Sekunde sind sämtlich
432
+ Attendees durchgetestet. Die durchgeführten Tests basieren auf Fehlermeldungen
433
+ und Anregungen aus vergangenen E-Mails. Sie können jederzeit erweitert werden.
434
+ In diesem Zusammenhand ist auf die Basisklasse aller Attendees (vorher Lingo)
435
+ neu erstellt worden. In Verbindung mit der Einführung von YAML als
436
+ Konfigurationssprache wurden diese automatischen Tests erst möglich.
437
+
438
+ * <b>YAML</b>
439
+
440
+ Bei YAML unbedingt darauf achten, dass keine TABs verwendet werden. YAML ist
441
+ da sehr empfindlich.
442
+
443
+ == 1.2.1 [2005-07-03]
444
+
445
+ * <b>Fehlerkorrektur _LIR_-Absturz</b>
446
+
447
+ Bei der Suche nach Mehrwortsynonymen wurden auch interne Steuercodes
448
+ an weitere Attendees weitergeben, die damit nichts anfangen konnten.
449
+ _Synonymer_ filter jetzt bei der Suche interne Steuercodes heraus.
450
+
451
+ == 1.2.0 [2005-07-02]
452
+
453
+ * <b><i>Vector_Filter</i> mit Term-Frequenz</b>
454
+
455
+ Wird beim Attendee <i>Vector_filter</i> das Attribut <tt>sort='term'</tt> angegeben,
456
+ wird statt der absoluten Zahl (wie bei <tt>sort='count'</tt>) die Term-Frequenz
457
+ eines Wortes ermittelt. Die Term-Frequenz bezieht sich auf die Anzahl Worte in der
458
+ Datei. Diese wiederum können über das Attribut <tt>no-count</tt> gesteuert werden.
459
+ Das Attribut entscheidet darüber, welche Wort-Typen nicht in die Gesamtwortanzahl
460
+ der Worte in der Datei berücksichtigt werden. Default hierfür ist
461
+ <tt>no-count='PUNCT,OTH_C'</tt>.
462
+
463
+ * <b>Kompositum-Zerlegung mit weiterer Einschränkung</b>
464
+
465
+ Ein weiterer Parameter ist für die Kompositumzerlegung hinzugekommen. Als
466
+ Attribute des Tags <tt>XML:dictionary/compositum</tt> können jetzt angegeben werden:
467
+
468
+ Attribut Default Funktion
469
+ ============================================================================
470
+ min-word-size 8 Prüft nur Wörter ab dieser Größe auf Kompositum
471
+
472
+ Die folgenden Attribute werden auf gefundene Komposita angewendet. Das
473
+ Kompositum muss diese Prüfung bestehen, um gewertet zu werden.
474
+
475
+ min-avg-part-size 4 Die durchschnittliche Größe aller Wortteile muss
476
+ mindestens diesen Wert haben
477
+ min-part-size 1 Jeder Wortteil muss mindestens so groß sein
478
+ max-parts 4 Es darf höchstens so viele Wortteile geben.
479
+
480
+ * <b>Install-Routine um Linux-Kommandos erweitert</b>
481
+
482
+ Die Install-Routine sollte jetzt alle Aufgaben sowohl auf Windows wie auch Linux
483
+ komplett abschließen können.
484
+
485
+ * <b>Zu lange Datensätze</b>
486
+
487
+ Trotz anderweitiger Meinung haben Klaus und ich gemeint, Datensätze größer
488
+ 1024 Bytes werden nicht benötigt. Kam halt anders. SDBM kann keine Sätze
489
+ größer 1k speichern, weshalb die Informationen derzeit ziemlich q&d auf 1k
490
+ getrimmt werden.
491
+
492
+ == 1.1.1 [2005-06-18]
493
+
494
+ * <b>Test-Routinen erweitert</b>
495
+
496
+ Insbesondere die Sortierung von Lexicals wurde noch einmal intensiv unter die
497
+ Lupe genommen. Dabei sind ein paar kleine Dinge noch begradigt worden.
498
+
499
+ * <b>Install-Routine bereinigt</b>
500
+
501
+ Install.rb soll in Richtung Plattformunabhängigkeit weiterentwickelt werden, so
502
+ dass auch Linux nicht zu kurz kommt. Da fehlen noch ein paar Kommandos, aber
503
+ die Routine wird euch zu gegebener Zeit fragen :o)
504
+ !!Einzelne Datenbanken können jetzt angesprochen werden!!
505
+ Mit 'install -data -r rdk' werden z.B. alle Datenbanken, die rdk im Namen
506
+ enthalten, gelöscht und mit 'install -data rdk' auch wieder hergestellt. Das sollte
507
+ die Pflege der Datenbanken deutlich erleichtern.
508
+
509
+ * <b>VORSICHT: KNOWN ERROR</b>
510
+
511
+ Die Datenbanken werden im Verzeichnis de/store gespeichert. Unter Linux scheint
512
+ das Erstellen des Verzeichnisses noch nicht die richtigen Rechte mitzugeben.
513
+ Teste ich noch unter Linux, bis dahin bitte das Unterverzeichnis vor dem Aufruf
514
+ von Install von Hand anlegen!
515
+
516
+ == 1.1.0 [2005-06-18]
517
+
518
+ * <b>Umstellung der Versionsnummernsystematik</b>
519
+
520
+ Damit auch Patches und Bugfixes nicht als herrenloses Archiv ausgetauscht
521
+ werden müssen und jeden besser in Erinnerung verbleibt, wann welche Funktions-
522
+ erweiterung dazu kam, gelten für die Veränderungen in den Versionsnummern
523
+ folgende Regeln:
524
+ X.0.0 Die erste Stelle kennzeichnet einen grundlegenden architektonischen
525
+ Umbau von Lingo, wie z.B. den Wechsel von Rubyling auf Lingo. Im Zweifel
526
+ zählt hierzu auch eine zehnmalige Funktionserweiterung :o)
527
+ 0.X.0 Die zweite Stelle kennzeichnet eine Funktionserweiterung, wie z.B. die
528
+ Verarbeitung von Mehrwortgruppen.
529
+ 0.0.X Die letzte Stelle ist für Bugfixes vorbehalten.
530
+ Gegebenenfalls kann der Versionsnummer noch ein kleiner Buchstabe folgen, der
531
+ anzeigt, dass sich lediglich an der Dokumentation etwas geändert hat.
532
+ Gestartet wird mit der 1.1.0 (Erweiterung um Mehrworterkennung), die im
533
+ wesentlichen der Vorversion (alte Systematik) entspricht.
534
+
535
+ == 1.0.4 [2005-06-17]
536
+
537
+ * <b>Datenbankformat und -zugriff vereinheitlicht</b>
538
+
539
+ Bisher gab es drei verschiedene Datenformate für Wörterbücher, Synonyme und
540
+ Mehrwortgruppen. Alle drei Typen finden sich nun in einem universellen Format
541
+ wieder.
542
+ Ebenso wurde der Zugriff auf die Daten modifiziert. Wurden vorher je nach Typ
543
+ einmal eine Liste der erkannten Grundformen (Lexical) als Ergebnis erzeugt und ein
544
+ anderes mal nur eine Zeichenkette zurück gegeben, werden jetzt alle Zugriffe auf
545
+ die Daten als Lexical-Liste generiert. Dies hatte Auswirkungen auf die
546
+ Synonymerkennung, da bisher die die Wortklasse 'y' aus dem Programm und nicht
547
+ aus den Datendateien kam.
548
+
549
+ * <b>Multiworder verarbeitet mehrere Datenbanken</b>
550
+
551
+ Die Verarbeitung von mehreren Datenbanken für einen Zugriff wird normalerweise
552
+ in der Klasse Dictionary erledigt. Da der Multiworder jedoch die Funktionen der
553
+ Dictionary-Klasse nicht benötigt, greift er direkt auf die Klasse DataSource zu,
554
+ welche diese Funktion nicht besitzt. Daher musste die Verarbeitung mehrerer
555
+ Datendateien im Multiworder selbst erfolgen.
556
+
557
+ == 1.0.3 [2005-05-21]
558
+
559
+ * <b>Multiworder fertig!</b>
560
+
561
+ Mit dem neuen Attendee Multiworder werden Mehrwortgruppen locker und schnell
562
+ erkannt. Erkannte Gruppen werden als als zusätzliches (Dummy-)Wort mit in den
563
+ Datenstrom eingespeist. Die Geschwindigkeit wird dadurch erreicht, dass die
564
+ Mehrwortgruppen in Ihren jeweiligen Grundformen gespeichert werden. Das ist
565
+ genau dass, was der Multiworder frei Haus geliefert bekommt. Das klappt
566
+ wunderbar, wenn für den Multiworder-Lauf und die Ersterstellung des
567
+ Mehrwörterbuches die gleichen Wörterbücher verwendet werden.
568
+ Soll heißen, wenn zu einem späteren Zeitpunkt zusätzliche Wörterbücher hinzu
569
+ gezogen werden, kann eine erneute Erstellung der Mehrwörterbuches Sinn
570
+ machen, um die Erkennungsquote zu verbessern.
571
+ Diese Version arbeitet mit einem abgespeckten Mehrwörterbuch.
572
+
573
+ * <b>Install.rb weiter ausgebaut</b>
574
+
575
+ Die einzelnen Installationsphasen können jetzt auch einzeln aufgerufen werden.
576
+ Mit den Optionen -data, -test und -docu können die jeweiligen Phasen wiederholt
577
+ werden. Mit der zusätzlichen Option -r kann auch alles wieder rückgängig gemacht
578
+ werden.
579
+
580
+ == 1.0.2 [2005-04-30]
581
+
582
+ * <b>Install.rb</b>
583
+
584
+ Nach dem Download sollte als erstes ruby install.rb aufgerufen werden.
585
+ Dadurch werden notwendige Vorarbeiten erledigt, z.B. Erstellung der
586
+ Dokumentatio in /doc oder der Datenbasis in /de
587
+
588
+ * <b>Forget MySQL</b>
589
+
590
+ Als erstes filebasiertes Datenzugriffssystem wurde SDBM integriert. Darüber
591
+ wird MySQL überflüssig. Alle relevanten Daten liegen im Unterverzeichnis /de.
592
+ Siehe auch de.xml:<datasource>. Vor der ersten Nutzung sollten die SDBM-
593
+ Dateien mit ruby dbm.rb erzeugt werden. (wird durch install.rb erledigt)
594
+
595
+ * <b>Sortierung im Vector_filter verbessert</b>
596
+
597
+ Bei sort='count' wird jetzt nicht nur nach Häufigkeit sortiert sondern
598
+ auch innerhalb der Häufigkeit nach Alphabet.
599
+
600
+ == 1.0.1 [2005-04-26]
601
+
602
+ * <b>Kompatibilität zur LIR</b>
603
+
604
+ LIR-Formate können jetzt gelesen und CSV-Format geschrieben werden.
605
+ Anpassungen in Textreader und Textwriter. Siehe auch lir.xml
606
+
607
+ * <b>Bug-Fix in Synonymer</b>
608
+
609
+ Schweren Fehler entfernt. Wordklassen, die nicht geprüft werden sollten,
610
+ wurden kastriert.
611
+
612
+ * <b>Kompositumverarbeitung im Vector_filter</b>
613
+
614
+ Neben der Kompositum-Grundform werden jetzt auch die Grundformen der Wort-
615
+ Teile mit eingesackt.
616
+
617
+ == 1.0.0 [2005-04-26]
618
+
619
+ * <b>Dokumentation erstellt</b>
620
+
621
+ Sie ist zwar noch teilweise verteilt, aber sie ist da, z.B. in doc/index.html oder
622
+ in Config.doc. Einigermaßen fertig (war ich nach der Erstellung). Bitte um
623
+ Feedback was besser geht und was fehlt.
624
+
625
+ * <b>Attendees überarbeitet</b>
626
+
627
+ Sehen jetzt noch einfacher aus. Brauchen nur noch die Methoden
628
+ init - Zur Bereitstellung von Parametern und Konfiguration für die anderen Meth.
629
+ control - Zur Verarbeitung von Kommandos
630
+ process - Zur Ver- und Bearbeitung von zugestellten Objekten
631
+
632
+ * <b>Dictionary aufgesplittet</b>
633
+
634
+ Da es mittlerweile drei Attendees gibt, die Datenbankzugriff brauchen, ist das
635
+ Dictionary eine Hauptklasse geworden. Dazu gibt es eine rudimentärere Klasse,
636
+ auf die das Dictionary sich für den Datenzugriff stützt: Datasource.
637
+ Diese Klasse nutzt die vollen Möglichkeiten eines eigenen Datencaches, welches
638
+ die Performance noch einmal deutlich verbessert hat.
639
+
640
+ * <b>Konfiguration aufgesplittet</b>
641
+
642
+ Ja ja, mein Lieblingsthema, aber ohne eine saubere Konfigurationsmöglichkeit ist
643
+ Lingo leider nix Wert. Gibt jetzt
644
+ lingo.xml - Zur Konfiguration der Kommandozeilenoptionen
645
+ de.xml - Enthält die sprachrelevante Konfiguration
646
+ <ablauf>.xml - Enthält die Lingo-Konfiguration, z.B. rubyling.xml oder ocr.xml
647
+ Mit ruby lingo.rb -c <ablauf> kann jeweils eine andere Konfig. gezogen werden.
648
+
649
+ == 0.9.8 [2005-04-16]
650
+
651
+ * <b>Class Config überarbeiten</b>
652
+
653
+ Klar, immer die wichtigen Dinge zuerst. Die über die Kommandozeile
654
+ erwarteten Parameter sind über lingo.xcl konfigurierbar. In Lingo.xml
655
+ kann man auf die Kommandozeilen-Parameter als Variable zurückgreifen.
656
+ Doku anschauen, lohnt sich...
657
+
658
+ == 0.9.0 [2005-04-01]
659
+
660
+ * <b>Noneword_variator</b>
661
+
662
+ Auftragsarbeit von Klaus eingebaut.
663
+
664
+ == 0.8.0b [2005-03-30]
665
+
666
+ * <b>Lingo ist Rubyling, nur besser</b>
667
+
668
+ Rubyling ist tot, es lebe Lingo! Rubyling wurde vollständig modularisiert.
669
+
670
+ * <b>Konfiguration mit Lingo.xml</b>
671
+
672
+ Konfiguration vollständig überarbeitet. Lingo.cfg heißt jetzt lingo.xml. Mit dieser
673
+ Endung ist sie leichter mit SciTe editierbar. Die Klasse LingoConfig kann jetzt (fast)
674
+ generische XML-Syntax verarbeiten. Die Werte werden auf sehr einfache Weise
675
+ im Code bereitgestellt. Hinzu kommt, dass die Aufruf-Parameter ebenfalls über
676
+ diesen Weg zur Verfügung stehen. Dokumentation muss folgen :o)
677
+
678
+ == 1.4.1 [2005-03-18] (Rubyling)
679
+
680
+ * <b>Load_wbs.rb stabilisiert</b>
681
+
682
+ Programm zeigte keine Reaktion mehr auf Laptop nach Standby. Daher stoppen
683
+ und starten des MySQL-Dienstes eingebaut. Load_wbs.rb von Archiv rubyling_de
684
+ nach rubyling verschoben (Version aus rubyling_de im nächsten Release entfernen!)
685
+
686
+ * <b>Rubyling Parameter korrigiert</b>
687
+
688
+ Für Programmtests waren Parameter im Programm verdrahtet. Kommandozeile wurde
689
+ ignoriert.
690
+
691
+ == 1.4.0 [2005-03-18] (Rubyling)
692
+
693
+ * <b>Interne Klassenhierarchie umgebaut</b>
694
+
695
+ In der Datei word.rb sind nun die Klassen unterschieden nach Token, Lexical und
696
+ Word inkl. weiterer Hilfsklassen.
697
+
698
+ * <b>Synonymverarbeitung eingebaut</b>
699
+
700
+ Erkannte Worte werden zusätzlich auf Synonyme hin geprüft. Die Liste der Grundformen
701
+ des Wortes wird dann um die gefundenen Synonyme erweitert. Die Synonym-Wörterbücher
702
+ sind wie gewohnt in ruby.cfg unter database/synonym konfigurierbar. Derzeit wird
703
+ openthesaurus als einziges Wörterbuch benutzt. Um openthesaurus zu nutzen, sei
704
+ das Archiv rubyling_de(v1.0) wärmstens empfohlen.
705
+
706
+ * <b>Nicht erkannte Wörter</b>
707
+
708
+ Als zusätzliche Datei wird jetzt auch noch eine Endung .non erzeugt, die alle
709
+ nicht erkannten Wörter beinhaltet
710
+
711
+ * <b>Schnelle Installation</b>
712
+
713
+ Die Umgebung von Rubyling ist jetzt auf drei Archive verteilt. Bitte weitere
714
+ Änderungen an den Daten in den Archiven vornehmen und in dieser RELEASE.TXT
715
+ dokumentieren. Alle Archive sind so aufgebaut, dass sie im Verzeichnis
716
+ rubyling entpackt werden können.
717
+
718
+ Archiv Ziel Inhalt
719
+ ----------------------------------------------------------------------------
720
+ rubyling(v1.4) /rubyling Programm, Konfiguration und Dokumentation
721
+ rubyling_de(v1.0) /rubyling/de Wörterbücher und Programm zum DB-Aufbau
722
+ rubyling_txt(v1.0) /rubyling/txt Texte zum testen
723
+
724
+ == 1.3.0 [2005-02] (Rubyling)
725
+
726
+ * <b>Inline-Dokumentation erstellt</b>
727
+
728
+ Mit Prozedur make_doc.cmd HTML-Seiten erstellen, dann doc\index.html aufrufen
729
+
730
+ * <b>Konfiguration komplett überarbeitet</b>
731
+
732
+ Eine zentrale Konfigurationsdatei ruby.cfg enthält im XML-Style alle Parameter,
733
+ z.B. "<parm1 value='15'/>" in Ruby durch $CFG['parm1'] abfragbar. ruby-token.txt
734
+ und ruby-suffix.txt sind nicht mewhr notwendig.
735
+
736
+ * <b>Reduzierung der linguistisch relevanten Klassen auf zwei Klassen</b>
737
+
738
+ TextFile erweitert die Klasse File und ermöglicht die Datei-Verarbeitung auf
739
+ Tokenbasis.
740
+ Dictionary enthält mit der Methode search() die zentrale Schnittstelle für die
741
+ Wörterbuch-Recherche (inkl. Stopwörtern, Suffixbehandlung und Kompositumzerlegung).
742
+
743
+ * Rubyling erkennt bei Aufruf automatisch (jetzt richtig) das Dateiobjekt und
744
+ unterscheidet Textdatei, Verzeichnis und DB-Datei (z.B. lir.txt). In den ersten
745
+ beiden Fällen werden je Textdatei drei Ausgabedateien erstellt, die eine weitere
746
+ Verbesserung der Verarbeitung ermöglichen:
747
+ .tok = Textfile in Token je Zeile zerlegt;
748
+ .dic = Token mit Auflösung nach Wörterbuchzugriff;
749
+ .vec = Inhaltsvektor der Datei.
750
+
751
+ == Rubyling x.x vor dem 01.02.2005
752
+
753
+ * Diverse Versionen, von denen Klaus meint, sie hätten noch keine eins vor dem Punkt
754
+ verdient :o(