メモ:httrでSPARQL
↓この記事をhttrでやってみる。
Wikidataのendpointはここにあるらしい。
Wikidata query service/User Manual - MediaWiki
このユーザーマニュアルにはCSVで書き出せるなんて一言も書いてないけど、上の記事通りヘッダに"text/csv"
をつけたらいけた。
library(httr) library(readr) endpoint <- "https://query.wikidata.org/bigdata/namespace/wdq/sparql" query <- 'SELECT ?item ?itemLabel WHERE { ?item wdt:P31 wd:Q146 . SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } }' res <- GET(endpoint, add_headers(`Accept` = "text/csv"), query = list(query = query)) read_csv(content(res, as = "text")) #> No encoding supplied: defaulting to UTF-8. #> Source: local data frame [57 x 2] #> #> item itemLabel #> <chr> <chr> #> 1 http://www.wikidata.org/entity/Q498787 Muezza #> 2 http://www.wikidata.org/entity/Q677525 Orangey #> 3 http://www.wikidata.org/entity/Q851190 Mrs. Chippy #> 4 http://www.wikidata.org/entity/Q1050083 Catmando #> 5 http://www.wikidata.org/entity/Q1185550 Oscar #> 6 http://www.wikidata.org/entity/Q1201902 Tama #> 7 http://www.wikidata.org/entity/Q1207136 Dewey Readmore Books #> 8 http://www.wikidata.org/entity/Q1371145 Socks #> 9 http://www.wikidata.org/entity/Q1386318 F.D.C. Willard #> 10 http://www.wikidata.org/entity/Q1413628 Nora #> .. ... ...
とりあえずなんとなくデータを取ってこれたので(SPARQLクエリの書き方さっぱりわからないけど。。)、次は↓をやってみたい。