Re: [Steak-developer] Re: steak
Brought to you by:
razilotfi
From: Razi Lotfi-T. <raz...@we...> - 2002-09-11 20:06:13
|
Hi, zuerst möchte ich einen neuen Mitglied, Jens Röder, in dieser Runde begrüßen. Jens ist der Entwickler des Programms "Magic-Dic". Ich kenne ihm vom früheren Email-Verkehr. Mehr zu seinem Programm werde ich aber später noch etwas schreiben. Ich wollte mich eigentlich früher melden. Aber bevor ich diese Email schicken wollte, wollte ich mir einige Wörterbuch-Projekte im Internet genauer anschauen. Der Grund: Ich bin der Meinung, daß bevor man etwas neues entwickeln möchte (die meisten Änderungen, die wir realisieren möchten, kommen eine Neu-Entwicklung des Programm gleich), sollte man sich ein wenig umschauen, und sich mit den bestehenden Projekten und Programmen der anderen Entwickler zuerst auseinandersetzen. Dies lernt man sehr schnell, wenn man an eine Diplomarbeit gearbeitet hat ;-)) Als ich mit Steak anfing, gab es im Internet nur DICT als GPL bzw. überhaupt als freies Wörterbuch-Programm. Inzwischen gibt es viele andere Programme. Nicht nur für deutsche Sprache, sonder auch für die Anderen wie beispielsweise für Französisch bzw. Russisch. Ich habe mir am Wochenende viele Programme und Wörterbücher angeschaut. Das ist das Ergebnis meiner Suche: Kommen wir zuerst zu den freien Wörterbüchern: 1) The Internet Dictionary Project: (siehe http://www.june29.com/IDP/) Die Datensätze sind frei (ich glaube aber nicht unter GPL). Die Datensätze sind aber nicht so groß. 2) Der Datensatz von Frank Richter, den ich auch verwende. Dieser Datensatz ist (meiner Meinung nach) der beste freie (GPL) Datensatz für DE-ENG. Sehr umfangreich. 3) FreeDict - for free bilingual dictionaries (siehe http://www.freedict.de/) Diese Seite bieten viele Datensätze. Die Idee finde, die hinter diese Seite steht, finde ich sehr gut. Alle Datensätze sind unter GPL und sind separat unter CVS-Server untergebracht. Der Datensatz für die Deutsch-Englisch basiert auch auf den Datensatz von F.Richer, aber der Datensatz ist sehr viel kleiner als der ursprüngliche Datensatz! (Komisch verstehe ich nicht so ganz) Außerdem sind die Wörterbücher nur in eine Richtung definiert. Was ich auch ein wenig merkwürdig finde. (Das hat wohl (schätze ich mal) mit der Phonetik zu tun) z.B. (Ausgaben) einschrÃ?nken [ausgaË~PbÉ~YnainÊ~CrÉ~[Å~KkÉ~Yn] to cut down (Baum) fÃ?llen [baumfÉ~[lÉ~Yn] to cut down Ich kann Euch auf jeden Fall empfehlen, die Seite Euch anzuschauen. Kommen wir aber zu den wichtigsten freien Wörterbuch-Ansätze im Internet: Es gibt viele freie Wörterbuch-Projekte für Linux. Mein Hauptaugenmerk richtet sich aber bei den unten beschriebenen Projekte nur auf die, die einen interessanten und innovativen Ansatz verfolgten und außerdem frei sind (ich hoffe, daß ich kein weiteres wichtiges Projekt ausgelassen habe). Es gibt zwar Programme, die beispielsweise nur für Russisch implementiert würden, diese lassen ich schon bei Seite. Außerdem gibt es auch Programme, die nicht freie Datensätze (wie beispielsweise, die von Babylon) verwenden. Diese habe ich mir auch näher angeschaut, aber die kann man auch getrostest vernachlässigen. Es gibt beispielsweise Programme, die mit den Datensätzen von Babylon arbeiten können; dieses können aber lediglich nur mit den alten Datensätzen von Babylon arbeiten. Neue Datensätze von Babylon sind verschlüsselt, damit die freien Programme deren Datensätze nicht verwenden können :-(. Aber so ist es, wenn man sich von einen solchen Datensatz abhängig macht. Zuerst aber etwas im Vorfeld zu "Glimpse" (http://webglimpse.org/). Dies ist ein sehr gutes Programm, mit dessen Hilfe man eine Datei indexieren kann. Ich weiß nicht wie, aber mit dessen Hilfe, kann man sogar in einer Datei nach regulären Ausdrücken suchen (mit agrep). Im Gegensatz zu dem Grep gibt es bei agrep eine Beschränkung, die es sich um die Länge der regulären Ausdrücke bezieht. Ich glaube, daß für Perl sowas bzw. die entsprechenden Klassen und Implementierung für glimpse gibt (Jörg weißt Du mehr darüber?) Aber zu den Projekten: 1) DICT (http://www.dict.org) "DICT" sollte meisten von Euch bekannt sein. Er arbeitet auf Client-Server-Prinzip. Das ganze ist sogar in einem RFC beschrieben. Es gibt viele Server- und Client-Implementierungen. Ich habe zur Testzwecke einen Server geladen. Der Server, den ich verwendete, heißt "jDictd" (siehe http://www.informatik.uni-leipzig.de/~duc/Java/JDictd/) und ist in Java implementiert. Das Programm ist wirklich nicht schlecht: Man kann neben ASCII auch Unicode (UTF8) verwenden. Es ist nicht nur auf die Wörterbücher beschränkt, sondern kann man allgemein Lexika usw. verwenden. Das Programm kann mit den Datensätze umgehen, die man bei freedict erhält. Dieses Programm ist auch Index-orientiert, aber soweit ich es verstanden habe, kann man nicht nach regulären Ausdrücke suchen. Ich glaube aber, daß diese Eigenschaft, ob nach regulären Ausdrücke gesucht werden darf oder nicht, nicht unbedingt in RFC vorgeschrieben ist, sondern lediglich den Entwicklern der Servern überlassen (ich habe aber den RFC nicht studiert ;-)). Auf diesen Server kann man über ein Konsole-Programm, das ebenfalls bei dem Programm dabei ist zugreifen. Man kann aber auch über einen HTTP-fähigen Client (beispielsweise über Browser) oder andere DICT-Clients (ich habe auch kdict probiert) zugreifen. Im großen und ganzen ein sehr durchdachtes Konzept 2) jDictionary (http://jdictionary.info) jDictionary ist in Java implementiert. Das ist ein sehr interessante Ansatz, weil das ganze Programm Plugin-basiert arbeitet. Das Programm (selbst) bietet lediglich eine Umgebung für Wörterbücher usw. Neue Sprachen werden als Plugin geladen. Dies ist aber sehr anwenderfreundlich implementiert: die Plugins werden vom Programm aus von der (beispielsweise) Homepage heruntergeladen. Soweit ich es verstehe, bringen die Plugins nicht nur einen Datensatz für eine Sprache (beispielsweise DE-EN) mit, sondern auch die entsprechenden Methoden zur Suche (falls nötig beispielsweise auch reguläre Ausdrücke), Hilfe usw. mit. Ein recht anwenderfreundliche und interessanter Ansatz. Leider ist das Programm sehr langsam und ressourcenhungrig (kein wunder: Java und GUI) Außerdem ist man auf die GUI angewiesen. Es gibt leider keine Console-Version des Programms. Das ganze steht unter LGPL. 3) UniDict (http://www.ping.uio.no/~ovehk/unidict/) Dieses Programm verwendet eine Datenbank. Hierbei werden die Daten in einem mySQL-server gespeichert. Hier einige Zitate aus der Seite: "A client application using the wxWindows C++ application framework connects to the database and downloads words, word attributes, word translations, language attributes, and inflection scripts (including irregular word database) as necessary, to provide the user with anything he/she needs to understand and use any language. A Python interpreter embedded in the client application will execute the scripts in order to perform any conceivable inflection, analysis, and translation tasks. Any user is empowered to upload his/her own language data to the central database; creating, changing, and deleting word definitions, language definitions, inflection scripts, and so on. " Dieses Projekt befindet sich aber noch in Anfangsstadium. Dieses Projekt unterschützt wie die bisher angesprochene anderen Projekte auch UniCode (UTF8) 4) Magic-Dic (http://magic-dic.homeunix.net/) Dieses Programm hatte ich bereits vor einigen Tagen in einer früheren Email erwähnt gehabt. Magic-Dic ist ein Programm, daß von Prinzip her Steak am nächsten steht. Das Programm basiert nicht auf Client-Server-Prinzip und verwendet auch keine Datenbank. Sie ist eine Sammlung von Shell-Skripten. Dieses Programm bietet bereits die meisten Features, die wir implementieren wollten: - Es kann (seit der neuesten Version) auch mit Unicode umgehen. - Es unterstützt bereits mehrere Sprachen - Es ist sehr schnell - Man darf auch lokale Datensätze haben. - Die Verbesserungen hinsichtlich der Datensätze kann man leicht an die Seite des Programms geschickt werden. - Viele weitere Features, die man auf der Homepage des Programm lesen kann.:-) Ich kann Euch empfehlen, dieses Programm herunter zu laden und zu testen. Die Homepage des Programms beinhaltet reichlich Informationen über das Programm. Außerdem kann zu dem Programm unsere neuer Mitglied mehr erzählen. Ein Kritik muß ich bezüglich des Programms trotzdem los werden: Die Farben der Homepage sind (besonders dieses Hintergrund-Grafik) ungünstig gewählt worden. Man bekommt einfach keine Lust die tollen Infos zu lesen ;-) (OK, ich weiß, daß meine Seite auch einfach beschissen aussieht, aber wir reden gerade nicht über meine Seite :-) ) Die Frage, die ich mir nach dem Testen des Magic-Dic stelle, ist: Ist es überhaupt notwendig Steak umzuschreiben? Wäre eine Reimplementierung überhaupt sinnvoll? Steak ist speziell für die Eigenheiten der deutschen Sprache abgeschnitten und ist außerdem (dank grep) sehr schnell. Warum also eine Reimplementierung in Perl oder Python? Welche Vorteile hat man durch Perl, die man bei der Shell-Implementierung von Magic-Dic nicht hat? All die Eigenschaften, die wir erreichen könnten, sind bereits in Magic-Dic implementiert. Oder übersehe ich etwas? Aber falls das stimmen sollte, warum sollten wir ein vollkommen neues Programm entwickeln? Ich finde das Programm Magic-Dic schon sehr weit fortgeschritten. Ich bin der Meinung, daß wir unsere Kräfte anstatt auf eine Reimplementierung auf die Erweiterung und Pflege des Magic-Dic konzentrieren sollten. Bitte versteht mich nicht falsch! """"""""""""""""""""""""""""""""""" Ich will nicht damit sagen, daß ich Steak für tot erklären möchte. Wie bereits erwähnt, ist Steak klein, schnell und außerdem sehr auf die deutsche Sprache abgeschnitten. Ich möchte viele der Änderungen, die ich in der letzten Email angesprochen hatte, vornehmen, aber nicht es nicht mehr auf die Unterstützung andere Sprachen erweitern. Die Punkte, die ich bei Steak immer noch geändert sehen würden, sind: 1) Zusätzlich zum Standard-Datensatz auch -- falls vorhanden -- lokale User-gebundene Datensätze (in $HOME) nach regulären Ausdrücken suchen. 2) Eine gescheite Installationsroutine: Hier muß man sich mit autoconfig und automake beschäftigen. Man sollte das Programm -- wie üblich -- mit "./configure & make & make install" installieren können. Ich finde diesen Punkt sehr wichtig! 3) Bei der Kompilierung (genauer gesagt bei ./configure) sollte man eine Option habe, mit deren Hilfe man die Kompilierung von "printbuffer" verhindert. 4) Debian-Konforme Installation erlauben. 5) Einige Veränderungen, damit man das Programm auch unter Windows (cygwin) verwenden kann. Weitere Änderungen wie die Unterstützung der anderen Sprachen und Unicode würden Steak zu dem machen, was bereits Magic-Dic ist. Ich würde mich sehr freuen, wenn Ihr mir helfen könntet, daß ich einige der oben genannten Erweiterungen realisieren kann. Was meint Ihr denn dazu? Lieber Jörg, ich habe Deine neue Version ausprobiert. Sauber! Danke. Jörg schau Dir mal auch auf jeden Fall Magic-Dic an. Sag mir was Du dazu meinst. Bis dann Razi Am Sonntag, 8. September 2002 13:37 schrieben Sie: > Erik Sittmann schrieb : > > Hallo, > > > > nun möchte ich nur noch wissen, was du unter *fehlgeleite* > > ^+t > > Fehlgeleitet ist bei mir zum Beispiel ifupdown (ein Paket bei Debian, > aber auch bei sf.net zu haben). Das Programm ist in C geschrieben und > macht nicht mehr als die Arbeit eines Shellscripts. Es wird der Output > von ifconfig geparsed, ifconfig wieder mit den richtigen Parametern > aufgerufen, eine Datei ausgeleseen,... Das sind für mich alles Dinge, die > ein Shellscript wesentlich flexibler und sauberer kann als ein C > Programm. Und genauso wäre es, wenn wir ein C/C++-Programm schreiben, > dass grep aufruft oder dass eine externe Biblio. benutzt. Oder wenn test > in Assembler geschrieben wäre. > > Wenn wir so über Geschwindigkeit nachdenken, dann ist eine DB, wie sie im > Moment ist, total falsch. Aber ich würde das nicht ändern und lieber eine > abgespeckte Shell-version machen, die halt nur eine Wörterbuch durchsucht > und nicht alle oder die halt einige andere Features nicht hat. Wenn man > Komfort haben will, muss man halt auch etwas Zeit opfern. (aber bei >1GHz > Rechnern brauchen wir darüber nicht zu reden.) > > > und *TOFU* verstehst. Ich erwarte das du mannhaft und > > Text Oben Fullquote Unten (Such mal nach vera - Verzeichnis edv > relevanter akronyme; oder einfach apt-get install vera; oder > http://learn.to/quote/) > > Jörg. > > > ------------------------------------------------------- > This sf.net email is sponsored by: OSDN - Tired of that same old > cell phone? Get a new here for FREE! > https://www.inphonic.com/r.asp?r___________________________________________ >____ Steak-developer mailing list > Ste...@li... > https://lists.sourceforge.net/lists/listinfo/steak-developer |