ウィキペディア日本語版のダンプデータを、FreeUWINGを利用してJIS X 4081 UTF-8 extensionに準拠した書籍を作成するツールです。
ウィキペディア日本語版のダンプデータを、FreeUWINGを利用してJIS X 4081 UTF-8 extensionに準拠した書籍を作成するツールです。 オフラインでウィキペディアを参照したい場合に使えます。 ただし、画像とか表には全く対応していないので、そういうものも参照したい場合はオンラインになるなりローカルにウィキペディアのコピーを構築した方がよいと思います。
wikipedia-fuw-20091202-src.tar.gz
このツール自体は任意のディレクトリに展開するだけです。 ただし、FreeUWINGの導入以外に以下の要件を満たす必要があります。
これは2GBを超えるサイズのHONMONファイルを作成する為の要件ですが、現在ダウンロードできる最新のダンプデータからそのまま書籍を作成するとHONMONファイルが2GBを超えるので必要になります。
perl -V等で、Compile-time optionsにUSE_64_BIT_INTとUSE_LARGE_FILESが存在している事を確認してください。
未検証です。 wikipedia-fpwより必要なHDD容量は増えますが、変換にかかる時間は短縮されるはずです。
ダウンロードサイトからダンプデータをダウンロードします。 ダウンロードするファイルはjawiki-latest-pages-articles.xml.bz2、あるいはjawiki-yyyymmdd-pages-articles.xml.bz2のような名前のファイルです。
ダンプデータは伸長した状態で、ツールのあるディレクトリにwikipedia.xmlという名前で置いてください。
'enable_reference' => 1,
となっている部分を
'enable_reference' => 0,
のように変更してください。 この値を2にすると同一項目内にある、参照先が重複した相互参照を無効にできます。
数式を収録しない場合は'enable_math'を0に変更してください。 数式の収録には、mimeTeXとImage::Magickモジュールが必要になります。 数式を収録する場合は、ファイルのコメントを参照の上、'mimetex'と'math_black'の値も設定して下さい。 ただし、Cygwin 環境では子プロセスの起動に時間がかかるようで、ものすごく時間がかかります。数式の収録を行う場合は他の環境を用意することをおすすめします。
読みがなの収録を試みない場合は'yomigana'を0に変更してください。 デフォルトでは本文テキストから類推した見出し語の読みがなをインデックスに登録します。 この機能は2ちゃんねるにて開発されたものを取り込ませて頂きました。
デフォルトではカタカナを含む検索語を登録する場合に、カタカナをひらがなに変換したものも検索語として登録しますが、'hiragana'を0に変更するとこの機能を使用しなくなります。
@skip_headings, @skip_contents, @select_headings, @select_contentsを編集することで、書籍に収録する項目の取捨選択が(一応)行えます。 ソースのコメントを参照してください。
その他の項目はどちらかというとデバッグ用です。 コメントを見てわかる人はいじってみてください。
$fuwmake
で辞書が生成されます。 この時、
Complex regular subexpression recursion limit (32766) exceeded at
fuwwikipedia line 219, <GEN11> line 4959960.
のような表示が出るかもしれませんが気にしないでください。
また、parserやpreparserがOut of memoryで止まる場合はDB_Fileモジュールをインストールしたうえで
$fuwmae HASH_MOD=BDB
として辞書を作成してください。fuwlinkがOut of memoryで止まる場合は
$fuwmae FUWLINKMOD=BDB
としてください。
パッケージを作る場合は
$fuwmake package
等のようにします。 packageの部分をpackage-tar-gzやpackage-tar-bz2に変えれば、それぞれに応じたファイル形式でパッケージが作られます。
仕様です。
試行錯誤である程度は対応したつもりですが、予期せぬ書式に出くわしたときはエラーで止まるかもしれません。 というか、正しく書かれたものでも止まるかもしれません。
テキストの内容によってはCygwinのperlが落ちます。 相互参照が有効になっている時に、別名を持つリンクの閉じ括弧がないと落ちることがあるようです。 今のところは動かなくなる部分にworkaroundを入れて対応しています。 また、閉じ括弧がないのはMediaWikiの書式としても正しくはないので、見つけたものについてはWikipediaのページにも反映させています。 ですので、新しいダンプデータではこのworkaroundは不要になっているかも知れません。
workaroundは変換速度の低下につながるので古くなった分に関してはコメントアウトしていく予定です。 つまり、ダンプデータが新しすぎたり古すぎたりする場合はうまく動作しないことがあります。 それから、筆者はCygwinのperlでの動作確認は基本的にはしていないので、動作しなくなっていても気づかない事があります。 動かなくなっている場合は、いつのダンプデータの、どの項目で落ちるかお知らせいただければ対処できるかもしれません。
上記のような説明はどうでもよくてとにかくCygwinのperlで変換したい場合は相互参照を無効にして下さい。
ウィキペディアでは数式の表示にtexvcを使用していますがwikipedia-fuwではmimeTeXを使用しています。 その為、一部にmimeTeXではレンダリングできない数式があるようです。
ツールのライセンスはGPL v2に従って下さい。 作成された書籍のライセンスはGFDLに従います。
2009/12/04 2009/11/08にエンバグして、リダイレクトのインデックスが正しく作成されなくなっていたのを修正した。
2009/11/08 パーサーがメモリ不足で止まるのを回避できるようにした。
2009/09/07 カタカナを含む検索語を登録する際はひらがなに変換したものも登録できるようにした。
2009/09/07 インデックスに読みがなを登録できるようにした。 cf. http://pc11.2ch.net/test/read.cgi/mobile/1205944629/
2009/05/06 2GB超に関連して、Perlの要件を追記した。
2009/05/02 数式有効時にmathタグ内にnowikiタグ等があるとエラーになるのを回避した。
2009/04/21 公開。