LoginSignup
13
13

More than 5 years have passed since last update.

次世代統計利用システムを利用した、都道府県・市区町村コードの取得

Posted at

次世代統計利用システムで提供されている「都道府県・市区町村コード情報(LOD)」のAPIから、
都道府県や市区町村のコードを取得する際の手順について。

手順.1


SPARQL エンドポイントにアクセス。
http://statdb.nstac.go.jp/lod/sparql

手順.2


右側の「OPTIONS」にある「Output format (if supported by query type):」のプルダウンメニューから、任意の出力フォーマットを選択。

手順.3


目的にあわせて、以下のSELECT文を実行。

都道府県コードを取得する場合
SELECT DISTINCT ?area_code ?label_ja ?label_kana ?label_en WHERE {
    ?s sacs:administrativeClass sacs:Prefecture . 
    ?s dcterms:identifier ?area_code . 
    ?s rdfs:label ?label_ja 
        FILTER( lang(?label_ja) = "ja") . 
    ?s rdfs:label ?label_kana 
        FILTER( lang(?label_kana) = "ja-hrkt") . 
    ?s rdfs:label ?label_en
        FILTER( lang(?label_en) = "en")
}
市区町村コードを取得する場合
SELECT DISTINCT ?area_code ?label_ja ?label_kana ?label_en WHERE {
    ?s sacs:administrativeClass ?area_class
        FILTER( regex( ?area_class, "(#SpecialWard|#City|#Town|#Village)$" ) ) .
    ?s dcterms:identifier ?area_code
        FILTER( regex( ?area_code, "^01" ) ) .
    ?s rdfs:label ?label_ja
        FILTER( lang(?label_ja) = "ja" ).
    ?s rdfs:label ?label_kana
        FILTER( lang(?label_kana) = "ja-hrkt" ).
    ?s rdfs:label ?label_en
        FILTER( lang(?label_en) = "en" )
}
ORDER BY ?area_code

上記サンプルの「FILTER( regex( ?area_code, "^01" ) ) .」で指定している数字(01)は、
対象都道府県の都道府県コードのうち先頭2桁に変更。

参考.


次世代統計利用システム【都道府県・市区町村コード情報】 提供仕様
http://statdb.nstac.go.jp/wp/wp-content/uploads/2013/12/sac-spec.pdf

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13