このアプリは「シビックパワーバトル」に着想を得て開発したものだ。
バトル自体は興味を引くためのジョークだが、地域と地域を比較したり、また日本(全国値)と比較することで、自分の住んでいる地域の特徴を知り、どのような問題点を持つか把握することが可能となる。地域分析ツールという観点で遊んでいただけたら幸いだ。
さて、このアプリは、e-StatのWeb APIからデータを取得し表示させている。
都道府県と市区町村のデータは REST API から、町丁・字の「小地域」のデータは、統計LOD のSPARQL APIから取得している。
都道府県と市区町村のデータは、SPARQL APIからも取得することが可能だが、実行速度のより高速なREST APIを利用している。
小地域データは現在、SPARQL APIからのみの提供だ。
本稿では、統計LODの小地域データを扱うためのSPARQLクエリを紹介する。クエリをコピペして、統計LODのエンドポイントでお試しあれ。
1 平成27年国勢調査の対象自治体の一覧
PREFIX sdmx-dimension: <http://purl.org/linked-data/sdmx/2009/dimension#>
PREFIX qb: <http://purl.org/linked-data/cube#>
PREFIX sacs: <http://data.e-stat.go.jp/lod/terms/sacs#>
PREFIX ic: <http://imi.go.jp/ns/core/rdf#>
select distinct ?code ?pref ?area
where {
?s sdmx-dimension:refArea ?code ;
qb:dataSet <http://data.e-stat.go.jp/lod/dataset/g00200521/d0003148521>.
?code sacs:prefectureLabel ?pref ;
ic:表記 ?area ;
}order by ?code
このクエリで、平成27年国勢調査の対象自治体の「期間付き標準地域コード」を取得することができる。(重いので乱発しないこと!)
2 京都市左京区に含まれる小地域の一覧
PREFIX smallArea: <http://data.e-stat.go.jp/lod/terms/smallArea/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX sac: <http://data.e-stat.go.jp/lod/sac/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select *
where {
?s a smallArea:SmallAreaCode ;
dcterms:isPartOf sac:C26103-19700401 ;
rdfs:label ?name .
} order by ?s
上記の sac:C26103-19700401 は平成27年国勢調査時点の、京都市左京区の期間付き標準地域コードである。この部分を変えることで他の市区町村の情報を得ることができる。
3 京都市左京区聖護院山王町の情報
PREFIX sa-g00200521-2015: <http://data.e-stat.go.jp/lod/smallArea/g00200521/2015/>
select *
where {
sa-g00200521-2015:S26103018006 ?p ?o .
}
4 京都市左京区聖護院山王町のポリゴン
PREFIX sa-g00200521-2015: <http://data.e-stat.go.jp/lod/smallArea/g00200521/2015/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
select ?polygon
where {
sa-g00200521-2015:S26103018006 geo:hasGeometry [ geo:asWKT ?polygon ] .
}
小地域のポリゴンを取得することもできる。当アプリではこのクエリは使っていないが、オープンストリートマップなどで領域を表示させるのも面白いと思う。
5 京都市左京区聖護院山王町の年齢別・男女別人口
PREFIX sdmx-dimension: <http://purl.org/linked-data/sdmx/2009/dimension#>
PREFIX sa-g00200521-2015: <http://data.e-stat.go.jp/lod/smallArea/g00200521/2015/>
PREFIX qb: <http://purl.org/linked-data/cube#>
PREFIX cd-dimension: <http://data.e-stat.go.jp/lod/ontology/crossDomain/dimension/>
PREFIX estat-measure: <http://data.e-stat.go.jp/lod/ontology/measure/>
select ?age ?sex ?population
where {
?s sdmx-dimension:refArea sa-g00200521-2015:S26103018006 ;
qb:dataSet <http://data.e-stat.go.jp/lod/dataset/g00200521/ds012015003>;
cd-dimension:age ?age;
cd-dimension:sex ?sex;
estat-measure:population ?population.
}order by ?sex ?age
このクエリで、いわゆる「人口ピラミッド」に必要な情報を得ることができる。
6 京都市左京区聖護院山王町の年齢別・男女別人口、外国人人口、世帯数、配偶関係、労働力状態
PREFIX sdmx-dimension: <http://purl.org/linked-data/sdmx/2009/dimension#>
PREFIX sa-g00200521-2015: <http://data.e-stat.go.jp/lod/smallArea/g00200521/2015/>
PREFIX qb: <http://purl.org/linked-data/cube#>
PREFIX cd-dimension: <http://data.e-stat.go.jp/lod/ontology/crossDomain/dimension/>
PREFIX estat-measure: <http://data.e-stat.go.jp/lod/ontology/measure/>
PREFIX g00200521-dimension-2015: <http://data.e-stat.go.jp/lod/ontology/g00200521/dimension/2015/>
PREFIX g00200521-dimension-2010: <http://data.e-stat.go.jp/lod/ontology/g00200521/dimension/2010/>
select ?dataset ?sex ?age ?maritalStatus ?labourForce ?population ?households ?avrage
where {
?s sdmx-dimension:refArea sa-g00200521-2015:S26103018006 ;
qb:dataSet ?dataset .
OPTIONAL{
?s cd-dimension:age ?age;
cd-dimension:sex ?sex;
estat-measure:population ?population.
}
OPTIONAL{
?s estat-measure:households ?households .
}
OPTIONAL{
?s cd-dimension:sex ?sex;
estat-measure:population ?population.
}
OPTIONAL{
?s cd-dimension:sex ?sex;
estat-measure:age ?avrage.
}
OPTIONAL{
?s cd-dimension:sex ?sex;
g00200521-dimension-2015:maritalStatus ?maritalStatus;
estat-measure:population ?population.
}
OPTIONAL{
?s cd-dimension:sex ?sex;
g00200521-dimension-2010:labourForce ?labourForce;
estat-measure:population ?population.
}
}order by ?dataset ?sex ?age ?maritalStatus ?labourForce
「ザ・地域統計パワーバトル」では、実際にこのクエリを使ってデータを取得している。
OPTIONAL句で各種データを並列させているところがポイント。
短いクエリを連発するのが良いのか、このような重いクエリにするのが良いのか悩んだが、プログラムが複雑化するのを避けるために、今回は重いクエリ一発で、情報を一気に取得する方法を採用した。
おかげさまで快適になりました。
関係者のみなさま、ありがとうございます!!!