地方自治体の URL 一覧は「全国地方公共団体コード」ベースで揃えれば大丈夫そうだということがわかった。「全国地方公共団体コード」データが欲しい。
「全国地方公共団体コード」のスーパーセットになっている「標準地域コード」は自治体単位ではなくて統計値撮りたい場所全て網羅的に設定されているので、「標準地域コード」ではホームページが対応しない地域がたくさん出る。これは過剰すぎる。
地域標準コードの RDF スキーマ自体はよくできていて、これを参考に「全国地方公共団体コード」もメンテできないかと考えてみた。現状だと excel で配布されているので、例えば pandas.read_excel
で読み込んで、ゴミを取り除きながら使うしかない。
ただ「標準地域コード」の CurrentStandardAreaCode
の体系が、ちょっと「うーん」と思ってしまった。個人的には可能な限りデータは静的に設計したいと思っている。「現在の」みたいなダイナミックなデータをファイルに書いてしまうと将来的に嘘になってしまうのが難点。
で例えば CurrentStandardAreaCode
を使わないとして、同等のものは計算で出せるかと試してみた。CodeChangeEvent
で前後の変更が分かるので、生き残ってるコード群を出してみる。
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX sac: <http://data.e-stat.go.jp/lod/sac/>
PREFIX sacs: <http://data.e-stat.go.jp/lod/terms/sacs#>
PREFIX sace: <http://data.e-stat.go.jp/lod/sace/>
SELECT DISTINCT ?s WHERE {
?s a sacs:StandardAreaCode .
?e a sacs:CodeChangeEvent ;
org:resultingOrganization ?s .
FILTER NOT EXISTS {
?e2 org:originalOrganization ?s .
}
}
ところが、これは CurrentStandardAreaCode
の数とは一致しない。実行結果。原因を見ていくと、例えば「相模原市が政令都市に移行」は、「全国地方公共団体コード」での改正の記録はこうなっている。
都道府県名 | 改正前コード | 市区町村名 | ふりがな | 改正区分 | 改正年月日 | 改正後コード | 市区町村名 | ふりがな | 事由等 |
---|---|---|---|---|---|---|---|---|---|
神奈川県 | 142093 | 相模原市 | さがみはらし | 欠番 | H22.4.1 | 削除 | 削除 | 削除 | 政令指定都市へ移行 |
新設 | 〃 | 141500 | 相模原市 | さがみはらし | |||||
〃 | 〃 | 141518 | 緑区 | みどりく | |||||
〃 | 〃 | 141526 | 中央区 | ちゅうおうく | |||||
〃 | 〃 | 141534 | 南区 | みなみく |
「標準地域コード」での記録はこうなっている。
sace:C5174
rdf:type sacs:CodeChangeEvent ;
sacs:reasonForChange sacr:shiftToDesignatedCity ;
dcterms:date "2010-04-01"^^xsd:date ;
dcterms:description "Sagamihara-shi(14209) shifts to a city designated by the Cabinet Order, and it becomes Sagamihara-shi(14150)."@en , "相模原市(14209)の相模原市(14150)への政令指定都市移行"@ja ;
dcterms:identifier "5174" ;
org:originalOrganization
sac:C14209-20071201 ;
org:resultingOrganization
sac:C14209-20100401 , sac:C14150-20100401 .
sace:C5175
rdf:type sacs:CodeChangeEvent ;
sacs:reasonForChange sacr:establishmentOfWards ;
dcterms:date "2010-04-01"^^xsd:date ;
dcterms:description "Midori-ku(14151), Chuo-ku(14152) and Minami-ku(14153) are newly established in Sagamihara-shi."@en , "緑区(14151)、中央区(14152)、南区(14153)の新設"@ja ;
dcterms:identifier "5175" ;
org:resultingOrganization
sac:C14151-20100401 , sac:C14152-20100401 , sac:C14153-20100401 .
「全国地方公共団体コード」を普通に読むと sac:C14209-20100401
は必要なさそうに思える。なんで追加されているのか?なんでこんな体系になっているのか?クエリしてみると分かりそう。実行結果。
PREFIX sac: <http://data.e-stat.go.jp/lod/sac/>
select *
where {
?s ?p sac:C14209-20100401 .
}
limit 10
当初 14209
のコードで集計中のデータがあったときに、それを突然 14150
に変更するわけにもいかない、ということだろうか。「標準地域コード」は郡・庁・局など地域的にも拡張されていたけれども、実は時間方向にもコードが拡張されているということが分かった。
なるほどねー。