codeforjapan / codeforelection

衆院選2017候補者データベース作成プロジェクト This repo will be archived 🗄️ in the future
MIT License
32 stars 6 forks source link

wikidataへのデータ登録再開に向けた方針検討 #61

Closed tetsuyas1 closed 6 years ago

tetsuyas1 commented 7 years ago

=====

しばらく止めていたwikidataへのデータ登録を再開するために、GrayDBにあるものをできるだけ活かしつつ、二重登録や不整合を極力抑えるために作戦を立てたいと思います。案を考えてみましたのでご意見お願いします。

1 GrayDBから転記するもの

1.1 wikidataにほぼ未登録で、問題が少なさそうなもの →そのままQS2などで一括登録 ・選挙区 ・公認政党 ・47th House of Representativesなど(命名をどうするか検討中)

1.2 wikidataにある程度登録済みでかつGrayDBの文字列をそのまま登録するもの →GrayDBの登録内容のうち、wikidataに入っていない差分を取ってから未登録分を一括登録 ・選挙用表記名 ・かな ・誕生日 ・写真 ・twitter ・facebook ・LINE ・youtube channel ・instagram ・公式サイト ・メールアドレス ・公式ブログ ・詳細情報URL

1.3 wikidataにある程度登録済みでかつGrayDBの文字列をQ番号に置き換えて登録するもの(置き換え数の少ないもの) →GrayDBの登録内容のうち、wikidataに入っていない差分を取ってから未登録分を一括登録 ・性別

1.4 wikidataにある程度登録済みでかつGrayDBの文字列をQ番号に置き換えて登録するもの(置き換え数の多いもの) →手作業で登録 ・出生地 ・立候補歴 ・当選歴 ・学歴 ・職歴 ・公職 ・父親 ・配偶者

2 GrayDB以外のネット上から収集して手作業で登録 →広く作業支援を呼びかける

3 データのupdate ・botを仕込む?

4 当選後に向けた準備 ・何をしましょうかね?

tetsuyas1 commented 7 years ago

そもそも、wikidataの登録方法について何処かのドキュメントを見たら良いとか、基本的な整理があるとありがたいです。

higa4 commented 7 years ago

了解です。準備します。

hkwi commented 7 years ago

59 で登録スキーマを扱ってます。

hkwi commented 7 years ago

差分収集の bot は作るつもりでいました。ただおそらく長時間走る jobになるので、travis や circle ci などのサービスだと実行時間超えそうな予感。試しに作ってみて測ってみるので、相談させていただきたく。

takahashim commented 7 years ago

例えば性別や誕生日について、登録済みの候補者についてもquickstatementsで更新をかけると、二重登録されたりするんでしょうか? 同じ場合にはそのまま、異なる場合には上書きされるのであれば、そのまま走らせれば良いのでしょうか。更新前には一応差分を確認した方がよいとは思いますが。

higa4 commented 7 years ago

上書きではなく、追加になると思います。

higa4 commented 7 years ago

@takahashim @hkwi これ、出典を付けることを考慮すれば、特に問題なさそうなので進めましょうか。作業はお願いしてもよいのでしょうか。分担が必要であれば何か分担表のようなものを作ります?

higa4 commented 7 years ago

分担表を作ってみました。当方でできそうなところから始めてみます。 https://docs.google.com/spreadsheets/d/1jho09We-3bS4jzF3uvQnPdnjMkQJs5_ljwZyuzkKGPU/edit#gid=1376986153

hkwi commented 7 years ago

P4100 の代わりに P1268 使いませんか?

takahashim commented 7 years ago

一括登録系は私の方で拾えると思います

takahashim commented 7 years ago

@higa4 @hkwi 確かにWikidataの「立候補選挙」に修飾子を追加入力しようとすると「代表する団体(P1268)」が候補として表示されるようなので、P1268で良さそうです。

higa4 commented 7 years ago

@hkwi @takahashim 了解です。公認政党にはP1268を当てましょう。

higa4 commented 7 years ago

@takahashim すみませんが一括登録系、お願いします。性別については私の方でやりかけなのでそこだけ担当します。batchのqueが詰まってるかんじで8時間たっても動かずstopもできない。。

hkwi commented 7 years ago

とりあえず今回のコアの情報である出馬情報についてはこんな感じで作ってみました。場所は暫定。日次チェック。

takahashim commented 7 years ago

WikidataのフェイスブックID(P2013)はfacebook pageじゃなくてIDを登録するためのもののようなので、現状のZ列のデータは登録できない(登録して良いものとそうでないものが混ざっているので分けないとまずそう)ようです…。

hkwi commented 7 years ago

Q9047844 = wikipedia 田中健 (江戸川区議会議員) のページに同姓同名の 田中健_(東京都議会議員) と、参照されていますが、衆院選出馬されたのはこの大田区議員だった田中さんのようです。また参照先のページが特筆性無しで削除されています。Wikidata には割当たっていないようなので、新規作成が必要そうです。

hkwi commented 7 years ago

Q11529448 松原 さとし さんも同姓同名の別人のようです。

hkwi commented 7 years ago

Q9047844 さん GrayDB と wikidata から、いったん情報外しました。

hkwi commented 7 years ago

Q11529448 も同様にいったん両方から外しました。

higa4 commented 7 years ago

Q9047844 = wikipedia 田中健 (江戸川区議会議員) のページに同姓同名の 田中健_(東京都議会議員) と、参照されていますが

ご指摘ありがとうございます。Q42290522でwikidataに新規登録しました。GrayDB511行目にもQ番号を入れました。

higa4 commented 7 years ago

Q11529448 松原 さとし さんも同姓同名の別人のようです。

こちらもQ42290611でwikidataに新規登録しました。GrayDB510行目にもQ番号を入れました。

hkwi commented 7 years ago

qname 新規割り当てありがとうございます。差分出力開発中で、出力増やしました。 プロパティ値差分 https://github.com/hkwi/shuin48pre/blob/master/docs/wikidata_properties.csv 候補者差分 https://github.com/hkwi/shuin48pre/blob/master/docs/wikidata_P3602_Q20983100.csv

hkwi commented 7 years ago

facebookはAPIで一度検査してから入れないとダメそうですね。ところでtwitterのscreen_nameも大文字小文字を元のものに戻してから差分を取るようにしました(twitter API 使用)。 https://github.com/hkwi/shuin48pre/blob/master/docs/twitter_sn_map.csv

hkwi commented 7 years ago

どうやら facebook は普通にクロールして meta[@property="al:ios:url"] 辺りを見れば判別できそうですね。後で組んで回します。

hkwi commented 7 years ago

facebook のメタデータ集め始めました。 https://github.com/hkwi/shuin48pre/blob/master/docs/fb.csv

P2013 は type=profile な ident を登録すればいいのかな。

takahashim commented 7 years ago

Twitterのid、https://github.com/hkwi/shuin48pre/blob/master/docs/twitter_sn_map.csv を元に更新をかけました。

hkwi commented 6 years ago

blog URL 1581 は、もう少しデータをクレンジングしてから入れたい所存。path 部分が冗長すぎるものが多々。

hkwi commented 6 years ago

公式ブログと公式サイト、URL 気になるところの手動調整終わりましたー

higa4 commented 6 years ago

@takahashim さん、当選者の情報を入れたいのですがお願いしても大丈夫でしょうか。必要でしたら分担しますので言ってください。 GrayDBの当選列に1が立っている人について、政治家・立候補者シート https://docs.google.com/spreadsheets/d/1jho09We-3bS4jzF3uvQnPdnjMkQJs5_ljwZyuzkKGPU/edit#gid=0 の23-29行目あたりの内容をwikidataに登録する作業です。24行目「開始日」は10/22となるんですかね。とりあえずは無くても良いのかな。25行目「終了日」は不要ですね。

hkwi commented 6 years ago

任期開始日はたぶん決まっているので、調べないとですね。例:参議院の解説 とりあえずは Term のほうに 10/22 を設定しておけばよいかと思います。

takahashim commented 6 years ago

@higa4 了解です、拾います

hkwi commented 6 years ago

小選挙区の得票数を graydb の右端のほうに入れました。朝日と毎日で突合せ済みです。

hkwi commented 6 years ago

投票数ですが、重複立候補はこんな風にしたらどうかなというのを https://www.wikidata.org/wiki/Q41770570 やってみました。どうでしょう?

higa4 commented 6 years ago

よいと思います。

takahashim commented 6 years ago

「公職」について、QuickStatements2をつかって単純に追加しようとすると、すでに「衆議院議員」が登録されている場合に既存の情報と混ざってしまいますね…。

https://www.wikidata.org/wiki/Q7677156 の更新をかけると以下のようになってしまいました(現在はrevert済み)

invalidmerge

higa4 commented 6 years ago

「公職-衆議院議員」ステートメントをもうひとつ作りたいのですが上書きされるんですね。時間が取れたら調べてみます。

hkwi commented 6 years ago

Q4115189 「サンドボックス」というのがあって、P31Q4115189 になっているサンドボックス達がいるので、これらを使うとテストしやすそう。

higa4 commented 6 years ago

@takahashim 思い出しました。これ、mySocietyから連絡が来ていたヤツで現行のQS2の制約のようです。対策は下記のスクリプトを動かすか、同一ステートメントが未登録の政治家を選んでそこだけバッチ更新する(残りは手動)かというところでしょうか。

--以下引用-- For creating new items, or adding basic statements to existing items, everything should work smoothly, but you should beware that if you use it for adding P39 (position held) records to existing items, it doesn't work if someone has held the same position more than once. Unfortunately that's very common with political data, where it's very likely that there will be a large number of people elected as a Q17506823 (member of the House of Representatives of Japan) in the 48th Term, who already have a P39: Q17506823 record for the 47th Term.

To help with that, we've developed a bot called PositionStatements that takes input in exactly the same format as QuickStatements, but adds an entirely new P39 record each time, rather than combining them all into one as QS does. There's no web interface to that yet, but you can either try to get the bot running yourselves locally (it's a Python script, linked from https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot/PositionStatements_Bot), or you can send us a TSV file of commands, and we can run it on behalf of a Wikidata account of your choosing.

takahashim commented 6 years ago

はーー、なるほど、各claimsに関してはIDとしてqidの他にuuidがあって、同じpropertyでも区別できるんですね…。 https://www.wikidata.org/wiki/Special:EntityData/Q41770570.json でも確認できました。 データ構造的にどうやって区別するんだこれ、と思ってたのですが、ちょっと理解できました。

takahashim commented 6 years ago

@higa4 公職について、選出選挙名・議会開催期・選挙区・代表する団体と出典URLについて一通り登録しておきました。

higa4 commented 6 years ago

お疲れ様です!これで当選者の分析ができますね。どういうsparqlをかけば良いのかまだわかってないけど :)

takahashim commented 6 years ago

一覧だと http://tinyurl.com/y8am7lcv ですね。 政党別だと http://tinyurl.com/yb39yhcq になるんですが、これだとwikipediaの https://ja.wikipedia.org/wiki/%E7%AC%AC48%E5%9B%9E%E8%A1%86%E8%AD%B0%E9%99%A2%E8%AD%B0%E5%93%A1%E7%B7%8F%E9%81%B8%E6%8C%99 の数とは追加公認の関係でずれがありますね…。

higa4 commented 6 years ago

おお、早速ありがとうございます。 ある時点のデータで作った図表はスナップショットとして取っておく意義はありますが、いずれ陳腐化してしまいます。wikidataからクエリで抜くメリットはデータさえ適切に入れておけば常に最新状態が見られることだと思います。がんばれば時系列の推移も。

higa4 commented 6 years ago

代表する団体、会派、所属政党の3プロパティの使い分けを改めて整理しておきたいのですが、以下のような感じでよいでしょうか。

  1. 代表する団体:選挙時の公認政党。
  2. 会派:内閣成立後の院内会派。政党単位で、もしくは無所属議員の個人単位で決まる。追加公認を含む。 <現在の会派> https://ja.wikipedia.org/wiki/%E9%99%A2%E5%86%85%E4%BC%9A%E6%B4%BE#.E7.8F.BE.E5.9C.A8.E3.81.AE.E9.99.A2.E5.86.85.E4.BC.9A.E6.B4.BE
  3. 所属政党:本来の所属政党または「無所属」。各政党の名簿等に記載されているもの。 <例:自民党> https://www.jimin.jp/member/member_list/legislator/

登録例(前原誠司) https://www.wikidata.org/wiki/Q132280

higa4 commented 6 years ago

懸案の「議会開催期」について ;) 内容的には下記2つの内容は矛盾はしないと思われるため、マージして「第4次安倍内閣」というラベルにしてはどうかと思いますがいかがでしょうか。 https://www.wikidata.org/wiki/Q42479041 https://www.wikidata.org/wiki/Q41655079 参考:ウィキペディア「第4次安倍内閣」 https://ja.wikipedia.org/wiki/%E7%AC%AC4%E6%AC%A1%E5%AE%89%E5%80%8D%E5%86%85%E9%96%A3

takahashim commented 6 years ago

「議会開催期」については、それでいくと例えば「Term for House of Representatives 47th general election」 https://www.wikidata.org/wiki/Q41654707 は「第3次安倍内閣」https://www.wikidata.org/wiki/Q18657782 になりそうですが、これは2015年10月7日に終わってその後は「第3次安倍改造内閣」https://www.wikidata.org/wiki/Q21074124 になっていたようなので、ちょっと概念が違いそうに見えました。

takahashim commented 6 years ago

「代表する団体」「会派」「所属政党」の考え方はそれでよさそうですが、「代表する団体」「所属政党」は「議会開催期」に紐付ける(qualifierにする)のではなく、その個人に紐ついていればいいのではないかな、という気がしないでもないです。 細かいと管理が大変になって続かないと思うので。

「議会開催期」に紐付くのが「会派(院内会派)」、「立候補選挙」に紐付くのが「代表する団体」で、「所属政党」は個人に紐付くのでどうでしょうか。所属政党は議員になっていてもなっていなくても、選挙しててもしてなくても決まる項目だと思うので。(という理解なんですが、ひょっとして議員じゃなくなると政党に所属してないことになるんでしょうか…?)

higa4 commented 6 years ago

そっかぁ。ウィキペディア記事は内閣改造ごとで、それと衆院選は紐付かないですねー。 第3次安倍内閣2014/12/24-2015/10/7 https://ja.wikipedia.org/wiki/%E7%AC%AC3%E6%AC%A1%E5%AE%89%E5%80%8D%E5%86%85%E9%96%A3 第3次安倍内閣 (第1次改造)2015/10/7-2016/8/3 https://ja.wikipedia.org/wiki/%E7%AC%AC3%E6%AC%A1%E5%AE%89%E5%80%8D%E5%86%85%E9%96%A3_(%E7%AC%AC1%E6%AC%A1%E6%94%B9%E9%80%A0) 第3次安倍内閣 (第2次改造)2016/8/3-2017/8/3 https://ja.wikipedia.org/wiki/%E7%AC%AC3%E6%AC%A1%E5%AE%89%E5%80%8D%E5%86%85%E9%96%A3_(%E7%AC%AC2%E6%AC%A1%E6%94%B9%E9%80%A0) 第3次安倍内閣 (第3次改造)20178/3-2017/11/1/ https://ja.wikipedia.org/wiki/%E7%AC%AC3%E6%AC%A1%E5%AE%89%E5%80%8D%E5%86%85%E9%96%A3_(%E7%AC%AC3%E6%AC%A1%E6%94%B9%E9%80%A0) 全期間に対して「第3次安倍内閣」というitemをwikidata側で作ったら混乱するかなー。

higa4 commented 6 years ago

「議会開催期」に紐付くのが「会派(院内会派)」、「立候補選挙」に紐付くのが「代表する団体」�で、「所属政党」は個人に紐付くのでどうでしょうか。

賛成です

higa4 commented 6 years ago

修正してみました。 https://www.wikidata.org/wiki/Q132280