6
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Wikidataを使った日本の政治家の出身大学ランキング

※後述のクエリの「大学の一覧を判定する」部分を?univ wdt:P31 wd:Q3918.から?univ wdt:P31/wdt:P279* wd:Q3918.へ変更しました.この変更により,wd:Q3918(University)の下位クラスも考慮するようになります.

東京でLODのワークショップでSPARQLのハンズオンを行った翌日,Twitterで,



といったツィートを見かけた.

これって,ちょうどSPARQLのハンズオンでやった「Wikidataを使った大学の卒業生ランキング」の例を使ったら近いことが調べらのでは...と思ったので,試した結果を共有します.

Wikidataとは

Wikidataとは,Wikipediaと同じウィキメディア財団が運営している「誰でも編集可能なフリーの知識ベース」で,現在は,Wikipediaの各記事からも該当するデータへのリンクがされています(メニューの「ウィキデータ項目」というリンクから行けます).

この知識ベースは,https://query.wikidata.org/ で様々なクエリを実行できるサービスがあり,SPARQLというクエリ言語を用いた問い合わせが行えます.

Wikidataの解説は,こちらの記事をはじめ,Qiitaでもwikidata
で検索すると,様々な解説がされていますので,そちらをご参照ください.

ランキング用のクエリ

さて本題の「Wikidataを使った日本の政治家の出身大学ランキング」は,こちらとなります.

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>

select ?univ ?univl (count(?s) As ?c) where{
?univ wdt:P31/wdt:P279* wd:Q3918.
?s  wdt:P27  wd:Q17;
    wdt:P106 wd:Q82955;
    wdt:P69  ?univ.
OPTIONAL{
    ?s  rdfs:label  ?name.
    FILTER(lang(?name)="ja")
    ?univ rdfs:label ?univl .
    FILTER (lang(?univl) = "ja") .
  }
}
GROUP BY ?univ ?univl
ORDER BY DESC(?c)
LIMIT 100

実行結果はこちらから確認できます.
これをWikidataのクエリサービスが用意しているグラフ可視化機能でみると下記のようになります.
query1.png
予想通り,東京大学の出身者が多数ですね.

この結果から,上位10大学を抜き出すとこんな感じ(2018/7/19,14:50時点).

大学 その大学出身の日本の政治家の数
東京大学 1924
早稲田大学 446
慶應義塾大学 426
京都大学 235
中央大学 232
大阪大学 185
日本大学 160
明治大学 144
一橋大学 110
東北大学 106

個人的には意外だったのですが,うちの母校もTOP10に入ってました.

なお,このクエリに少し手を加えてやると,いろいろと調べることができます.
例えば,下記のようにwdt:P39 wd:Q274948;の一文を加えてやると,「Wikidataを使った日本の総理大臣の出身大学ランキング」となります.

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>

select ?univ ?univl (count(?s) As ?c) where{
?univ wdt:P31/wdt:P279* wd:Q3918.
?s  wdt:P27  wd:Q17;
    wdt:P106 wd:Q82955;
    wdt:P39  wd:Q274948;
    wdt:P69  ?univ.
OPTIONAL{
    ?s  rdfs:label  ?name.
    FILTER(lang(?name)="ja")
    ?univ rdfs:label ?univl .
    FILTER (lang(?univl) = "ja") .
  }
}
GROUP BY ?univ ?univl
ORDER BY DESC(?c)
LIMIT 100

結果は下記の通り.
(Wikidataのサイトで見たい場合はこちら

大学 その大学出身の日本の総理大臣の数
東京大学 30
早稲田大学 6
京都大学 6
スタンフォード大学 4
南カリフォルニア大学 4
慶應義塾大学 3
上智大学 3
ロンドン・スクール・オブ・エコノミクス 2
学習院大学 2
明治大学 2
一橋大学 2
埼玉大学 2
東京工業大学 1
成蹊大学 1
東京帝国大学 1
パリ大学 1
中央大学 1
東京海洋大学 1
大阪大学 1
成城大学 1
神戸大学 1

1位が東京大学なのは変わりませんが,それ以下はずいぶん変わってきます.

なお,これらのクエリを作るのに要した時間は,合わせて15分程度.(最初のクエリは10分強で書きました)
このように,いろいろお手軽に調べることができることが,面白いところ.

注意点

上記のランキングですが,あくまでもWikidataに登録されているデータを元にしている点に,ご注意ください.
Wikidataは,Wikipediaと同じようにコミュニティベースで構築されていますので,必ずしも正しい情報が入っているとは限りません

また,今回作成したクエリでは,1人の人が複数の大学で教育を受けていた場合,その分は重複してカウントされてしまいます.
この点は,クエリをもう少し工夫すれば何とかなるかもしれません(最終学歴でカウントするなど)が,データがどこまで入っているかにも依ります.

ただ,Wikidataでは,Wikipediaの記事になっているような項目については,相当数のデータがカバーされていますので,何気なく感じたことを,データに基づいて簡単に調べてみるときにはとても便利です.

詳しいクエリの書き方

この記事では,詳しいクエリの書き方の説明は省略していますが,ご関心のある方は,
第1回Linked Open Data (LOD) 活用ワークショップの資料置き場
https://github.com/KnowledgeGraphJapan/LODws1st
に,ワークショップで解説した資料やサンプルがありますのでご覧ください.

また,Wikipediaと同じようなクエリが使える知識ベースであるDBpediaを使ったランクキングのクエリについては,こちらの記事で解説していますので,併せてご覧ください.

なお当然ながら,プログラムからのアクセスも可のです(プログラムからはhttps://query.wikidata.org/sparql というアドレスでアクセスします)ので,ちょっと工夫すると,いろんなことに使えると思います,

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
6
Help us understand the problem. What are the problem?