[前のメッセージ (日付順)]  [次のメッセージ (日付順)]
[前のメッセージ (スレッド順)]  [次のメッセージ (スレッド順)]
[日付によるインデックス]  [スレッド・インデックス]  [記事検索]

server completion の仕様の欠陥



# このメールは、現時点で server completion が実装されている
# wskkserv, wceskkserv, yaskkserv の作者様にも送らせて頂いています。
# ML のやりとりは
# http://mail.ring.gr.jp/skk/
# で見れる他、news.ring.gr.jp サーバの ring.openlab.skk というニュー
# スグループで投稿する事もできたと思います。


今更ながら気付いたのですが、現状の server completion の仕様には欠陥
があるようです。

現在の(おおまかな)仕様は、

"4key "

というリクエストに対し、

"1/midasi1/midasi2/\n"
  or
"4\n"   ("4key\n" ?)

のような返答をするようになっていますが、そもそも SKK の辞書の見出し
にスラッシュ('/') を含む事は可能で、実際に現時点の L 辞書にもそのよ
うなエントリは複数あります。
たとえば '/' から始まる見出しには、

/ ///÷/
/. /スラッシュドット;slashdot.org/slashdot/スラド/
/= /≠/

がありますが、'/' を server completion にかけると、サーバの応答は

1////.//=/      (完全一致の見出しも含める場合)

となっており、クライアントは結果を正しく処理できません。

SKK では見出しにスペースを含める事ができないので、server completion
の時にはスラッシュに替えてスペース区切りで返すようにすれば解決するよ
うに思うのですが、どうするのがいいでしょうか。


1. 見出しに '/' を含むエントリは少ないので現状のままにする。
   # クライアント側は、サーバからの返り値を '/' で split した後、
   # それぞれの候補が妥当なものであるかチェックする手間が増える。
2. スラッシュ区切りのままだが、サーバは '/' を含む見出しは結果に含め
   ないようにする。
3. スラッシュでなくスペース区切りにする。
   プロトコルの数値はこれまで通り '4' で server completion とする。
4. スペース区切りにするが、'4' でなく '5' とか 'c' など新たなものと
   する。

といったところが考えられます。

ちなみに server completion に関しての状況は、
- Windows 環境のサーバは実装している
- UNIX 環境では実装しているサーバの利用者はかなり少ない (たぶん)
- DDSKK ではユーザが設定しないと使われない
- DDSKK 以外ではまだ利用しているクライアントは無い (たぶん)

と、今頃になって変更してもそれほどはユーザに混乱をもたらさないような
気もしますが、server completion に DDSKK が対応(@2006-01-04)してから
最初の beta release が近日に控えており、release 後に仕様が変わるのも
どうかな、という状況でもあります。

また、新しい DDSKK が古い仕様のサーバに対応する事は可能と思いますが、
その逆は仕様次第では不可能だと思います。
# 前者では、"1/midasi1/midasi2/\n" でも "1 midasi1 midasi2\n" でも、
# 1の直後の文字をセパレータとして扱えば良い。


# その他にも、key に完全一致の見出しも返答内容に含めるかといったとこ
# ろが曖昧なのも気になっていたり。


-- 
Eiji Obata

# 久々に辞書を更新して \/ → ▽ という変換をしようとしたら、この欠陥
# と dcomp を on にしていたために 2文字目の '/' が入力できず気付きま
# した。