DICT (Dictionary Server Protocol)はサーバから辞書を引くためのプロトコルで, RFC2229で定義されています。 DICTプロトコル対応のソフトウェアの開発は主にdict.orgで行われています。
URIのスキーマとして dict が定義されており,標準はTCPポート2628が使われます。
DICTサーバの一覧や辞書,ソフトウェアなどはdict.org: Resourcesにまとめられています。
dictdで使用されるフォーマット(dictdフォーマットもしくはdictフォーマット)については,"man dictd"内に書かれています ("DATABASE FORMAT"セクション)。 日本語の説明はほとんどありませんが,Lookupのマニュアルに少しだけ書かれています。
dictdフォーマットでは2つのファイルが使われます。 一つはデータ用で,拡張子は .dict になっています。 あるいは,dictzipコマンドで(gzip形式の)圧縮を行ったファイルは .dict.dz 拡張子を持ちます。 もう一つは検索に使うインデックス用で,拡張子は .index になっています。
.dict ファイルのフォーマットは非常に単純で, 語のエントリが順番に(区切り文字無しで)格納されているだけです (テキストしか含まないバイナリフォーマットという感じ)。
.index ファイルは各行がタブ区切りのTSV (Tab Separated Values)フォーマットになっており, 各行は "見出し語\t開始位置\tデータ長\n" です。 ここで\tはTAB (0x09),\nはLF (0x10)です。 開始位置はバイトオフセット,データ長はバイト数で,ともにBase64 (RFC3548)で記述されます。 なお,インデックスファイルの見出し語は(dictdの指定する方法で)ソートされている必要があります。
例えば次のような .index が提供された場合,
00-database-short A y access y Y
00-database-shortを表示する場合はA=0バイト目からy=50バイト分を取り出し, accessを表示する場合はy=50バイト目からY=24バイト分を取り出して(通常はそのまま)表示することになります。
いくつかの見出し語(headword)は特別な意味を持ち, それらには例えばデータベースに関する情報を格納する 00-database-info/00databaseinfo や短いデータベース名を格納する 00-database-short/00databaseshort があります。 詳しくは "man dictd" や "man dictfmt" を参照してください。
cygwin上でDICTサーバのdictdを立ち上げるための手順です:
database web1913 { data "/cygdrive/e/dict/dict-dbs/web1913.dict.dz"
index "/cygdrive/e/dict/dict-dbs/web1913.index" }dict stream tcp nowait root /usr/local/sbin/dictd -c /usr/local/etc/dictd.conf -i
dict 2628/tcp
Last Modified: $Id: dict.ja.html,v 1.3 2005/11/28 17:33:25 deq Exp $
Copyright (C) 2005 tradic project. All Rights Reserved.