lingo 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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(