3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Code for 選挙 wikidata メモ

Last updated at Posted at 2017-10-16

Code for 選挙 の成果物を wikidata に格納する際に、出てきた問題点のメモ。

データソース

データ整備する際に気になるのは、やはり権利まわりということで、整理しておきたい。

  • 官報
    • 「選挙やるよ」「中央選挙管理委員立ち上げるよ」とだけ書かれている。
    • 官報の内容自体は CC0 として転記できそう。「一般的に、官報には著作権が存在しないと解釈されています。しかし、「インターネット版官報」は、官報を基に国立印刷局が編集・作成したものであり、その範囲内において著作権が発生する余地があると考えられます。」(出典)
    • ここから先は総務省の中央選挙管理会と、そこからディスパッチされる都道府県の選挙管理委員会になる。
  • 選挙公報
    • 都道府県の選挙管理委員が発行している
    • 残念ながらほとんど PDF (=ほとんど紙)
    • 事実情報それ自体には著作権は発生しないので、立候補情報などは転記して問題ないだろう。出典として利用可能。各種報道のソースも、これになっている。
  • 政党の届出
    • 総務省で登録されている
    • 比例区には、中央選挙管理委員会(総務省)に政党で届出を行う。
  • 会派の届出
    • 会議体の中でのもの。政党と似ているが役割が異なり、届け先も異なる。登録されるメンバーは会議参加者のみ。
    • 衆議院
    • 参議院
  • 衆議院小選挙区の区域データ
    • 大変な労力をかけてオープンデータとして作成された shp ファイルが公開されている
    • geopandas などで処理可能

データベース

Wikidata を使いたいという意見は、メンバーの中では比較的広くあった。一方でこれまで標準化が進んできていた Popolo 仕様も存在する。EveryPolitician では popolo 仕様のデータベースをメンテナンスする一方で、wikidata との連携にも力を入れ始めている。「No one size fits all」とは popolo 仕様でも言われているように、完全な標準化はありえない。手元の全データを綺麗に整備するには専用のデータモデルを作るしかない。Wikidata や Popolo 仕様のファイルに格納する際には、どの部分を諦めるかが肝心。

結局、データは google docs のスプレッドシートで収集した後、各種データベースに入るところまで入れる、という流れで動いた。https://kouhosha.info のウェブサイトはスプレッドシートからデータベースに入れている。

以下は主にデータベースは wikidata を扱う。

Term と Session

衆議院解散で議員は一度 0 になる。衆議院議員総選挙のタイミングが大まかに議会の構成員を把握するのに都合がよい。ところでこれはイギリスでは Term と呼ばれる区切りになるらしい。一方で衆議院の会期は常会、臨時会で通番で数えている。これは英語では Sessionと呼ぶらしい。

日本語では「47 回会期」と呼ぶと、通常は昭和39年の session を指してしまうだろう。いっぽうで Term のようなものがあったほうが、機械処理しやすい(=計算量が少なくて済む)という面もある。

誤解のない名前を付けつつ、概念としてはプロパティを設定したい、ということから、日本語での名前は付けないけれども、プロパティは存在する、というのが良いんじゃないだろうか。

次のクエリで一覧が抜き出せる。

SELECT * WHERE {
   ?s wdt:P31 wd:Q15238777 ;
      p:P31/pq:P642 wd:Q659587 ;
      rdfs:label ?name .
}

日本での用語は混乱しているようで、衆議院で会期を使っているサイトもある。参議院は半数ずつ選出されるので会期という表現は、あまり適切ではないが、参議院で職歴に「N 会期」という場合は選挙での選出回数をあらわしていることもある。データモデルと法律が合わないことはあるのは仕方がないが、注意してみる必要がある。

立候補情報

立候補情報を中心にして、他の情報を削ぎ落した形だと次のようなクエリになるだろう。

SELECT * WHERE {
  ?person p:P3602 ?st .
  ?st ps:P3602 wd:Q20983100 .
  OPTIONAL { ?st pq:P768 ?area . }
  OPTIONAL { ?st pq:P1268 ?party . }
}

候補者自体の情報はこうやる。

SELECT * WHERE {
  ?person wdt:P3602 wd:Q20983100 .
  OPTIONAL { ?person wdt:P21 ?gender . }
  OPTIONAL { ?person wdt:P569 ?born . }
}

P31 は意外と重要

同姓同名のエントリかと思いきや、Q4167410「ウィキメディアの曖昧さ回避ページ」だったりするので、P31 はチェックしたほうがいい。

その他 Q4115189「ウィキデータ・サンドボックス」や Q17362920「ウィキメディアの重複ページ」といったものが登録されている場合がある。

比例区の投票数

制度上は政党に投票する。しかし wikidata にズバリうまく入れる方法が見つかっていない。

  • 得票数を数えているステートメントは基本的に P3602「立候補選挙」の様子
  • P3602「立候補選挙」の主語は基本的に「ヒト」の様子

選挙であるものから直接調べようと試みてみる:

Q16061881「Dutch general election, 2017」とQ17012412「第20回イスラエル議会総選挙」は政党選挙として該当するらしい。一般的な格納法には見えない。

しかし説明を見れば、政党やグループでもいいらしい。

参議院議員一覧

現状 dbpedia でクエリしてみても、あまり芳しくない。http://ja.dbpedia.org/sparql

PREFIX dbp: <http://ja.dbpedia.org/resource/>
SELECT count(?name) WHERE {
 ?p <http://www.w3.org/2000/01/rdf-schema#label> ?name .
 ?p <http://dbpedia.org/ontology/occupation> dbp:参議院議員 .
}

wikidata でのクエリ が期待する現在値になるように頑張って整備しよう…。

ツール

基本的にはみんなが手で整備しているデータベースなので、迂闊に機械で書き換えると阿鼻叫喚の嵐になる。とはいえ手作業の限界をゆっくり超えてきてしまうこともある。そんなときは Quick Statements などのツールの支援を受けるとよい。

そういったツール類は Wikidata に 一覧ページ があるので、それを参照すると適切なものが見つかるかもしれない。

ツール類は一度テストしてから使ったほうがよい。テストするときはサンドボックスアイテム Q4115189 や、P31「分類」が Q4115189 になっているものを使うとよいだろう。

その他リンク集

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?