From: Martin F. <ma...@sk...> - 2009-02-09 23:49:23
|
Hello, there is an entry about the automatically extended Stendhal word list in the bug tracker: https://sourceforge.net/tracker2/?func=detail&aid=2457606&group_id=1111&atid=101111 It describes the problem that at some time the parser did no more recognice expressions containing the word "3" correctly. While it may look like a trivial bug, there is a longer story behind it. The parser in the Stendhal server needs to know about word types in order to decipher the English grammar. Because the initial word list in the source code will never be complete to handle all user input, there is a logic in the code to add previously unknown words in the list as they are detected by one of the NPCs. Their type is initially unknown. Anyhow this new entries have influence on the following behaviour of the parser. This is what explains the behavior shown in the above bug. The problem has been solved initially by reseting the word list in the server to the hard coded list. My initial idea was to take this automatically detected new words as proposal to extend the word list permanently. Using a comfortable word list editor it would be possible to edit the word list entries and associate word types. This way the parser would grow and could handle more and more extended vocabulary. Its behavior would become better and better as time goes by. The word list editor could access the database directly using JDBC. But I initially forgot that then either the user interface of the word list editor would have to run on the server. Or the database access would have to be implemented in any other way between server and client. One way would be to configure a limited access to the MySQL port through the firewall. Another way would be to integrate the word list editor into the Stendhal client and use the already existing client/server connection to transmit the data. What are your ideas and opinions about the word list editor? Regards, Martin (original text in German) Vor einiger Zeit wurde ein Bug bzgl. der automatisch gefüllten Wortliste in Stendhal erfasst: https://sourceforge.net/tracker2/?func=detail&aid=2457606&group_id=1111&atid=101111 Da ich hierzu adhoc keine Lösung parat habe, möchte ich eine kleine Diskussion starten. Der Parser im Stendhal-Server ist auf die Zuordnung von Word-Typen angewiesen, um die englische Grammatik aufzulösen. Da die im Quellcode vorgegebene Liste mit nie ganz vollständig sein wird, um alle Benutzereingaben abzudecken, ist eine Logik im Code enthalten, die bisher unbekannte Wörter mit in der Liste erfasst, sobald sie von einem der NPCs entdeckt werden. Deren Typ ist zunächst einmal noch nicht bekannt. Dennoch beeinflussen diese Neueinträge das nachfolgende Verhalten des Parsers. Dies erklärt das im oben aufgeführten Bug beschriebene Verhalten. Das akute Problem wurde zunächst dadurch gelöst, dass die Wortliste im Server auf die im Code verdrahtete Liste zurückgesetzt wurde. Meine ursprüngliche Idee war nun, diese automatisch neu erfassten Wörter als Vorschläge für eine permanente Erweiterung der Wortliste zu verwenden. Über einen komfortablen Wortlisten-Editor könnte man die Einträge der Wortliste nachbearbeiten und jeweils einen Wort-Typ zuordnen, so dass der Parser weiter reift und künftig mit dem erweiterten Vokabular klarkommt. Nach und nach wird sein Verhalten so immer besser. Dieser Wortlisten-Editor könnte direkt über JDBC auf die Datenbank des Servers zugreifen. Woran ich zugegebenermassen allerdings anfangs nicht dachte ist, dass dazu entweder die Oberfläche des Wortlisten-Editors auf dem Server laufen muss. Oder der Datenbank- Zugriff wird auf irgend eine andere Weise zwischen Server und Client durchgeführt. Möglich wäre hier eine über die Firewall beschränkte Freigabe des MySQL-Ports. Oder man könnte den Wortlisten-Editor auch in den Stendhal-Client integrieren und die Daten über die schon bestehende Client/Server-Verbindung übertragen. Was sind Eure Ideen und Meinungen hierzu? Grüße, Martin |