OpenAddressesという世界中の住所データをオープンデータとして公開するサイトがあります。ここに日本の住所データがCSVとして公開されていましたので、RDF化してLinked Dataとして提供するサイトを作ってみました。

OpenAddressesのデータには、代表点の緯度経度データがありましたので、住所から手軽に緯度経度が引けます。
ここの日本のデータの元は、国土交通省が提供するデータだそうです。

(2016年12月21日追記)
OpenAddressesのCSVファイルは2013年のデータを変換したものでした。いくつか現存の住所が存在しないことに気づいたので、国土交通省のサイトから2016年7月時点で最新の2015年のデータをダウンロードして、2013年データと入れ替えています。

また、国土交通省と総務省統計局のサイトで市区町村と町・丁目の行政区画のポリゴンデータが公開されていましたので、それらも反映しました。現在は市区町村、町・丁目については行政区画のデータも一部を除きダウンロードできます。

このサイトから取得できる地理空間データをまとめると以下のようになります。

行政区画 ポリゴン ポイント
都道府県
市区町村
町・丁目
番地

Linked Open Addresses Japan

サイトのURLは以下のになります。

http://uedayou.net/loa/

使い方

住所データの引き方は2種類あります。URLに直接入力する方法と、トップページからブラウジングする方法です。

URLに直接入力

Firefox、Chrome等WebブラウザのURL入力フォームに住所を直接入力することで、該当住所のデータが閲覧できます。

入力は以下のようにしてください。

http://uedayou.net/loa/[都道府県][市区町村][町・大字][丁目・字][番地]

「一丁目」等の丁目の数は漢数字で記述してください。
番地は半角数字で記述して「1番」、「1番地」のような「番」、「番地」をつけないでください。

たとえば、「東京都千代田区永田町一丁目7番」という住所のデータを見たい場合は以下のようにURLを作ります。

http://uedayou.net/loa/東京都千代田区永田町一丁目7

トップページからブラウジング

URLに直接入力する方法以外に、トップページの都道府県リストからブラウジングすることもできます。

トップページ

トップページから地図で探す

トップページの下のほうに地図を表示している部分がありますが、地図の中のピン(マーカー)をクリックして、ポップアップのリンクを押すと、その地点を含む住所のページに移動することができます。地図をスクロールすると表示されている範囲に含まれる住所がピンとして表示されます。

この地図を使って住所を探すこともできます。

地図で探す

JSONやXMLでデータを取得する方法

このサイトの住所データは、Linked Dataなので、Webページとしてだけではなく、プログラムで扱いやすいJSONやXMLとしても取得することができるので、簡易住所 Web APIとしても利用可能です。

たとえば、以下のようなURLだとWebページ(HTML)が表示されます。

http://uedayou.net/loa/東京都千代田区永田町一丁目

東京都千代田区永田町一丁目

この住所のJSONデータがほしい場合、拡張子「.json」をつけるだけでJSONが取得できます。

http://uedayou.net/loa/東京都千代田区永田町一丁目.json

{
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee": {
        "http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type": [{
            "type": "uri",
            "value": "http:\/\/imi.go.jp\/ns\/core\/rdf#\u4f4f\u6240\u578b"
        }],
        "http:\/\/www.w3.org\/2000\/01\/rdf-schema#label": [{
            "type": "literal",
            "value": "\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }],
        "http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#lat": [{
            "type": "literal",
            "value": "35.676328",
            "datatype": "http:\/\/www.w3.org\/2001\/XMLSchema#double"
        }],
        "http:\/\/www.w3.org\/2003\/01\/geo\/wgs84_pos#long": [{
            "type": "literal",
            "value": "139.745749",
            "datatype": "http:\/\/www.w3.org\/2001\/XMLSchema#double"
        }],
        "http:\/\/www.opengis.net\/ont\/geosparql#wktLiteral": [{
            "type": "literal",
            "value": "POLYGON ((139.74614009008448 35.679893682380175,139.74700154042384 35.679639454391406,139.74725636267908 35.679528303345563,139.74775705798407 35.679157583808951,139.74836715835491 35.678549413842873,139.74861314192876 35.678185904728664,139.74921406371229 35.677644552192383,139.74955987942309 35.677488919310164,139.74967814558511 35.677474178193371,139.74961680954422 35.677318331987337,139.74930410942187 35.67676901656008,139.74891047973554 35.676159329075745,139.7486750137503 35.67575963751618,139.74780953087586 35.674301443272341,139.74758136045094 35.673934394186325,139.74737509477256 35.67365971577248,139.74724476159096 35.673529416563113,139.74672611627233 35.673010966592528,139.74665333377322 35.672944050672342,139.74634389273729 35.672646726603631,139.74626450254016 35.672595544484828,139.7459852315325 35.67242725027608,139.74579484628919 35.672318207870433,139.74553862288806 35.672235524582945,139.74473164777123 35.672086347809959,139.74440610947906 35.672938327628813,139.7443581374398 35.673233984686767,139.74418816139078 35.673810244510236,139.74387594835355 35.675011338275262,139.74315453372597 35.677600907247147,139.74307414281327 35.677602361032712,139.74201562894427 35.677621491642448,139.74192876861036 35.677633960437461,139.74148364469997 35.677838507771249,139.74023424789885 35.67874539867335,139.74013121428476 35.678804119386136,139.7408551024011 35.678933651199451,139.74312543845457 35.679344793571801,139.74314040704363 35.679326108363981,139.74394080242308 35.679493247801041,139.74490319939423 35.679668493641387,139.7459105317489 35.679851897894167,139.74614009008448 35.679893682380175))"
        }],
        "http:\/\/schema.org\/image": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee.jpg"
        }],
        "http:\/\/imi.go.jp\/ns\/core\/rdf#\u90fd\u9053\u5e9c\u770c": [{
            "type": "literal",
            "value": "\u6771\u4eac\u90fd"
        }],
        "http:\/\/imi.go.jp\/ns\/core\/rdf#\u5e02\u533a\u753a\u6751": [{
            "type": "literal",
            "value": "\u5343\u4ee3\u7530\u533a"
        }],
        "http:\/\/imi.go.jp\/ns\/core\/rdf#\u4e01\u76ee": [{
            "type": "literal",
            "value": "\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }],
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee1": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee10": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee11": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee2": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee3": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee4": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee5": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee6": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee7": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    },
    "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee8": {
        "http:\/\/www.geonames.org\/ontology#parentFeature": [{
            "type": "uri",
            "value": "http:\/\/uedayou.net\/loa\/\u6771\u4eac\u90fd\u5343\u4ee3\u7530\u533a\u6c38\u7530\u753a\u4e00\u4e01\u76ee"
        }]
    }
}

XMLであれば、拡張子を「.xml」にするだけです。

http://uedayou.net/loa/東京都千代田区永田町一丁目.xml

<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:ic="http://imi.go.jp/ns/core/rdf#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
         xmlns:gsp="http://www.opengis.net/ont/geosparql#"
         xmlns:schema="http://schema.org/"
         xmlns:gn="http://www.geonames.org/ontology#">

  <ic:住所型 rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目">
    <rdfs:label>東京都千代田区永田町一丁目</rdfs:label>
    <geo:lat rdf:datatype="http://www.w3.org/2001/XMLSchema#double">35.676328</geo:lat>
    <geo:long rdf:datatype="http://www.w3.org/2001/XMLSchema#double">139.745749</geo:long>
    <gsp:wktLiteral>POLYGON ((139.74614009008448 35.679893682380175,139.74700154042384 35.679639454391406,139.74725636267908 35.679528303345563,139.74775705798407 35.679157583808951,139.74836715835491 35.678549413842873,139.74861314192876 35.678185904728664,139.74921406371229 35.677644552192383,139.74955987942309 35.677488919310164,139.74967814558511 35.677474178193371,139.74961680954422 35.677318331987337,139.74930410942187 35.67676901656008,139.74891047973554 35.676159329075745,139.7486750137503 35.67575963751618,139.74780953087586 35.674301443272341,139.74758136045094 35.673934394186325,139.74737509477256 35.67365971577248,139.74724476159096 35.673529416563113,139.74672611627233 35.673010966592528,139.74665333377322 35.672944050672342,139.74634389273729 35.672646726603631,139.74626450254016 35.672595544484828,139.7459852315325 35.67242725027608,139.74579484628919 35.672318207870433,139.74553862288806 35.672235524582945,139.74473164777123 35.672086347809959,139.74440610947906 35.672938327628813,139.7443581374398 35.673233984686767,139.74418816139078 35.673810244510236,139.74387594835355 35.675011338275262,139.74315453372597 35.677600907247147,139.74307414281327 35.677602361032712,139.74201562894427 35.677621491642448,139.74192876861036 35.677633960437461,139.74148364469997 35.677838507771249,139.74023424789885 35.67874539867335,139.74013121428476 35.678804119386136,139.7408551024011 35.678933651199451,139.74312543845457 35.679344793571801,139.74314040704363 35.679326108363981,139.74394080242308 35.679493247801041,139.74490319939423 35.679668493641387,139.7459105317489 35.679851897894167,139.74614009008448 35.679893682380175))</gsp:wktLiteral>
    <schema:image rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目.jpg"/>
    <ic:都道府県>東京都</ic:都道府県>
    <ic:市区町村>千代田区</ic:市区町村>
    <ic:丁目>永田町一丁目</ic:丁目>
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区"/>
  </ic:住所型>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目1">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目10">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目11">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目2">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目3">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目4">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目5">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目6">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目7">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

  <rdf:Description rdf:about="http://uedayou.net/loa/東京都千代田区永田町一丁目8">
    <gn:parentFeature rdf:resource="http://uedayou.net/loa/東京都千代田区永田町一丁目"/>
  </rdf:Description>

</rdf:RDF>

ちなみに、RDFデータのファイル形式として良く使われるTurtleは、拡張子「.ttl」で取得できます。

http://uedayou.net/loa/東京都千代田区永田町一丁目.ttl

@prefix ic: <http://imi.go.jp/ns/core/rdf#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix gsp: <http://www.opengis.net/ont/geosparql#> .
@prefix schema: <http://schema.org/> .
@prefix gn: <http://www.geonames.org/ontology#> .

<http://uedayou.net/loa/東京都千代田区永田町一丁目>
  a ic:住所型 ;
  rdfs:label "東京都千代田区永田町一丁目" ;
  geo:lat 3.567633e+1 ;
  geo:long 1.397457e+2 ;
  gsp:wktLiteral "POLYGON ((139.74614009008448 35.679893682380175,139.74700154042384 35.679639454391406,139.74725636267908 35.679528303345563,139.74775705798407 35.679157583808951,139.74836715835491 35.678549413842873,139.74861314192876 35.678185904728664,139.74921406371229 35.677644552192383,139.74955987942309 35.677488919310164,139.74967814558511 35.677474178193371,139.74961680954422 35.677318331987337,139.74930410942187 35.67676901656008,139.74891047973554 35.676159329075745,139.7486750137503 35.67575963751618,139.74780953087586 35.674301443272341,139.74758136045094 35.673934394186325,139.74737509477256 35.67365971577248,139.74724476159096 35.673529416563113,139.74672611627233 35.673010966592528,139.74665333377322 35.672944050672342,139.74634389273729 35.672646726603631,139.74626450254016 35.672595544484828,139.7459852315325 35.67242725027608,139.74579484628919 35.672318207870433,139.74553862288806 35.672235524582945,139.74473164777123 35.672086347809959,139.74440610947906 35.672938327628813,139.7443581374398 35.673233984686767,139.74418816139078 35.673810244510236,139.74387594835355 35.675011338275262,139.74315453372597 35.677600907247147,139.74307414281327 35.677602361032712,139.74201562894427 35.677621491642448,139.74192876861036 35.677633960437461,139.74148364469997 35.677838507771249,139.74023424789885 35.67874539867335,139.74013121428476 35.678804119386136,139.7408551024011 35.678933651199451,139.74312543845457 35.679344793571801,139.74314040704363 35.679326108363981,139.74394080242308 35.679493247801041,139.74490319939423 35.679668493641387,139.7459105317489 35.679851897894167,139.74614009008448 35.679893682380175))" ;
  schema:image <http://uedayou.net/loa/東京都千代田区永田町一丁目.jpg> ;
  ic:都道府県 "東京都" ;
  ic:市区町村 "千代田区" ;
  ic:丁目 "永田町一丁目" ;
  gn:parentFeature <http://uedayou.net/loa/東京都千代田区> .

<http://uedayou.net/loa/東京都千代田区永田町一丁目1> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目10> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目11> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目2> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目3> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目4> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目5> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目6> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目7> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .
<http://uedayou.net/loa/東京都千代田区永田町一丁目8> gn:parentFeature <http://uedayou.net/loa/東京都千代田区永田町一丁目> .

既存の住所LODとの違い

 日本の住所データをLinked Dataとして公開するサイトでもっとも有名なのは GeoNames.jpです。GeoNames.jp は町・丁目までのデータを対象としているようで、番地は引けないようです。また、住所に関する位置データも提供していないようです。
 一方、Linked Open Addresses Japanは上述の通り、市区町村、町・丁目、番地において地理空間データも提供しています。
 ただ、GeoNames.jp では住所の省略表記やあいまい表記に対応していますが、今回作成したサイトは正式表記でないとデータが引けません。たとえば、GeoNames.jp では「東京都千代田区永田町一丁目」を「千代田区永田町一丁目」でも参照できますし、「永田町一丁目」でも曖昧性解消をしてくれます。
 このように曖昧性解消に強みを持つGeoNames.jpとあわせて使うと、より使いやすくなると考え、各住所データにGeoNames.jp の同一住所をあらわすURIにリンクもしています。

活用事例

このサイトのデータは、統計データのビジュアライズの基盤データ等さまざまな用途に利用できると考えています。

別のQiitaの記事で、このサイトのデータを使った活用例を紹介しています。

住所LODを使った行政区画可視化アプリ作成方法 - Qiita

Clipboard02.jpg

住所LODから行政区画のGeoJSONファイルを作成する方法 - Qiita

loaj2geojson.jpg

その他の使い方

 Linked Open Addresses Japan(試作版) は、Simple LODI を使って作成しました。Simple LODIはコンテントネゴシエーションにより、JSONやXMLを取得することもできます。Simple LODIについては、別のqiitaの記事にまとめていますので、そちらも参照してください。

比較的簡単にDBpediaのようにLinked Open Data(LOD)を公開する方法