ウィキペディア日本語版の新デザイン選定投票の投票資格を持つ利用者の数を調べたところ、 2,774 人と出ました。該当する利用者のリストを示します。
2007 年 3 月 2 日、ウィキペディア日本語版の新デザイン選定投票の予選投票が 3 月 9 日 0 時 (日本時刻) までの日程で始まりました。投票資格は次の条件をすべて満たす登録利用者となっています。時刻はすべて日本時刻に変換して書いています。
いや、わからなくもないのですが、ややこしい! ちなみに僕はどれにも該当しないので投票資格はありません (そのこと自体に不満はありません)。
いったいこの定義で投票資格を持つ利用者は何人いるのか気になりました。誰がいつどんな編集をしたかというデータは download.wikimedia.org から入手することができます。編集回数はダンプファイル jawiki-20070224-stub-meta-history.xml.gz から集計できます。 Gzip で圧縮されて 349.1 メガバイト、展開すると 2.6 ギガバイトという大きなファイルですが、負けてはいられません。
ということで、上の条件を満たす登録利用者が何人いるのか、調べてみました。結果、 2,774 人 と出ました。僕の資格の解釈やデータの使い方やスクリプトが間違っていなければの話ですが……。
せっかく求めたので、 2,774 人の利用者のリストを公開します。
編集回数はダンプファイル jawiki-20070224-stub-meta-history.xml.gz から集計しました。このファイルに含まれない編集 (非常に古い編集や「特定の版の復帰機能」で取り消されて抹消された編集) は回数に数えるのが正しいのか数えないのが正しいのか知りませんが、このページの集計では数えていません。
ただし、上の条件を満たしても投票できるとは限りません。少なくとも投票期間中に投稿ブロックされている利用者は投票資格があっても事実上投票できません。これらの利用者はリストから除外していません。
また、ボットのアカウントに投票資格があるかどうか知りませんが、上述の条件を満たしている限り表には含まれています。
このリストはいかなる意味でも公式ではありません。正確性についてはいつも通り何ら保証しません。
「編集回数」は 2007 年 1 月 11 日 18:40 までの編集回数、「(最近)」は 2006 年 12 月 11 日 18:40 〜 2007 年 1 月 11 日 18:40 の間の編集回数です。
「利用者名」はニックネーム (署名に使われる名前) とは異なる場合があります。また、利用者名は、ダンプファイルに含まれる最後の編集の時点でのものであり、最近の利用者名の変更には対応できていない可能性があります。
利用者名は利用者ページに、編集回数は投稿履歴にリンクを張ってあります。ただし、利用者ページは存在しないこともあります。
利用者名でソートしてありますが、ソート順は Unicode collation なのでたぶん直感的ではありません。漢字は部首順にソートされているのですが、わかりにくいです。……順序は少し間違っているみたいです。
「予選投票」は投票した候補の番号です (2007 年 3 月 9 日に追加)。手作業で集計したので確実にどこかに間違いがあると思って見てください。
上の条件 1〜3 を満たす利用者は次の 2,774 人です。
例によって何の保証もしませんが、このリストを作るのに使った Perl スクリプトを置いておきます。著作権は主張しないのでご自由にお使いください。ただし、日本語版のデータは大きいので、実行すると読み込みに長い時間がかかるので覚悟のほどを。実際のデータで実行する前に、他言語のダンプファイルなど小さい入力ファイルで試すことをお勧めします。出力形式はプログラムを見てください。出力は特定の順序にはソートされていません。
Windows 上の ActivePerl 5.8.8.820 では、入力を標準入力から読み込むとうまく動かないようです。
read error at C:/Perl/lib/XML/Parser/Expat.pm line 469.
と言われてしまいます。 Cygwin の Perl 5.8.7 だと大丈夫でした。 XML::Parser モジュールのバージョンはどちらも 2.34 です。
スクリプトを見ていただけばわかる通り、このスクリプトでは XML::Parser モジュールを使っています。しかし、このモジュールは今では直接使うべきではないようです (参考: Perl-XML Frequently Asked Questions の 3.1 節 XML::Parser)。このスクリプトのように XML ファイルを読み込みながら (完全に読み込んでからではなく) 処理していく場合、現代的な方法は XML::SAX モジュールと XML::SAX::ExpatXS モジュールを使うことのようです。これらを使わずに XML::Parser モジュールを使ったのは単に僕の無知によるもので、それ以上に理由はありません。なので、このスクリプトをそのまま参考にして他のスクリプトを書くのはお勧めしません。
2007 年 3 月 2 日公開、 2007 年 3 月 9 日最終更新。著者: fcp / このサイトについて