フリーの辞書を利用してlinux上で辞書ソフト再現する
ついでにオンラインサービスとしても公開できますVine, Debian共通です
コンピューター上で使用できる各種英 和辞書ソフトがありますがLinuxでもndtpdとBookViewを使えば簡単に設置できます。
辞書サーバーはndtpdをapt-getでインストールします。
ndtpdは問い合わせに対して辞書の該当するページをひくエンジンで、ユーザーインターフェイスは持ちません。そのかわり、EPWINGに準拠した辞書 であれば複数の辞書を対象として同時に利用できます。
辞書データはここか らとってきます。
英辞郎は安価ですが購入する必要があります、ライフサイエンス辞書4、EDICT、GENE95英和辞書は無料で利用できますが一般に公開するにはライセ ンスに注意が必要です。そのほかにもいろいろな辞書が利用でき、市販されている辞書もスクリプトを用いて変換することで利用できる場合もあります。
辞書データは/usr/share/eb/以下に配置し、ndtpdの初期設定ファイルを書き換えて再起動します。
例えばEDICTを /usr/share/eb/EDICT に設置した場合、/etc/ndtpd/ndtpd.confに以下を追記します
begin book
### Name of the book.
### (required)
name edict
### Title of the book.
### (required)
title EDICT
### Path to a top directory of the book.
### (required)
path /usr/share/eb/EDICT
### How many clients can access the book at the same time.
### (default: 1)
max-clients 5
### Which hosts can or cannot access to the book.
### (default: none)
hosts 127.0.0.1
hosts ::1
hosts !?
end
このままだとndtpdはmessages, syslog, ndtpd.logの三つのファイルにログを残すのでアクセスが多いとロスが大きくなってしまいます。さらにndtpd.logにはアクセスがあるたびに ログの追加をしていますのでアクセスが続くとかなりうるさいです。そこでndtpd.log だけにログが残るようにします。
/etc/syslog.conf を編集し
前略
*.*;auth,authpriv,local0.none -/var/log/syslog
略
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none;\
local0.none -/var/log/messages
略
local0.info -/var/log/ndtpd.log
これでうちのサーバーもだいぶん静かになりました。
次にユーザインターフェイスの部分のBookViewをホームページからダウンロードしインストールします。Tcl/Tk 8.3 かそれ以降、もしくは 8.0jpが必要です。
これでLinux上で辞書を利用できます。私はライフサイエンス辞書4、EDICT、GENE95英和辞書、WordNet(以上フリーの辞書)に加え昔 のパフォーマについていた国語辞書を一緒に利用しています。
この他にwebページからPHPを用いてndtpdにアクセスし辞書を検索することもできます。
実際に利用しているPHPスクリプトの ソースはこちらです。
本来ndtpdはもっと高機能のようですが、単純な英和辞書機能のみにしぼっています。エラー処理もいい加減ですが関心のあるかたは改造してみて下さい。