NKF.pmのパッチ2005年12月10日 07時45分33秒

CVS上の NKF.pm のドキュメント部分を確認し、以下の修正を行うパッチを作成しました。

主な修正箇所は、
1.スペルミス(と思われるもの)の修正
2.空白、改行等の体裁の修正
程度です。

1に関しては単語のくスペルミスと思われるものの修正です。
2に関しては、直さなければならないという程のものではないですし、少々自分の好みが入っています。

なお、パッチはnkfのメーリングリストに送っておきましたので、反映されるかもしれません。

Namazu 2.0.15 pre4 公開2005年12月15日 00時39分26秒

Namazu 2.0.15 pre4 を公開します。

http://www.namazu.org/test/namazu-2.0.15pre4.tar.gz http://www.namazu.org/test/namazu-2.0.15pre4.tar.gz.md5 http://www.namazu.org/test/namazu-2.0.15pre4.tar.gz.sha1 http://www.namazu.org/test/namazu-2.0.15pre4.tar.gz.sig

$ md5sum namazu-2.0.15pre4.tar.gz 67f2191382fa7e022f215355658fbe12 namazu-2.0.15pre4.tar.gz

$ sha1sum namazu-2.0.15pre4.tar.gz 79646f973a054deb4d53689abd817a4e0692f825 namazu-2.0.15pre4.tar.gz

・主な pre3 からの修正内容(漏れがあるかもしれません)

* filter/mailnews.pl boundary が "" で囲まれていない場合に対応
* mknmz -C で MeCab 情報が表示されないバグを修正
* namazu.specのアップデート
* MIME::Base64.pm が無い場合 mknmz-19とnamazu-13をスキップ
* nmzcat, nmzegrep のアップデイト

・今後の予定

* pre4のWindowsで動作確認するためのテスト用バイナリの作成
* Namazu 2.0.15RC1 の公開

とくに大きな問題がない限り、基本的には、このpre4をほぼそのままRC1として公開したいと考えています。

免責) テストする場合は、文書が削除される危険性もあるので、念のためバックアップをとった文書を使ってテストしてください。

Windows ネイティブ版 Namazu 2.0.15pre42005年12月17日 22時23分06秒

Windows 環境で、コンパイル環境を整えるのは大変かと思いますので、コンパイル済みパッケージを用意しました。 インストーラの用意はできていません。(HDDがクラッシュしてしまいました。)

(アーカイブファイル)

http://www.namazu.org/test/nmz2.0.15pre4-win32.zip

(署名ファイル)

http://www.namazu.org/test/nmz2.0.15pre4-win32.zip.sig

(MD5sumファイル)

http://www.namazu.org/test/nmz2.0.15pre4-win32.zip.md5

(sha1sumファイル)

http://www.namazu.org/test/nmz2.0.15pre4-win32.zip.sha1

配布アーカイブには PGP による電子署名を行なっています。 署名は寺西忠勝の個人の鍵 (Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E) にて行なわれています。 この鍵は以下の PGP 公開鍵サーバ他より検索/取得が可能です。

http://pgp.nic.ad.jp/pgp/ http://pgp.dtype.org/


条件:

 ・C:\ に Win32 ネイティブ版の namazu 2.0.14 をインストールしており、
   正常に動作していること
 ・ActivePerl 800台を使っていること

 備考:上記以外の環境で動作確認できるバイナリは準備できません。ご了承ください。

インストール方法:

 1. Namazu 2.0.14 がインストール済みのため、これをバックアップします。
    c:\namazu を c:\namazu-2.0.14 に名前の変更を行います。
 2. nmz2.0.15pre4-win32.zip を C:\ に展開します。
 3. c:\namazu-2.0.15pre4 を c:\namazu に名前の変更を行います。
 4. msvcr71.dll がシステムにインストールされていない場合、これを入手し、
    システムディレクトリにコピーします。
 5. コマンドプロンプト(DOS窓)を開きます。
 6. Perlモジュールをインストールします。
    repository を登録して、ppm コマンドで直接インストールします。
    (インターネット接続環境が必要)
    C:\>ppm
    ppm> rep add "Namazu" "http://www.akaneiro.jp/PPMPackages/800/"
    ppm> install NKF
    ppm> install File-MMagic
    ppm> install Text-Kakasi
    ppm> quit

アンインストール方法:

 1. c:\namazu を削除します。
 2. バックアップしてあった Namazu 2.0.14 を戻します。
    c:\namazu-2.0.14 を c:\namazu に名前の変更を行います。

 注意:  ・いくつかのモジュールは新しいものに置き換わります。

動作チェック方法:

 1. c:\namazu\pltests に移動し、perl alltests.pl を実行します。
    画面にチェック結果が出力されます。
    また、test-log ファイルに ログが出力されます。 
 2. OS, Perl のバージョンをお知らせください。
 3. 画面に出力された結果をお知らせください。
 4. test-log の中の最初の方に記録される mknmz -C の出力結果も
     省略せずお知らせください。
    (テスト時に有効となっているフィルタを確認するため)

注意事項:

 - 通常のインストールパッケージではありません。
    事前に Namazu 2.0.14がインストールされており、正常動作している
    必要があります。
 - 自己責任で Namazu 2.0.15pre4 のインストールを行ってください。
   最悪のケースでは Namazu 2.0.14 に戻せない場合もあります。
 - 大切な文書はバックアップを取った上でご使用ください。
    開発中のもののため、対象文書を削除する危険があるかもしれません。

メディアタイプチェック2005年12月18日 11時49分51秒

mknmzではメディアタイプの判定にFile::MMagicを使っていますが、このメディアタイプの判定に多くの時間がかかっています。

まず、メディアタイプをグループに分けて階層的に判定を行う必要があります。
たとえば、HTMLグループにはMHonArcやPipermail等が含まれ、OLEグループにはWord,Excel,PowerPoint,一太郎文書等、zipグループにはzip,OpenOffice等といったようにグループ分けを行い、最初にどのグループなのかの判定をし次にグループの中のどのタイプなのかを判定するというようにです。
必要なら一番最初にバイナリファイルなのかテキストファイルなのかの判定を行うのが良いかもしれません。ただし、判定にどれくらいコストがかかるのかは見極める必要はあります。

次に判定する順番です。
よく判定するものから優先的に判定し、メディアタイプが判明した時点で判定を終了することで、効率的にチェックが行えます。
HTML,PDF,OLEドキュメント等は比較的よく判定するものですから、これらを優先することで速度は向上するはずです。
(利用用途によってはメールもよく処理するかもしれません。)
ケースバイケースですが、どのようなメディアタイプの文書をどれくらいの割合で処理しているか調査したいものです。

また誤判定を防ぐ意味でも、判定する順番は大切です。
判定材料としての情報が比較的少ないものはできるだけ後で判定しないと誤った結果が得られます。
たとえばMacbinary I が良い例です。

新規登録では仕方ありませんが、更新時は前回判定したメディアタイプのグループを優先的に判定するのが効率的です。
更新時にはメディアタイプが変わっている確率が低いためです。
NMZ.r ファイルにメディアタイプを記録しておき、そのメディアタイプが属するグループの判定をまず行い、違った場合には通常の判定を行います。
この時、グループ内の判定は慎重に行わなければ誤る可能性がありますので、記録されたメディアタイプそのものの判定は避けて、あえてそのグループの判定から行うのが良いだろうと今のところは思っています。

-t オプションで直接メディアタイプを指定することができますが、ここのファイルのメディアタイプを指定することができませんから、-F でファイルリストを指定する場合にも、メディアタイプも指定できるようになっていればこれを使うのも良いでしょう。
ファイルフォーマットは拡張して

"filename","メディアタイプ"

という形式にして、メディアタイプは省略可能。
そして従来の

filename

という形式も互換性のためにサポートしておく。
filename に空白やダブルクォーテーションが含まれる場合についても考慮する必要があるし、UTF-8コードで記録する拡張も合わせて行う。

最後にmknmzの中の判定も比較的複雑なものですから、これも整理したいと考えています。

NMZ.r について2005年12月18日 12時47分53秒

NMZ.r の形式は変更したい。

・処理しやすい形式に変更する。
(更新、削除、新規登録のチェック等)
・ファイル名はUTF-8で記録する。
・ファイル名に空白等が含まれるものも考慮する。
・メディアタイプを記録して、更新時に利用する。

注意:
・gcnmz等でも利用するので、注意が必要。
(形式を変える前にツール独自の処理ルーチンを廃止し、mknmzと共通のモジュールを使用するように修正が必要)

ターゲットファイル2005年12月18日 12時55分41秒

mknmz -F オプションで指定するファイルです。
インデックス対象のファイルを1ファイル1行で書いたリストです。
(もしかすると公式な資料にこのファイル形式は載っていないかもしれません。)

path/filename1
path/filename2
path/filename3
:
:

といった感じです。
これを

"path/filename1","メディアタイプ"
"path/filename2","メディアタイプ"
"path/filename3"
:
:

という形式もサポートして、個々のファイルのメディアタイプを直接指定できるように改良したいと思います。
メディアタイプは省略可能で、その場合は通常のメディアタイプの判定を行います。
-t オプションでは個々のファイルのメディアタイプは指定できないためです。

その他にも
・UTF-8コードで記録する。
・空白、ダブルクォーテーション等のエスケープを行う。
・ドライブレター(Windows)
・UNC(Windows)
・パス区切り文字
・大文字/小文字(パス名/Windows)
などのいろいろと考えたいと思います。

chasen-[1-3].pl, mecab-[1-3].pl 追加2005年12月19日 22時03分40秒

pltests に chasen コマンド、Text::ChaSen の分かち書きのテストと、それぞれに差がないことをテストするものを追加しました。

わかち書きに chasen コマンドを使用し、mknmz-1 と namazu-1 相当のチェックを行うのが chasen-1.pl です。
わかち書きに Text::ChaSen を使用し、mknmz-1 と namazu-1 相当のチェックを行うのが chasen-2.pl です。
それぞれのインデックスが一致するかどうか idxdiff-1相当のチェックを行うのが chasen-3.pl です。

同様に mecab コマンド、MeCab Perlモジュールを用いたのが、それぞれmecab-1.pl, mecab-2.pl, mecab-3.pl です。

(HEADのみ)

pltests/idxdiff-3修正2005年12月19日 22時06分46秒

pltests/gcnmz-1.pl のファイルコピーの際にタイムスタンプが維持できないので、NMZ.field.date の他、NMZ.field.utc に影響ができます。
このため、idxdiff-3.pl では NMZ.field.utc を比較しないようにしました。

ただし、デフォルトでは NMZ.field.utc は作成しませんので、特に影響はないはずです。

フィギュア トリノ代表決定記念2005年12月26日 01時07分01秒

フィギュア トリノ代表決定を記念して私家版kakasiの辞書を更新しました。

http://www.asahi-net.or.jp/~yw3t-trns/namazu/kakasi/

・村主 章枝(すぐり ふみえ)

・安藤 美姫(みき)

などトリノ代表者の他、合計約290語追加しています。

hoseidict とは?2005年12月26日 14時41分36秒

kakasiのマニュアルには以下のような記述がありますが

> -p 辞書中で照合したものが複数ある時に、そのすべてを表示します。多く
> の単語は複数の読みがあります。 KAKASI ではインストール時に最も読
> まれそうな辞書を hoseidict で与えていますが、それ以外に可能な 読
> み方があれば {} でくくって表示します。

この hoseidict とは何でしょうね?