本記事はWikipediaのダウンロード可能なデータについてまとめたものです。
Wikipediaではクロール行為は禁止されています(ここを見る限りでは)が、代わりに全記事の情報を圧縮したファイルが公開されています。
日本のWikipedia情報ダウンロードページ
http://download.wikimedia.org/jawiki/latest/
本記事は2009年の10月下旬に取得した情報を元に書いています。時間が経つと結果が変わる可能性があるのでご注意ください。
2009/10/25に確認した時点では、日本語Wikipediaのダウンロードページには55個のファイルが置いてありました(うち半分は更新を通知する為のRSS)。
ファイルの形式は「XML」、「MySQLのダンプ」、「テキスト」などがあります。
詳しいデータのインポート方法は、こちらのリンク集が参考になると思います。
各テーブルの公式説明はこちら
http://www.mediawiki.org/wiki/Manual:Database_layout/ja
ファイル名 | サイズ | 件数 | 概要 | |
---|---|---|---|---|
◎ | abstract.xml | 922.2M | 631,006 | 全ページの要約(タイトル、ディスクリプション、構成要素) |
◎ | all-titles-in-ns0 | 5.9M→21M | 1,006,242 | 全ページのタイトルを記述したテキストファイル |
△ | category.sql | 0.9M→3.6M | 87,787 | カテゴリ一覧 |
○ | categorylinks.sql | 46M→211M | 2,869,016 | カテゴリのリンク情報 |
△ | externallinks.sql | 31M→166M | 969,749 | 外部リンク情報 |
△ | image.sql | 9M→50M | 71,125 | 画像情報 |
△ | imagelinks.sql | 13M→62M | 1,980,954 | 画像のリンク先情報 |
△ | interwiki.sql | 8K→36K | 662 | ウィキ間リンク先情報 |
○ | langlinks.sql | 40M→134M | 3,871,273 | 各ページの「他の言語」情報 |
× | oldimage.sql | 1M→5M | 10,608 | 過去のリビジョンの画像情報 |
◎ | page.sql | 54M→140M | 852,372 | ページ情報(page_idやタイトル等) |
× | page_props.sql | 3K→13K | 852,372 | ページのプロパティー |
× | page_restrictions.sql | 50K→373K | 7226 | ページの保護情報 |
○ | pagelinks.sql | 347M→1.4G | 46,733,166 | ページ間のリンク情報 |
◎ | pages-articles.xml | 1G→4.1G | 1,227,154 | 全ページの最新の記事本文を含むXML |
× | pages-logging.xml | 46M→433M | 1,000,000 | Wikipediaのページに対する操作ログ |
◎ | pages-meta-current.xml | 1.2G→5.4G | 1,621,574 | pages-articles.xmlと同じ構成・内容のXML(議論ページなども含む) |
○ | pages-meta-history.xml | 2.8G→? | ? | 編集履歴まで含んだ超巨大ファイル。解凍後は200G超えるらしい。スペックの都合により未検証。 |
× | protected_titles.sql | 66K→477K | 3,278 | 編集制限されたページと、その制限事由の一覧 |
○ | redirect.sql | 4M→14M | 403,561 | リダイレクト先一覧 |
△ | site_stats.sql | 1.7K→1K | 1 | ページ数や閲覧総数などの情報 |
× | stub-articles.xml | 73M→475M | 1,227,154 | pages-articles.xmlの本文を除いた版 |
× | stub-meta-current.xml | 96M→632M | 1,621,574 | pages-meta-current.xmlの本文を除いた版 |
△ | stub-meta-history.xml | 1G→7.4G | 1,621,574 | pages-meta-history.xmlの本文を除いた版 |
○ | templatelinks.sql | 22M→112M | 4,242,203 | 使用しているテンプレートの情報 |
× | user_groups.sql | 2K→4.5K | 206 | ユーザグループ情報 |
◎便利そう ○使うかも △使うだろうか ×使わないので説明省略 (全て筆者主観)
※ファイル名は前部の「jawiki-latest-」を除く
※サイズは解凍前→解凍後のファイルサイズ
全ページの要約(タイトル、ディスクリプション、構成要素)
1GB近くある巨大XMLファイル。通常のエディタではおそらく開けない。
以下、ファイルの一部(コケ植物の部分)を切り出したもの。
<doc> <title>Wikipedia: コケ植物</title> <url>http://ja.wikipedia.org/wiki/%E3%82%B3%E3%82%B1%E6%A4%8D%E7%89%A9</url> <abstract>コケ植物(こけしょくぶつ、)は、原始的な陸上植物の一群である。コケ類(こけるい)や蘚苔類(せんたいるい)、蘚苔植物(せんたいしょくぶつ)などともいう。世界中でおよそ2万種ほどが記録されている。多くは緑色であるが、赤色や褐色の種もある。</abstract> <links> <sublink linktype="nav"> <anchor>形態的特徴</anchor> <link>http://ja.wikipedia.org/wiki/%E3%82%B3%E3%82%B1%E6%A4%8D%E7%89%A9#.E5.BD.A2.E6.85.8B.E7.9A.84.E7.89.B9.E5.BE.B4</link> </sublink> <sublink linktype="nav"> <anchor>生活環</anchor> <link>http://ja.wikipedia.org/wiki/%E3%82%B3%E3%82%B1%E6%A4%8D%E7%89%A9#.E7.94.9F.E6.B4.BB.E7.92.B0</link> </sublink> <以下のsublinkは略> </links> </doc>
上記ページを見ると分かる通り、abstractがDescription的な位置に表示され、sublinkはそれ以降の各ブロックを指しています。
abstractの最初に括弧で読みを振る習慣があるようなので、読み仮名付き辞書を作る素材として使えそうです。
全ページのタイトルを記述したテキストファイル
以下のような感じで、改行コード(CR)で区切ってWikipediaの全記事ページのタイトルが記述されています。
ランスモール ランスロ ランスロット ランスロット_(コードギアス) ランスロット_(小惑星) ランスロット_(曖昧さ回避) ランスロット・アルビオン
このファイルを使って辞書ファイルを生成している人もいるようです。
曖昧さを回避する為に括弧内の文字で区別しているものや、「-10」、「1999年」などのただの数字や年号、「2000年代のSF映画の一覧」のような一覧ファイルへのリンクも含まれているので、多少の取捨選択は必要になりそうですが。
カテゴリ一覧
Category:学問のようなカテゴリページを出力する為の情報です。
カラム名 | 型 | 内容 |
---|---|---|
cat_id | int | auto incrementのID。 |
cat_title | varchar(255) | カテゴリ名。「1975年の映画」とか、「削除依頼中の記事」とか。 |
cat_pages | int | カテゴリに属するページ(サブカテゴリ + カテゴリにあるページ)の数。例えば「セネガルの地形」は5つのページが登録されているとか。 |
cat_subcats | int | サブカテゴリの数。例えば「日本の峠」は9つのサブカテゴリを持っているとか。 |
cat_files | int | カテゴリ「カテゴリ名」にあるメディアの箇所に表示しているファイルの数。ほとんどのカテゴリは0(ファイルを持っていない)。コモンズと重複しているメディア辺りはたくさんファイルを保持している。 |
cat_hidden | int | Reserved for future use(将来使うかも)だそうです。現状は全レコード「0」が登録されています。 |
どのページがどのカテゴリに所属しているかは、jawiki-latest-categorylinksの方を参照。
カテゴリのリンク情報
各記事がリンクしているカテゴリ情報を保存しているテーブルです。
カラム名 | 型 | 内容 |
---|---|---|
cl_from | int | pageテーブルのpage_idに紐付く。 |
cl_to | varchar(255) | cl_fromが該当するカテゴリ名。 |
cl_sortkey | varchar(255) | ソート用の読み仮名。「64GBパック」であれば「ろくよんしいひいはつく」のように、濁点などのない平仮名で形成される。 |
cl_timestamp | timestamp |
以下は568868(67式30型ロケット弾発射機)に関するレコード。
cl_from | cl_to | cl_sortkey | cl_timestamp |
---|---|---|---|
568868 | ロケット砲 | 67しき30かたろけつとたんはつしやき | 2006-12-19 19:44:57 |
568868 | 武器・兵器関連のスタブ | 67しき30かたろけつとたんはつしやき | 2008-10-21 19:25:32 |
568868 | 自走砲 | 67しき30かたろけつとたんはつしやき | 2006-12-19 19:44:57 |
568868 | 陸上自衛隊 | 67しき30かたろけつとたんはつしやき | 2008-10-21 19:25:32 |
「67式30型ロケット弾発射機」は、4つのカテゴリに所属していることが分かります。
実際に当該ページを見ると「ロケット砲」、「自走砲」、「陸上自衛隊」の3つのカテゴリが表示されていました。スタブが含まれるカテゴリは「まだ成長していない項目」のことで、ページには表示されません。
pageテーブルとjoinすれば、どのページがどのカテゴリに所属しているかを一望することができます。また、cl_toで検索することで、同じカテゴリに所属する言葉を取得することもできます。
外部リンク情報
カラム名 | 型 | 内容 |
---|---|---|
el_from | int | pageテーブルのpage_idに紐付く。 |
el_to | blob | リンク先URL。 |
el_index | blob | user/passwordを除いて、ドメインを逆転させたURL。 |
例 : 国会_(日本)のレコード
el_from | el_to | el_index |
---|---|---|
3540 | http://www.sangiin.go.jp/ | http://jp.go.sangiin.www./ |
画像情報
画像名、画像のタイプ、ディスクリプションなどが保存されている。 どの画像がどのページに関連付けられているかは、imagelinksテーブルに格納されている。
img_name | img_size | img_width | img_height | img_metadata | img_bits | img_media_type |
---|---|---|---|---|---|---|
!!!三光坂0001.JPG | 453750 | 1280 | 960 | 長いので略 | 8 | BITMAP |
img_major_mime | img_minor_mime | img_description | img_user | img_user_text |
---|---|---|---|---|
image | jpeg | {{GFDL}}self made | 39111 | とんちゃん2 |
img_timestamp | img_sha1 |
---|---|
20060220143536 | q0bhu20kvdfvlbhob5frnoq0vj58k8y |
著作権などの問題が解決されないまま掲載されている画像が多いらしいので、取り扱いには注意が必要。
画像のリンク先情報
pageテーブルのpage_idに紐づくil_fromというカラムと、画像ファイル名が格納されるカラムの2つだけを持つ。
どのページにどういった画像が使用されているかが一望できる。
il_from | il_to |
---|---|
5 | Commons-logo.svg |
10 | Commons-logo.svg |
10 | Question_book-4.svg |
10 | Sekai-no-gengo.png |
10 | Wiktionary-logo-en.svg |
上記の例は、idが5のページ(アンパサンド)は、Commons-logo.svgという画像ファイルを使用していて、idが10のページ(言語)はCommons-logo.svg以下4つの画像を使用しているという意味になる。
ウィキ間リンク先情報
日本語のWikipediaから英語に移ろうとした場合に [[en:Language]] などと記述しますが、その「en」に関する情報を格納しているテーブルです。
下記は実際のenに関するレコード。遷移先のURLとかの情報が記述されています。
iw_prefix | iw_url | iw_local | iw_trans |
---|---|---|---|
en | http://en.wikipedia.org/wiki/$1 | true | false |
iw_localやiw_transは行える動作権限に影響するようです。詳しい話は以下に書いてあります。
http://www.mediawiki.org/wiki/Interwiki_table/ja
662個ほどレコードが設定されているので、見ると「へー、こういうサイトがあるのか」という気持ちになれます。
各ページの「他の言語」情報
Wikipediaの各ページに貼られている「他の言語」のリンクに関する情報。
例えばヤコブのページは英語、フィンランド語、フランス語、オランダ語、ポーランド語の5つが登録されている。
ll_from | ll_lang | ll_title |
---|---|---|
17170 | en | Jacob (disambiguation) |
17170 | fi | Jaakob |
17170 | fr | Jacques |
17170 | nl | Jacobus |
17170 | pl | Jakub |
見ての通り、その言葉に対する各言語のタイトルが取得できる。これを利用して「ヤコブを英語で書くと、Jacob」といった情報が取得できるような気もする。
必ずしも同一の言葉に対してリンクされているわけではないので、参考情報程度にしか使えないかもしれないけど。
ページ情報(page_idやタイトル等)
page_idとページのタイトルが入った大切なテーブル。他のテーブルと結合して使うことも多いです。
中身はこんな感じのものが入っています。
page_id | page_namespace | page_title | page_restrictions | page_counter | page_is_redirect |
---|---|---|---|---|---|
70 | 0 | 人工知能 | 680 | 0 |
page_is_new | page_random | page_touched | page_latest | page_len |
---|---|---|---|---|
0 | 0.924094703909098 | 20091012201236 | 28460873 | 18630 |
各カラムの意味合いはこんな感じです。
カラム名 | 型 | 内容 |
---|---|---|
page_id | int | ページID。categorylinksやexternallinksなどのリンクテーブルと紐づく、結合条件として良く使用されるカラム。 |
page_namespace | int | 名前空間。例えば一般的な記事ページは「0(NS_MAIN)」、「削除記録」のような管理系のページは「4(NS_PROJECT)」など。言葉を収集したい場合はとりあえず「0」だけ取っておけば間違いが少なくなる。詳細は「ここ」か「ここのReal namespaces」を参照。 |
page_title | varchar(255) | ページのタイトル。スペースはハイフンに置き換えられている。また「_(曖昧さ回避)」などの言葉が入っている場合もある。 |
page_restrictions | varchar(255) | 編集に関するパーミッション。page_restrictionsテーブルがあるバージョンでは無視されるフィールドらしい。 |
page_counter | bigint | ページの閲覧回数。この機能が無効になっている場合もあるかもしれないそうな。 |
page_is_redirect | int | 1の場合はリダイレクトページ。例えばストップ高というページはこのカラムが1で登録されており、値幅制限というページにリダイレクトされる。 |
page_is_new | int | 1回だけしか編集されていないページは「1」、重ねて編集が行われているページは「0」。 |
page_random | double | 0~1の間の小数が入っている。「案内」のところにある「おまかせ表示」の為に使用するカラムらしい。 |
page_touched | varchar(14) | ページが変更された際、キャッシュを無効にする目的で保持するタイムスタンプ。 |
page_latest | int | 最新の版のID。変更履歴のページで各版のリンク先に「oldid=xxxxx」のようなパラメータが付いてる。そのxxxxxの部分にこのカラムの値が入る。 |
page_len | int | 現在のページの長さ |
辞書作成に利用する場合は、page_namespaceが0のタイトルを収集すると良さそうです。
page_is_redirectが1のページと遷移先を結びつけることで、言葉の言い換えに関する情報が取れそうな気もします。
ページのプロパティー
現状はHIDDENCAT(記事最下部のカテゴリの欄にカテゴリページへのリンクが現れなくなる)を指定する為に使用されている。
ページの保護情報
pr_user | pr_type | pr_page | pr_expiry | pr_cascade | pr_id | pr_level |
---|---|---|---|---|---|---|
edit | 0 | infinity | 0 | 20679 | autoconfirmed | |
move | 0 | infinity | 0 | 20680 | autoconfirmed | |
edit | 1 | infinity | 0 | 14219 | sysop | |
move | 1 | infinity | 0 | 14220 | sysop |
こんな感じで細かく制限しています。
ページ間のリンク情報
4000万件以上のレコードを保持する大きなテーブル。我が家の環境ではCOUNTするだけで1分近くかかる。
例えば「指輪物語」(page_id=4999)で検索すると、以下のような結果が出ます。(206件ほどヒットしてしまったので、下の表はそのうちの一部のみ記載)
pl_from | pl_namespace | pl_title |
---|---|---|
4999 | 0 | エピック・ファンタジー |
4999 | 0 | エルフ |
4999 | 0 | エルフ_(トールキン) |
4999 | 0 | エンジェルズ・フォール・ファースト |
4999 | 0 | エント |
全ページの記事本文を含むXML
4GBを超える巨大ファイル。ロースペックのマシンでは取り扱うのは難しいかもしれません。
XMLの中身はこんな感じで、ページのIDやタイトル、更新者やコメント、そしてテキスト解析をする際に非常に便利なWikipediaの本文(Wiki記法で書かれている)が書いてあります。
<page> <title>生物学</title> <id>57</id> <revision> <id>28350434</id> <timestamp>2009-10-06T11:34:37Z</timestamp> <contributor> <username>CCoil</username> <id>229918</id> </contributor> <comment>[[Special:Contributions/220.148.182.50|220.148.182.50]] ([[User talk:220.148.182.50|会話]]) による ID:28347985 の版を[[H:RV|取り消し]] 英語表記を消すのはおやめください</comment> <text xml:space="preserve">'''生物学'''(せいぶつがく、{{Lang-en-short|'''Biology'''}})は[[生物]]や[[生命|生命現象]]を研究する[[自然科学]]の一分野。広義には[[医学]]や[[農学]]など[[応用科学]]・[[総合科学]]も含み、狭義には[[基礎科学]]([[理学]])の部分を指す。一般的には後者の意味で用いられることが多い。類義語として'''[[生命科学]]'''や'''生物科学'''がある(後述の[[#「生物学」と「生命科学」]]参照)。 以下略 </text> </revision> </page>
上記内容は「Wikipedia: 生物学」の情報です。こんな感じで全ページの情報が入っています。
XMLで配布されている為、扱いが若干面倒です。こんな大容量をXPATHとかで扱うのも自殺行為ですし、ダンプファイルに変換するツールも用意されていますが、実行してから結果が返ってくるまで時間がかかったりします。
というわけで我が家では自前でパーサを書いて、page_id, page_title, rev_id、textだけをカラムに持つ独自テーブルに入れて使っています。
ちなみに変換するツールを使用した場合はpage, revision, textの3つのテーブルのデータが生成されます。使用方法は下記URLが詳しいです。
wikipediaのダウンロード&データベースにインポート
http://d.hatena.ne.jp/dkfj/20070902/1188730207
Wikipediaのページに対する操作ログ
何時にファイルをアップデートしたとか、記述を削除したといったアクション情報が載っています。
<logitem> <id>5</id> <timestamp>2004-12-23T05:33:34Z</timestamp> <contributor> <username>Nnh</username> <id>474</id> </contributor> <comment>著作権侵害。削除依頼12月15日。</comment> <type>delete</type> <action>delete</action> <logtitle>花園大学</logtitle> <params xml:space="preserve" /> </logitem> <logitem> <id>6</id> <timestamp>2004-12-23T06:20:42Z</timestamp> <contributor> <username>Kozo</username> <id>15492</id> </contributor> <comment>ウィリアム3世 (イングランド王) (英語版より)</comment> <type>upload</type> <action>upload</action> <logtitle>ファイル:William III of England.jpg</logtitle> <params xml:space="preserve" /> </logitem>
アクションの内容は、create, create2, autocreate, delete, upload, block, unblock, reblock, restore, protect, move, move_redir, rights, renameuser, newusers, modify, overwrite, patrol, move_prot, revision、などがある。
pages-articles.xmlと同じ構成・内容のXML(議論ページなども含む)
<page> <title>ヨーロッパ</title> <id>32</id> <revision> <id>28222233</id> <timestamp>2009-09-28T23:05:55Z</timestamp> <contributor> <username>SieBot</username> <id>126695</id> </contributor> <minor /> <comment>ロボットによる 変更: [[nv:Beesh Bichシahnii Bikeyah]]</comment> <text xml:space="preserve">{{otheruses|ヨーロッパ}} [[ファイル:Europe (orthographic projection).svg|thumb|250px|ヨーロッパの位置]] [[ファイル:Europe satellite orthographic.jpg|thumb|250px|ヨーロッパの衛星写真]] [[Image:Europe_subregion_map_UN_geoschme.svg|right|thumb|250px|国際連合によるヨーロッパの地域の分類[http://unstats.un.org/unsd/methods/m49/m49regin.htm] {{legend|#4080FF|[[北ヨーロッパ]]}} {{legend|#00FFFF|[[西ヨーロッパ]]}} {{legend|#FF8080|[[東ヨーロッパ]]}} {{legend|#00FF00|[[南ヨーロッパ]]}}]] 以下略 </text> </revision> </page>
上記はWikipedia: ヨーロッパの部分を切り出したものです。
見ての通り、内容自体はpages-articles.xmlと同じです。但し、議論ページなどを含む分、レコード数は若干多くなっています。
編集制限されたページと、その制限事由の一覧
編集制限をされたページの、時間、期限、制限事由などが登録されている。
pt_namespace | pt_title | pt_user | pt_reason |
---|---|---|---|
0 | (株) | 54812 | 削除された項目の改善なき再作成が続くため |
pt_timestamp | pt_expiry | pt_create_perm |
---|---|---|
20080913045836 | infinity | sysop |
削除されたタイトルとかを取ることもできなくはないけど、明らかな悪戯で作られた記事のタイトルも取れてしまうので品質の面で微妙です。
あと、このテーブルを見ていると、管理している人もタイヘンだなぁと無駄に同情的な気持ちになったりするかもしれません。
リダイレクト先一覧
例えば「.NET_Framework」というページは、以下の8つのワードがリダイレクト先として登録されています。
rd_from | rd_namespace | rd_title |
---|---|---|
1563 | 0 | .NET_Framework |
577039 | 0 | .NET_Framework |
639906 | 0 | .NET_Framework |
639907 | 0 | .NET_Framework |
639908 | 0 | .NET_Framework |
639909 | 0 | .NET_Framework |
646455 | 0 | .NET_Framework |
646456 | 0 | .NET_Framework |
言い換えや表記の違い、略称、関連語などが登録されているので、頑張ればその辺りの情報を取れるかもしれません。
但し、頑張って様々な言い換えをリダイレクト登録しているページもあれば、あまり登録されていないページもあるので(レコード数も40万くらいですし)、参考データの1つくらいの扱いになると思います。
ページ数や閲覧総数などの情報
詳細は調べてませんが、中身は1レコードのみで、こんな情報が入ってました。
ss_row_id | ss_total_views | ss_total_edits | ss_good_articles |
---|---|---|---|
1 | 2340982 | 29093839 | 624796 |
ss_total_pages | ss_users | ss_admins | ss_images | ss_active_users |
---|---|---|---|---|
1615010 | 355590 | 30 | 70638 | 11472 |
pages-articles.xmlの本文を除いた版
pages-articles.xmlの本文(text)の部分が、textのIDだけを書く様になっているファイルです。
<page> <title>哲学</title> <id>110</id> <revision> <id>28432395</id> <timestamp>2009-10-11T11:11:19Z</timestamp> <contributor> <ip>202.95.44.163</ip> </contributor> <comment>/* 外部リンク */ [[Wikipedia:外部リンクの選び方]]参照</comment> <text id="28286198" /> </revision> </page>
本文を含まない分、latest-abstract.xmlの半分程度とコンパクトなサイズになっています。
pages-meta-current.xmlの本文を除いた版
stub-articles.xmlと同じ形式です。pages-meta-current.xmlと同じく、議論ページなどを含んでいます。
pages-meta-history.xmlの本文を除いた版
stub-articles.xmlと同じ形式で、revisionの情報がcurrentだけでなく全て入っています。
本文なしなのに7.4Gとかいうかなり大きめなサイズ。
更新状況とかを調べたい場合はこれを使うのかも。話題になっているとか荒れているページを探知する手がかりにはなりそうです。
使用しているテンプレートの情報
下記は174722(クリーブランド・キャバリアーズ)のテンプレート情報の一部です。NBAやPlayer、Country_flagのテンプレートが使用されていることが分かります。
tl_from | tl_namespace | tl_title |
---|---|---|
174722 | BasketColor | 10 |
174722 | BasketColorCell | 10 |
174722 | BasketColorCell2 | 10 |
174722 | Country_alias_BRA | 10 |
174722 | Country_alias_LTU | 10 |
174722 | Country_alias_USA | 10 |
174722 | Country_flag_alias_BRA | 10 |
174722 | Country_flag_alias_LTU | 10 |
174722 | Country_flag_alias_USA | 10 |
174722 | NBA | 10 |
174722 | NBA_SBS | 10 |
174722 | NBAteam | 10 |
174722 | NBAロースター_終了 | 10 |
174722 | NBAロースター_選手 | 10 |
174722 | NBAロースター_開始 | 10 |
174722 | NBA年度別成績 | 10 |
174722 | Player | 10 |
174722 | Redirect | 10 |
野球用のテンプレートとかバスケ用のテンプレートとかがあるので、意外とカテゴリとしての意味合いも持っている情報のような気がしました。
ユーザグループ情報
ug_group(botとかsysopとか)と、ug_user(IDっぽい数字)が入ったテーブル。