メモ: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クエリの書き方さっぱりわからないけど。。)、次は↓をやってみたい。

data.e-stat.go.jp