wikipedia-fuw

ウィキペディア日本語版のダンプデータを、FreeUWINGを利用してJIS X 4081 UTF-8 extensionに準拠した書籍を作成するツールです。

wikipedia-fuw

ウィキペディア日本語版のダンプデータを、FreeUWINGを利用してJIS X 4081 UTF-8 extensionに準拠した書籍を作成するツールです。 オフラインでウィキペディアを参照したい場合に使えます。 ただし、画像とか表には全く対応していないので、そういうものも参照したい場合はオンラインになるなりローカルにウィキペディアのコピーを構築した方がよいと思います。

for your download

wikipedia-fuw-20091202-src.tar.gz

インストール

このツール自体は任意のディレクトリに展開するだけです。 ただし、FreeUWINGの導入以外に以下の要件を満たす必要があります。

Perlが5.8以降であること。

Perlが64ビットintとlarge fileをサポートしていること。

これは2GBを超えるサイズのHONMONファイルを作成する為の要件ですが、現在ダウンロードできる最新のダンプデータからそのまま書籍を作成するとHONMONファイルが2GBを超えるので必要になります。

perl -V等で、Compile-time optionsにUSE_64_BIT_INTUSE_LARGE_FILESが存在している事を確認してください。

それなりのHDD容量
それなりの時間

未検証です。 wikipedia-fpwより必要なHDD容量は増えますが、変換にかかる時間は短縮されるはずです。

変換準備

ダンプデータの準備

ダウンロードサイトからダンプデータをダウンロードします。 ダウンロードするファイルはjawiki-latest-pages-articles.xml.bz2、あるいはjawiki-yyyymmdd-pages-articles.xml.bz2のような名前のファイルです。

ダンプデータは伸長した状態で、ツールのあるディレクトリにwikipedia.xmlという名前で置いてください。

wikipedia-fuw.confの修正

相互参照を使用しない場合は

  '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

として辞書を作成してください。fuwlinkOut of memoryで止まる場合は

$fuwmae FUWLINKMOD=BDB

としてください。

パッケージを作る場合は

$fuwmake package

等のようにします。 packageの部分をpackage-tar-gzpackage-tar-bz2に変えれば、それぞれに応じたファイル形式でパッケージが作られます。

制限・不具合

画像・音声・表には未対応

仕様です。

予想外の書式に弱い(かも)

試行錯誤である程度は対応したつもりですが、予期せぬ書式に出くわしたときはエラーで止まるかもしれません。 というか、正しく書かれたものでも止まるかもしれません。

Cygwinのperlでfuwwikipediaを実行するとperlが落ちる(ことがある)

テキストの内容によっては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 公開。

written by Kazuhiro Ito (mailto: mailto)

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル