ウィキペディアをオフラインのデスクトップで使う


最近Googleで検索していると、個人サイトでウィキペディアのサービスをやっている方のページが引っかかる。郵便番号みたいにデータが公開されているのかな?と思って調べてみた。


Wikipedia:データベースダウンロード
http://ja.wikipedia.org/wiki/Wikipedia:%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89


ここにまとまっているようだ。
データベースを公開されている方も利用者の方の利便性からいったらこういう風に公開していただけるとありがたいなぁと思う。まさに痒いところに手が届く感じだ。Namazだけだと全部検索語か番号を打ち込まなければならず、大変なのだ。トラフィックも大変だろうし。Wgetという便利なフリーソフトもあるけれど、やっぱ総当りでURLを何万回とサーバに問い合わせるよりひとつのファイルに圧縮していただけるとありがたいのだ。
一つ一つ見にくればいいじゃないか、という考え方もあるんだけれど、いつなくなってもおかしくないのがインターネットの世界、ピンと来た情報はそのときに保存しておかないともう二度とお目にかかれないことが多いのだ。
まあだからってデータベース作者の方に、データをまとめて一つのファイルにしてくれ、とは頼めないけれど。手間だし。
ただこういうウィキペディアみたいにまとめてあると本当に助かるし、ありがたいのだった。


で、ダウンロード。回線が細いのか時間がかかる。


今回はFree Dictionary でよく使われているEBWin Unicode版というのでDesktop環境にWikipediaをもってこようと思う。

で、まず

EBWin Unicode版
http://www.vector.co.jp/soft/dl/winnt/writing/se403151.html

をダウンロードしてインストール。いつもWindows2000をつかっているので、Windows2000にインストール。




この原稿を最初に書いたのは2008年の4月11日なのであれからずいぶん変わりました。
文末に追加事項を足していっていたのですが、読みにくくなりましたので、以後、ちょっと改訂します。参考までに改訂前の続きは下に残してあります。(20090515)



FreePWING 公式ページ

http://www.sra.co.jp/people/m-kasahr/freepwing/

から最新のソースコードをダウンロードします。

現在、freepwing-1.6.tar.bz2 が最新です。

freepwing-1.6.tar.bz2 から 4GB超のHONMONを生成可能

fpwmake の処理を一部高速化するオプション有。

あらかじめ gdbm ないし Berkeley DB を apt-get か Synaptic でインストールしてください。



wikipedia-fpw
http://ikazuhiro.s206.xrea.com/staticpages/index.php/wikipedia-fpw

から最新のソースをダウンロードします。

現在 wikipedia-fpw-20090428-src.tar.gz が最新です。



あと
http://download.wikimedia.org/jawiki/

から
最新のダンプファイルをダウンロードします。

現在は jawiki-20090513-pages-articles.xml.bz2 が最新です。日付をみて最新であれば jawiki-latest-pages-articles.xml.bz2 というファイルでもいいです。



また、2009年4月23日分のダンプデータ以降、HONMONファイルが2GBを超えますのでUbuntuを使用している方はPerlも別途入れなければなりません。

UbuntuのアーカイブをミラーしているサイトからPerlのソースとUbuntu用にカスタマイズするためのDiffファイルをダウンロードしてください。 たとえば、 理化学研究所のFTP

ftp://ftp.riken.jp/Linux/ubuntu/pool/main/p/perl/

のようなところです。 現在 perl_5.10.0.orig.tar.gz と perl_5.10.0-19ubuntu1.diff.gz が最新です。



またPerlをUbuntuでコンパイルするときには、sudo apt-get install libstdc++6-4.2-dev が必要だそうです。(はけの徒然日記さんのブログより。私はすでに別の作業で入れていたらしくて入ってました。追記20090517)



また freepwing1.6 と wikipedia-fpw-20090428-src.tar.gz のコンビからperlmagick と mimeTeX を使用すると数式をインライン画像で収録可能になりました。

mimeTeX を sudo apt-get install します



2GB以上のHONMONを作成する場合には Ubuntu の perlmagick が使えませんので、Imagemagick をソースからコンパイルします。

KDDI の FTP サイト

ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/

から最新のPerlMagickのソースをダウンロードします

現在 ImageMagick-6.5.2-4.tar.gz が最新です。7Z tar.bz2 tar.lzma zip 等ありますがZIPは多分Windows用ですのでUbuntuはそれ以外をダウンロードしましょう。



それでは、ダウンロードしたソースのコンパイルに入ります。

まずPerlから取り掛かります。

perl_5.10.0-19ubuntu1.diff.gz をダブルクリックして展開、perl_5.10.0-19ubuntu1.diffを取り出します。

perl_5.10.0.orig.tar.gzを展開して、フォルダーの名前を perl-5.10.0.orig に変更します。そのフォルダの外に perl_5.10.0-19ubuntu1.diff がある状態にしてから

patch -p0 < perl_5.10.0-19ubuntu1.diff
とやってパッチを当てます。

freepwingでファイルが2GB以上になる場合の変換にはPerlのCompile-time optionsにUSE_64_BIT_INTとUSE_LARGE_FILESが必要ですから、コンフィギュラーで指示します。それ以外に必要だと思われるものも一緒に指示します。

 perl-5.10.0.orig フォルダに入ってから
sh Configure -Duselargefiles -Duse64bitint -Dusethreads -Dcc=gcc -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dd_dosuid -Dprefix=/opt/perl -Dloclibpth="/opt/perl/lib /usr/local/lib" -Duselongdouble -des
をコピペしてリターン。
サイレンスモードなので自動で設定が終わります。
最後の『-des』を削除すれば、確認しながら対話形式で設定できます。
checkinstall でインストールします。
sudo checkinstall
checkinstallについては

ソースファイルからRPMファイルを作成するには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/530mkrpmfs.html

を参照。Ubuntuはパッケージがあるので sudo apt-get install checkinstallでインストールできます。 UbuntuはDebian系なのでもしパッケージの種類を質問されたらDで。
インストール名を Perl 以外にするのを忘れずに。Ubuntu 謹製 Perl と衝突します。項目の2番を、あとからわかりやすい名前に自分で変更します。
PATH=/opt/perl/bin:$PATH
とやって一時的にパスを変更します。

perl -V

を打って内容を確認しましょう。

一時的にパスを通すのは、他のパッケージソフトで Ubuntu にもともと入っている Perl に依存しているパッケージがあるので、ウィキペディアの変換だけにこの私製コンパイルPerlを使ったほうがいいからです。一時的にパスが通っているだけで、新しく端末を立ち上げるとそちらにはパスが通っていませんので、毎回指定するか、同じ端末で以後作業しましょう。

次は Imagemagick のコンパイルです。
PATH=/opt/perl/bin:$PATH
のパスの通してある端末画面から


$ tar xzvf ImageMagick-6.5.2-4.tar.gz
$ cd ImageMagick-6.5.2-4
$ ./configure --prefix=/opt/imagemagick
$ sudo checkinstall



次はFreePWINGのコンパイルです。
PATH=/opt/perl/bin:$PATH
のパスの通してある端末画面から



$ tar xjvf freepwing-1.6.tar.bz2
$ cd freepwing-1.6
$ ./configure
$ sudo checkinstall



次はwikipedia-fpwです。これは展開するだけです。

展開したらそのフォルダーの中にjawiki-20090513-pages-articles.xml.bz2 かまたは jawiki-latest-pages-articles.xml.bz2 を移動。ドラッグアンドドロップでもいいし、cpでコピーしてきてもいい。

数式を収録しない場合はwikipedia-fpw.confをテキストエディタで開いて'enable_math'を0に変更。

数式を収録する場合は、wikipedia-fpw.confファイルのコメントを参照の上、'mimetex'と'math_black'の値も設定。



$ 'mimetex' => 'mimetex',

$ 'math_black' => 0,



で、wikipedia-fpw-20090428の中でjawiki-latest-pages-articles.xml.bz2をbunzip2を使って解凍して、名前をjawiki-latest-pages-articles.xmlから wikipedia.xmlに変更します。





$ tar xzvf wikipedia-fpw-20090428-src.tar.gz
$ cd wikipedia-fpw-20090428

(ここで、このいまできたばかりのフォルダーに
jawiki-latest-pages-articles.xml.bz2を
コピーしておく)

$ bunzip2 jawiki-latest-pages-articles.xml.bz2
$ mv jawiki-latest-pages-articles.xml wikipedia.xml




でその後同じフォルダーの中で
PATH=/opt/perl/bin:$PATH
のパスの通してある端末画面から






$ fpwmake FPWLINKMOD=GDBM
$ fpwmake catalogs
$ fpwmake package 



Berkeley DB を用いた高速化は fpwmake FPWLINKMOD=BDB


最初の$ fpwmakeが大体5,6時間かかる。後は10分とかそんなにかからないので、最初のファイルを作るときは空き時間を上手に使わないととんだ目にあう。

次回から変換するときには、必ず最初に端末にパス
PATH=/opt/perl/bin:$PATH
を通してから作業する。

最後の$ fpwmake packageが終わると、wikipedia-fpw-20090428.zipというファイルが出来上がっているので、それをWindows2000へ移動する。

freepwing-1.6.tar.bz2 からの仕様なのか、packageをやると最初からリンクをやり直しにかかるので、次回からはHONMONファイルを作ったらそれだけを入れ替えた方がいいと思う。



+Lhacaで展開後、EBWin同梱のEBshrink(EBWinをインストールすると一緒にインストールされる)を使って圧縮。圧縮率はデフォルトの3段階目にしておいた。


早速EBWinで使ってみると快適に動く。いつも関連URLを押すと表示されるまでに時間がかかっていらいらしていたのが、これだとぱっぱっぱと次々現れる。ただし、数式以外の図表関係は表示されない。図表がいるときにはネットで見ればいいだろう。

EBWinをつかうと、Windows2000にPHPやMysqlなどをインストールしなくてもいいので楽だ。



今のところ暇な時にEPWING形式変換済ファイルを下記リンク先でアップしています。(気が向いたときにアップデートします)DDWinでも使えるようにEBshrinkでの圧縮はしていません。各自お好みで圧縮してください。

フリーソフト紹介のページ
http://trade2.easter.ne.jp/soft/index.html#dictionary












(最初の記事 20080411)上記改訂前の続き。参考まで。

次に、

FreePWING patch
http://ikazuhiro.s206.xrea.com/staticpages/index.php/freepwing

から
freepwing-1.4.4+20071226.tar.gz

wikipedia-fpw
http://ikazuhiro.s206.xrea.com/staticpages/index.php/wikipedia-fpw

から
wikipedia-fpw-20071202-src.tar.gz

をUbuntuの入ったパソコンにダウンロード。


あと
http://download.wikimedia.org/jawiki/

から
http://download.wikimedia.org/jawiki/20080408/jawiki-20080408-pages-articles.xml.bz2
をダウンロード。


まずfreepwing-1.4.4+20071226.tar.gzをインストール。



$ tar zxvf freepwing-1.4.4+20071226.tar.gz
$ cd freepwing-1.4.4+20071226
$ ./configure
$ sudo checkinstall




checkinstallについては

ソースファイルからRPMファイルを作成するには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/530mkrpmfs.html

を参照。Ubuntuはパッケージがあるのでapt-get install checkinstallでインストールできる。

UbuntuはDebian系なのでDで。

次にwikipedia-fpw-20071202-src.tar.gzを展開。これは展開するだけ。展開したらそのフォルダーの中にjawiki-20080408-pages-articles.xml.bz2を移動してくる。ドラッグアンドドロップでもいいし、cpでコピーしてきてもいい。で、wikipedia-fpw-20071202の中でbunzip2を使って解凍して、名前をjawiki-latest-pages-articles.xmlから wikipedia.xmlに変更する。





$ tar xzvf wikipedia-fpw-20071202-src.tar.gz
$ cd wikipedia-fpw-20071202

(ここで、このいまできたばかりのフォルダーに
jawiki-latest-pages-articles.xml.bz2を
コピーしておく)

$ bunzip2 jawiki-latest-pages-articles.xml.bz2
$ mv jawiki-latest-pages-articles.xml wikipedia.xml







でその後同じフォルダーの中で






$ fpwmake
$ fpwmake catalogs
$ fpwmake package 




を処理する。

最初の$ fpwmakeが大体5,6時間かかる。後は10分とかそんなにかからないので、最初のファイルを作るときは空き時間を上手に使わないととんだ目にあう。

最後の$ fpwmake packageが終わると、wikipedia-fpw-20071202.zipというファイルが出来上がっているので、それをWindows2000へ移動する。今回のは705.9MBになった。


+Lhacaで展開後、EBWin同梱のEBshrink(EBWinをインストールすると一緒にインストールされる)を使って1GB超になったファイルを780MBくらいに圧縮。圧縮率はデフォルトの3段階目にしておいた。


早速EBWinで使ってみると快適に動く。いつも関連URLを押すと表示されるまでに時間がかかっていらいらしていたのが、これだとぱっぱっぱと次々現れる。ただし、図表関係は表示されない。図表がいるときにはネットで見ればいいだろう。

EBWinをつかうと、Windows2000にPHPやMysqlなどをインストールしなくてもいいので楽だ。



今後のデータの更新はこちらのページで。(気が向いたときにアップデートします)

フリーソフト紹介のページ
http://trade2.easter.ne.jp/soft/index.html#dictionary



(追加ファイル)

freepwing-1.5.tar.bz2

wikipedia-fpw-20080616-src.tar.gz

wikipedia-fpw-20080616-en.diff.txt

freepwing-1.5-lfs.diff.txt

freepwing-1.5-lfs2.diff.txt



(追加ファイル 20090121)

freepwing-1.6.tar.bz2

4GB超のHONMONを生成可能



fpwmake の処理を一部高速化するオプション有。

あらかじめ gdbm ないし Berkeley DB をインストールする。

gdbm を用いた高速化。

% fpwmake FPWLINKMOD=GDBM

Berkeley DB を用いた高速化。

% fpwmake FPWLINKMOD=BDB



(追加ファイル 20090222)

wikipedia-fpw-20090220-src.tar.gz

数式を収録しない場合はwikipedia-fpw.confの'enable_math'を0に変更。

数式の収録には、インライン画像の登録に対応したFreePWING 1.6以降とmimeTeX及びImage::Magickモジュールが必要。

ubuntuはmimeTeX、perlmagickをapt-get install

数式を収録する場合は、wikipedia-fpw.confファイルのコメントを参照の上、'mimetex'と'math_black'の値も設定。



(追加ファイル 20090422)

freeuwing-1.6-20090413.tar.gz

FreePWINGのUTF-8版

基本的にはFreePWINGと同様。
FreePWING -> FreeUWING, FPW -> FUW, fpw -> fuw のように置き換え。
『テキストや検索語は UTF-8 でエンコードされた、ユニコードフラグの立っていない文字列を使用してください。ユニコードフラグの立った文字列での動作は未検証です。』
とのこと。

wikipedia-fuw-20090413-src.tar.gz

FreeUWINGを利用してJIS X 4081 UTF-8 extensionに準拠した書籍を作成するツール

$fuwmake
$fuwmake catalogs
$fuwmake package



(追加ファイル 20090501)

wikipedia-fpw-20090220-src.tar.gz のファイルの fpwwikipedia fpwwikipedia_cgraph を差し替え

wikipedia-fpw-20090220-src-20090428.zip

正式版が出るまで、暫時。

Entry: 1136053; ザ・ダッシュ
Entry: 1136059; テリー・カー
fpwwikipedia: Elapsed time : 21466sec.
fpwwikipedia: Number of entries: 590806
/usr/local/libexec/freepwing/perl.sh /usr/local/libexec/freepwing/fpwsort -workdir work
/usr/local/libexec/freepwing/perl.sh /usr/local/libexec/freepwing/fpwindex -workdir work
/usr/local/libexec/freepwing/perl.sh /usr/local/libexec/freepwing/fpwcontrol -workdir work
/usr/local/libexec/freepwing/perl.sh /usr/local/libexec/freepwing/fpwlink -workdir work -module GDBM
/usr/local/libexec/freepwing/fpwlink: unknown tag name, cgraph:math_c364f545548545350203e3: line 968686, work/textref
make: *** [work/link.dep] エラー 9
というエラーの訂正。



(追加ファイル 20090503)

wikipedia-fpw-20090428-src.tar.gz



(追加 20090507)

jawiki-20090423-pages-articles.xml.bz2にてついにHONMONが2GBを超えました。

UbuntuのユーザはPerlをソースからインストールする必要があるかもしれません。

現在最新である perl_5.10.0.orig.tar.gz と perl_5.10.0-19ubuntu1.diff.gz を 理化学研究所のFTP

ftp://ftp.riken.jp/Linux/ubuntu/pool/main/p/perl/

から落としてくる。
perl_5.10.0.orig.tar.gzを展開して、フォルダーの名前を perl-5.10.0.orig に変更してから
patch -p0 < perl_5.10.0-19ubuntu1.diff
とやってパッチを当てる。
 perl-5.10.0.orig フォルダに入ってから
USE_64_BIT_INTとUSE_LARGE_FILES、あとその他いろいろ関係ありそうなコマンドを指示するために
sh Configure -Duselargefiles -Duse64bitint -Dusethreads -Dcc=gcc -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dd_dosuid -Dprefix=/opt/perl -Dloclibpth="/opt/perl/lib /usr/local/lib" -Duselongdouble -des
をコピペしてリターン。
サイレンスモードなので自動で設定が終わる。
checkinstall でインストールする。インストール名を Perl 以外にするのを忘れずに。Ubuntu 謹製Perl と衝突します。
PATH=/opt/perl/bin:$PATH
とやって一時的にパスを変更してやる。
freepwing-1.6をインストールしなおす。

KDDI の FTP サイト

ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/

から最新のPerlMagickのソースをダウンロードしてきて、これも 
PATH=/opt/perl/bin:$PATH を一回通してある端末から
./configure --prefix=/opt/imagemagick
であとは checkinstall でインストール。
その後、wikipedia-fpw-20090428-src.tar.gz でウィキペディアのデータを変換。
以後、ウィキペディアを変換するときには
PATH=/opt/perl/bin:$PATH
を必ずやってから取り掛かる。