1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

行政区画のポリゴンや緯度経度を取得できるオープンデータな住所データを公開するWebサイト 住所LOD(Linked Open Addresses Japan) について、2026年8月に大幅アップデートを行いましたので、その内容についてこの記事にまとめました。

Linked Open Addresses Japan 自体については以下の記事を参照ください。

更新概要

更新の概要は以下の通りで、詳細は後述します。

  • Linked Open Addresses Japan から 住所LOD に名称を変更
  • 国交省・総務省から最新版オープンデータを取得して、加工・取り込み
    • 都道府県・市区町村データ: 2025年版
    • 町丁目データ: 2020年版
    • 番地データ: 2024年版
  • 都道府県ポリゴンの simplify 圧縮率を見直し、小さい埋立地などでポリゴンが破綻しないよう改善
  • SPARQLエンドポイント(Web API)で番地データが検索可能に
  • 前バージョンの住所データもURL変更で取得可能に
  • 最新版オープンデータによる住所データ更新を容易にするための一貫としてWebサイトを簡素化
    • 周辺情報やWikipedia記事の表示を停止

2026年8月、この更新内容を以下のURLに反映しました。

Webサイト: https://uedayou.net/loa/

Web API(SPARQLエンドポイント): https://uedayou.net/loa/sparql/

変更・更新内容

住所LOD に名称変更

「Linked Open Addresses Japan」という名称は、世界中の住所データをオープンデータとして公開する「OpenAddresses」というサイトに由来しています。日本の住所データが CSV として公開されていたため、それを RDF 化して Linked Data として提供するサイトを作ったことが始まりでした。

その後、より正確なデータとして国土交通省・総務省のオープンデータを使用するよう切り替え、現在は OpenAddresses のデータは利用していません。

姉妹サイトとして「鉄道駅LOD」があり、鉄道オープンデータを利用した鉄道駅の Linked Data を提供するサイトです。これと並べたとき、「Linked Open Addresses Japan」という名称は少々長く、わかりづらいと感じていました。

本サービスは「住所が含まれるオープンデータを利用した住所の Linked Data を提供するサイト」です。姉妹サイトの「鉄道駅LOD」にならい、今回よりシンプルでわかりやすい 「住所LOD」 に名称変更しました。「Linked Open Addresses Japan」は副題として引き続き使用します。

住所データの更新

住所LODが提供する住所データは、国・地方公共団体が公開する3種類のオープンデータから構成されています。いずれも CC BY 4.0 互換ライセンスで提供されており、出典表記のもとで商用利用・二次配布・加工が可能です。

今回の更新では、以下のとおりデータのバージョンが新しくなっています。

データ 現バージョン(2021年版) 最新バージョン(2026年版)
都道府県・市区町村(N03) 2020年版(2020年1月1日基準) 2025年版(2025年1月1日基準)
町丁目(e-Stat) 2015年国勢調査版 2020年国勢調査版
番地(ISJ) 令和元年度版(2019年基準) 令和6年版(2024年基準)

行政区再編の反映(浜松市の例)

2021年版からの住所データの変化の代表例として、静岡県浜松市の行政区再編があります。浜松市は2024年1月1日付で、それまでの7行政区を3行政区に統合しており、2026年版では都道府県・市区町村データ(N03)・町丁目(e-Stat)・番地(ISJ)のいずれもこの新しい行政区構成に更新しています。

旧区(7区) 新区(3区)
中区・東区・西区・南区 中央区
北区(三方原町・根洗町など都心寄りの7町) 中央区
北区(引佐町・三ケ日町・細江町・都田町など) 浜名区
浜北区 浜名区
天竜区 天竜区(区域は変更なし、区コードのみ変更)

行政区コード: 中央区 138/浜名区 139/天竜区 140(旧: 中区131・東区132・西区133・南区134・北区135・浜北区136・天竜区137)

なお、町丁目データ(e-Stat)は2020年国勢調査時点の区割りを収録しているため、旧区のデータを新区に変換したうえで取り込んでいます。

都道府県・市区町村(2025年版)

国土交通省 国土数値情報 行政区域データ(N03) を使用しています。

2025年1月1日基準のデータを取り込みました。各市区町村の境界ポリゴンが収録されており、政令市については行政区単位のポリゴンも提供しています。都道府県ポリゴンは市区町村ポリゴンを統合して生成しています。

都道府県ポリゴンの simplify 圧縮率の見直し

都道府県ポリゴン(geosp:asWKT)はデータサイズを抑えるため、座標点を間引く simplify 処理を行っています。2021年版はこの圧縮率が高く、特に東京湾の埋立地のような細長い・小さい地形では、間引きの結果ポリゴンの形状が破綻してしまうケースがありました。2026年版ではこの圧縮率を見直し、小さい地形でも形状が破綻しないようにしています。

実際に東京都のポリゴンデータ(GeoJSON)を比較すると、この違いが確認できます。Web上では gzip 圧縮して転送されるため、転送量は gzip 圧縮後のサイズで比較しています。

バージョン URL 転送量(gzip後) ポリゴン数
2021年版 https://uedayou.net/loa/2021/東京都.geojson 約37KB 147
2026年版 https://uedayou.net/loa/東京都.geojson 約270KB 6,721

東京湾の埋立地部分を切り出して比較すると、2021年版は細長い埠頭状の地形の多くが単純化されすぎて欠けたり、ちぎれたりしています。

東京湾埋立地部分のポリゴン比較(2021年版 vs 2026年版)

破綻している埋立地の1つを拡大すると違いがより明確です。2021年版ではもともと細長い島状の地形が座標4点(3頂点)のみの三角形に潰れてしまい、面積がほぼゼロになっています。2026年版では24点の座標を保持しており、元の形状が維持されています。

埋立地1件を拡大した比較(同一地点)

このように、2026年版では simplify のパラメータを見直すことで、小さい埋立地でもポリゴンが破綻しないよう改善しています。

町丁目(2020年版)

総務省統計局 e-Stat 統計GIS 小地域境界データ(2020年国勢調査版) を使用しています。

国勢調査の調査区をベースとした町丁目・丁目単位の境界ポリゴンが収録されています(全国で約22万件)。更新は国勢調査に合わせた5年ごとのため、2025年時点の最新は2020年版です。

番地(2024年版)

国土交通省 位置参照情報 街区レベル(令和6年版) を使用しています。

住居表示が実施された街区単位(「〇〇町△丁目□番」)の代表点緯度経度が収録されています。ポリゴンはなく、代表点のみの提供です。農村・山間部など都市計画区域外の地域はカバーされていない点にご注意ください。

RDFデータ構造

URL 構造

各住所エンティティは、住所レベルに応じた階層的な URL で識別されます。

https://uedayou.net/loa/{都道府県}
https://uedayou.net/loa/{都道府県}{市区町村}
https://uedayou.net/loa/{都道府県}{政令市}{行政区}                    ← 政令市のみ
https://uedayou.net/loa/{都道府県}{市区町村}[{行政区}]{町丁目}
https://uedayou.net/loa/{都道府県}{市区町村}[{行政区}]{丁目}
https://uedayou.net/loa/{都道府県}{市区町村}[{行政区}]{丁目}{番地番号}  ← 番地(1以上の整数)

各 URL にアクセスするとその住所エンティティのデータを取得できます。番地の URL は丁目 URL の末尾に番地番号(1以上の整数)を付加した形式です。

[{行政区}] は政令市の場合のみ存在します。東京都の特別区(23区)は行政区レベルを持たず、通常の市区町村と同一構造です。

データの取得方法

各住所エンティティの URL にフォーマット拡張子を付加することで、目的のフォーマットでデータを取得できます。

https://uedayou.net/loa/東京都千代田区永田町1丁目        # HTML(拡張子なし)
https://uedayou.net/loa/東京都千代田区永田町1丁目.ttl    # Turtle
https://uedayou.net/loa/東京都千代田区永田町1丁目.geojson # GeoJSON

対応フォーマット

拡張子 フォーマット Content-Type
なし HTML text/html
.ttl Turtle text/turtle
.xml RDF/XML application/rdf+xml
.json RDF/JSON application/json
.jsonld JSON-LD application/ld+json
.geojson GeoJSON application/geo+json

拡張子を省略した場合のデフォルトフォーマットは HTML です。Accept ヘッダーによるコンテントネゴシエーションにも対応しており、拡張子が指定されている場合は拡張子が優先されます。

GeoJSON での取得

.geojson を指定すると、RDF の位置情報を GeoJSON Feature 形式に変換して返します。地図ライブラリ(Leaflet・Mapbox など)との連携に利用できます。

  • ポリゴンあり(都道府県〜丁目): geosp:asWKT の POLYGON / MULTIPOLYGON を GeoJSON geometry に変換
  • ポリゴンなし(番地): wgs:lat / wgs:long を GeoJSON Point geometry に変換

GeoJSON の properties には以下のフィールドが含まれます。

フィールド 対応 RDF プロパティ 説明
uri エンティティの URL https://uedayou.net/loa/東京都千代田区永田町1丁目
name rdfs:label 住所の日本語ラベル "東京都千代田区永田町1丁目"
address_code ic:住所コード 住所コード(都道府県:2桁、市区町村:5桁、町丁目以下:12桁) "131010007001"
prefecture ic:都道府県 都道府県名 "東京都"
municipality ic:市区町村 市区町村名(郡名付きの場合は郡名を含む) "千代田区"
ward ic:区 行政区名(政令市のみ。それ以外は項目なし) "北区"
town ic:町名 町丁目名(大字・字プレフィックスを除いた名称) "永田町"
chome ic:丁目 丁目番号(整数。丁目がない場合は項目なし) 1
banchi ic:番地 番地番号(番地レベルのみ。それ以外は項目なし) "7"
notation ic:表記 完全住所文字列(郡名あり市区町村の場合は郡名なし表記も含む) "東京都千代田区永田町1丁目"
lat wgs:lat 緯度(代表点。ポリゴンのみのレベルでは項目なし) 35.676178
long wgs:long 経度(代表点。ポリゴンのみのレベルでは項目なし) 139.742506

各レベルの位置情報

レベル ポリゴン 代表点
都道府県
市区町村・行政区
町丁目(丁目あり)
丁目・町丁目(丁目なし)
番地

ポリゴンは geosp:asWKT プロパティ、代表点は wgs:lat/wgs:longschema:geo(Geohash)で表現されています。

プレフィックス(名前空間)一覧

以降の turtle(Turtle 形式 RDF)の例で使用しているプレフィックスと、対応する名前空間 URI は以下のとおりです。

プレフィックス 名前空間 URI 用途
loa: https://uedayou.net/loa/ 住所エンティティの識別子(本サービスの名前空間)
ic: http://imi.go.jp/ns/core/rdf# IMI(コアデータ・行政基本情報流通推進協議会)の住所型・住所属性
terms: http://purl.org/dc/terms/ Dublin Core Terms(hasPartcreated 等)
geosp: http://www.opengis.net/ont/geosparql# GeoSPARQL(asWKT によるポリゴン表現)
ont: http://www.geonames.org/ontology# GeoNames Ontology(parentFeature による親子関係)
wgs: http://www.w3.org/2003/01/geo/wgs84_pos# WGS84 座標(latlong
schema: http://schema.org/ Schema.org(geosameAslogo
geoh: http://geohash.org/ Geohash 値
rdfs: http://www.w3.org/2000/01/rdf-schema# RDF Schema(label
wd: http://www.wikidata.org/entity/ Wikidata エンティティ

この記事内の turtle・SPARQL クエリ例はすべてこのプレフィックス名で統一しています。

TTL の例(丁目レベル)

loa:東京都千代田区永田町1丁目
    a ic:住所型;
    ic:都道府県 "東京都"@ja;
    ic:都道府県コード [ a ic:コード型; ic:識別値 "13" ];
    ic:市区町村 "千代田区"@ja;
    ic:市区町村コード [ a ic:コード型; ic:識別値 "101" ];
    ic:町名 "永田町"@ja;
    ic:丁目 1;
    ic:住所コード [ a ic:コード型; ic:識別値 "131010007001" ];
    ic:表記 "東京都千代田区永田町1丁目"@ja;
    terms:created "2019-01-01";
    terms:hasPart loa:東京都千代田区永田町1丁目1, loa:東京都千代田区永田町1丁目2, ...;
    ont:parentFeature loa:東京都千代田区永田町;
    schema:geo geoh:xn76gytku;
    geosp:asWKT "POLYGON(...)";
    wgs:lat 35.676178;
    wgs:long 139.742506.

親子関係は terms:hasPart(親→子)と ont:parentFeature(子→親)の両方向で記述しています。

2021年版との主な変更点

廃止した内容

変更内容 2021年版 2026年版
日本全体のルートノード index.ttl.gz あり 廃止
GeoNames リソース参照 terms:references res:... あり 廃止
foaf:homepage 市区町村に付与 廃止
Wikipedia URL schema:sameAs に含む 廃止(Wikidata URI のみ)

追加・変更した内容

変更内容 2021年版 2026年版
番地 TTL の ic:都道府県コード なし 追加
文字列エンコーディング Unicode エスケープ(\uXXXX UTF-8 直接出力
市区町村の terms:created "2020-01-01" "2025-01-01"
番地 IRI のソート順 文字列ソート(1, 10, 11, 2 …) 数値ソート(1, 2, 3 … 10, 11)

SPARQLエンドポイントの構造

最新バージョンでは、SPARQL エンドポイント(Web API)を通じて住所データの検索が可能です。SPARQL は RDF データに対するクエリ言語で、住所・位置情報・階層構造を組み合わせた柔軟な検索ができます。

SPARQLエンドポイント: https://uedayou.net/loa/sparql/

検索可能なデータの範囲

レベル 例(東京都) 例(大阪府) 位置情報
都道府県 東京都 大阪府 ポリゴン
市区町村 千代田区 大阪市 ポリゴン
行政区(政令市のみ) - 大阪市北区 ポリゴン
町丁目 千代田区永田町 大阪市北区国分寺 ポリゴン
丁目 千代田区永田町1丁目 大阪市北区国分寺1丁目 ポリゴン+代表点
番地 千代田区永田町1丁目7番 大阪市北区国分寺1丁目1番 代表点のみ

従来は番地レベルのデータが SPARQL から検索できませんでしたが、今回の更新で番地データも検索対象に含まれるようになりました。

SPARQL エンドポイントの RDF 構造

SPARQL エンドポイントに格納されている RDF データは、個別の TTL ファイルとは異なる簡略化された構造になっています。エンドポイント用データへの変換時に以下のプロパティが除去されます。

除去されるプロパティ 概要
geosp:asWKT ポリゴン WKT(データ量が大きいため)
wgs:lat / wgs:long 代表点の緯度経度
terms:created 作成日
schema:logo 旗画像 URL

また、各エンティティの terms:hasPart は IRI の列挙ではなくブランクノード形式に変換され、親子リンク(ont:parentFeature)の逆参照ステートメント(loa:A ont:parentFeature loa:B. 形式の単独行)は除去されます。

2021年版との主な差異

項目 2021年版 2026年版
schema:sameAs なし 都道府県・市区町村・行政区に Wikidata URI(wd:QXXXXX)を付与
文字列エンコーディング Unicode エスケープ(\uXXXX UTF-8 直接出力
schema:geo Geohash 精度 9文字(全レベル統一) レベル別(都道府県:4 / 市区町村・行政区:5 / 町丁目:6 / 丁目:7)
terms:hasPart の丁目ブランクノード [ ic:丁目 N; schema:geo geoh:xxxxxxxxx ](9文字、番地なし) [ ic:丁目 N; schema:geo geoh:xxxxxxx; terms:hasPart [...] ](7文字、配下の番地ブランクノードをネスト)
terms:hasPart の番地ブランクノード なし [ ic:番地 N ] を丁目・丁目なし町丁目に追加

各レベルの TTL 例(2026年版)

都道府県

loa:三重県
    a ic:住所型;
    ic:都道府県 "三重県"@ja;
    rdfs:label "三重県"@ja;
    schema:sameAs wd:Q128196;
    schema:geo geoh:xn1h.

市区町村

loa:三重県いなべ市
    a ic:住所型;
    ic:市区町村 "いなべ市"@ja;
    ic:都道府県 "三重県"@ja;
    rdfs:label "三重県いなべ市"@ja;
    schema:sameAs wd:Q281817;
    ont:parentFeature loa:三重県;
    schema:geo geoh:xn304.

郡あり市区町村は ic:市区町村rdfs:label に郡名ありの表記のみを保持します(個別 TTL ファイルでは郡名あり・郡名なしの両方を保持しますが、SPARQL エンドポイント用データへの変換時に郡名ありの表記に統一しています)。

loa:京都府与謝郡与謝野町
    a ic:住所型;
    ic:市区町村 "与謝郡与謝野町"@ja;
    ic:都道府県 "京都府"@ja;
    rdfs:label "京都府与謝郡与謝野町"@ja;
    ont:parentFeature loa:京都府;
    schema:geo geoh:xn244.

行政区(政令市のみ)

loa:京都府京都市上京区
    a ic:住所型;
    ic: "上京区"@ja;
    ic:市区町村 "京都市"@ja;
    ic:都道府県 "京都府"@ja;
    rdfs:label "京都府京都市上京区"@ja;
    ont:parentFeature loa:京都府京都市;
    schema:geo geoh:xn0x3.

丁目あり町丁目

丁目は独立したエンティティを持たず、町丁目の terms:hasPart 内の丁目ブランクノードに、配下の番地ブランクノードをネストする形で保持されます。

loa:三重県いなべ市大安町中央ケ丘
    a ic:住所型;
    ic:市区町村 "いなべ市"@ja;
    rdfs:label "三重県いなべ市大安町中央ケ丘"@ja;
    ic:都道府県 "三重県"@ja;
    terms:hasPart
        [ ic:丁目 1; schema:geo geoh:xn1pdve;
          terms:hasPart [ ic:番地 2971 ], [ ic:番地 2972 ], [ ic:番地 2974 ], [ ic:番地 2975 ], [ ic:番地 2979 ], [ ic:番地 2983 ] ],
        [ ic:丁目 2; schema:geo geoh:xn1pdyh;
          terms:hasPart [ ic:番地 1212 ], [ ic:番地 1213 ], [ ic:番地 1216 ], [ ic:番地 1223 ], [ ic:番地 1224 ], [ ic:番地 1398 ], [ ic:番地 1403 ], [ ic:番地 1407 ], [ ic:番地 1412 ], [ ic:番地 2966 ], [ ic:番地 2971 ], [ ic:番地 2973 ], [ ic:番地 2974 ], [ ic:番地 2975 ] ],
        [ ic:丁目 3; schema:geo geoh:xn1pdy1;
          terms:hasPart [ ic:番地 1398 ], [ ic:番地 1415 ], [ ic:番地 1440 ], [ ic:番地 1461 ], [ ic:番地 2966 ], [ ic:番地 2967 ], [ ic:番地 2968 ], [ ic:番地 2969 ], [ ic:番地 2970 ], [ ic:番地 2971 ], [ ic:番地 2973 ], [ ic:番地 2974 ] ];
    schema:geo geoh:xn1pdv;
    ont:parentFeature loa:三重県いなべ市.

丁目なし町丁目(番地を直接保持)

loa:京都府京都市上京区一条横町
    a ic:住所型;
    ic: "上京区"@ja;
    ic:市区町村 "京都市"@ja;
    rdfs:label "京都府京都市上京区一条横町"@ja;
    ic:都道府県 "京都府"@ja;
    terms:hasPart
        [ ic:番地 560 ],
        [ ic:番地 562 ],
        [ ic:番地 563 ],
        [ ic:番地 564 ],
        [ ic:番地 565 ],
        [ ic:番地 566 ],
        [ ic:番地 567 ];
    schema:geo geoh:xn0x30;
    ont:parentFeature loa:京都府京都市上京区.

SPARQL エンドポイントにおける番地データの持ち方

2021年版の SPARQL エンドポイント提供データには番地(ic:番地)のトリプルがありませんでした。丁目エンティティの terms:hasPart は丁目番号と Geohash のみを持つブランクノードで構成されていました。

2021年版(番地なし)

loa:三重県いなべ市大安町中央ケ丘
    ...
    terms:hasPart
        [ ic:丁目 1; schema:geo geoh:xn1pdvee3 ],
        [ ic:丁目 2; schema:geo geoh:xn1pdyh1u ],
        [ ic:丁目 3; schema:geo geoh:xn1pdvcyz ];

2026年版では、丁目エンティティおよび丁目なし町丁目エンティティの terms:hasPart番地のブランクノードが追加されました。番地エンティティは独立した IRI を持たず、[ ic:番地 N ] 形式のブランクノードとして親エンティティに内包されます。

2026年版(番地をブランクノードで保持、丁目なし)

丁目を持たない町丁目では、番地ブランクノードを町丁目自身の terms:hasPart に直接列挙します(例: 三重県いなべ市北勢町下平)。

    terms:hasPart
        [ ic:番地 1126 ],
        [ ic:番地 1153 ],
        [ ic:番地 1154 ],
        [ ic:番地 1211 ];

2026年版(番地をブランクノードで保持、丁目あり)

丁目を持つ町丁目では、番地ブランクノードは町丁目に直接ではなく、各丁目ブランクノードの内側の terms:hasPart にネストされます(例: 三重県いなべ市大安町中央ケ丘。詳細は丁目あり町丁目の例を参照)。

    terms:hasPart
        [ ic:丁目 1; schema:geo geoh:xn1pdve;
          terms:hasPart [ ic:番地 2971 ], [ ic:番地 2972 ], [ ic:番地 2974 ], [ ic:番地 2975 ], [ ic:番地 2979 ], [ ic:番地 2983 ] ],
        [ ic:丁目 2; schema:geo geoh:xn1pdyh;
          terms:hasPart [ ic:番地 1212 ], [ ic:番地 1213 ], ... ],
        [ ic:丁目 3; schema:geo geoh:xn1pdy1;
          terms:hasPart [ ic:番地 1398 ], [ ic:番地 1415 ], ... ];

小字(koaza)付きの番地は ic:番地補足 プロパティを追加したブランクノードになります。

    terms:hasPart
        [ ic:番地補足 "北川原"; ic:番地 802 ],
        ...

この変更により、SPARQL を通じて「ある丁目に含まれる番地の一覧を取得する」「特定の番地を持つ丁目を検索する」といったクエリが実行できるようになりました。

利用可能なプロパティ

SPARQLエンドポイントでは以下のプロパティが利用可能です。座標・ポリゴンデータは含まれません。

プロパティ 説明 利用可否
a ic:住所型 エンティティ型
rdfs:label 住所の表記
ic:都道府県 都道府県名
ic:市区町村 市区町村名(郡あり市区町村は郡名ありの表記のみ)
ic:区 行政区名(政令市のみ)
schema:geo Geohash(都道府県:4桁、市区町村・行政区:5桁、町丁目:6桁、丁目・番地:7桁)
schema:sameAs Wikidata エンティティ URI ✅(都道府県・市区町村・行政区)
ont:parentFeature 親エンティティの IRI ✅(市区町村以下)
terms:hasPart 子エンティティ(ブランクノード) ✅(都道府県〜町丁目)
ic:丁目 丁目番号(丁目ブランクノード内)
ic:番地 番地番号(番地ブランクノード内)
ic:番地補足 小字・通称名(番地ブランクノード内、存在する場合のみ)
wgs:lat / wgs:long 緯度経度 ❌(含まれない)
geosp:asWKT ポリゴン境界データ ❌(含まれない)
ic:表記 住所の表記(別名) ❌(rdfs:label に統合)
ic:住所コード / ic:市区町村コード / ic:都道府県コード 各種識別コード ❌(含まれない)

SPARQLクエリ例

各クエリ例では以下のプレフィックスを使用します。

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX terms: <http://purl.org/dc/terms/>
PREFIX ont:   <http://www.geonames.org/ontology#>
PREFIX schema:<http://schema.org/>
PREFIX geoh:  <http://geohash.org/>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd:    <http://www.wikidata.org/entity/>

都道府県の一覧を取得

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?pref ?label WHERE {
  ?pref a ic:住所型;
        rdfs:label ?label.
  FILTER NOT EXISTS { ?pref ic:市区町村 ?m }
}
LIMIT 100

市区町村の一覧を取得(都道府県を指定)

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX ont:   <http://www.geonames.org/ontology#>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?muni ?label WHERE {
  ?muni a ic:住所型;
        rdfs:label ?label;
        ont:parentFeature loa:東京都.
}
LIMIT 100

町名の一覧を取得(市区町村を指定)

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX ont:   <http://www.geonames.org/ontology#>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?town ?label WHERE {
  ?town a ic:住所型;
        rdfs:label ?label;
        ont:parentFeature loa:東京都新宿区.
}
LIMIT 100

住所文字列で検索(部分一致)

rdfs:label(住所の表記)に対して CONTAINS を使うことで、地名の一部が一致するエンティティを検索できます。都道府県を絞り込まずに全件に対して部分一致検索をかけると負荷が高くなるため、ic:都道府県 で対象を絞り込むことを推奨します。

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?address ?label WHERE {
  ?address a ic:住所型;
           ic:都道府県 "東京都"@ja;
           rdfs:label ?label.
  FILTER(CONTAINS(?label, "永田町"))
}
LIMIT 100

丁目なし町丁目の番地を取得

丁目を持たない町丁目の番地一覧を取得します。
terms:hasPart の直下に ic:番地 を持つブランクノードが格納されています。

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX terms: <http://purl.org/dc/terms/>

SELECT ?banchi WHERE {
  loa:大阪府大阪市北区角田町 terms:hasPart [ ic:番地 ?banchi ].
}
LIMIT 100

丁目あり町丁目の番地を取得

丁目を持つ町丁目では、丁目ブランクノードの中に番地ブランクノードがネストされています。

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX terms: <http://purl.org/dc/terms/>

SELECT ?chome ?banchi WHERE {
  loa:東京都新宿区歌舞伎町
      terms:hasPart [ ic:丁目 ?chome; terms:hasPart [ ic:番地 ?banchi ] ].
}
LIMIT 100

丁目ごとの完全な住所表記で番地を取得

丁目ブランクノードは rdfs:label を持たないため、丁目を含めた完全な住所表記(例: 東京都新宿区歌舞伎町1丁目)で出力したい場合は、町丁目の rdfs:label と丁目番号を CONCAT で組み立てます。?chome を固定しないため、1丁目・2丁目・3丁目…とすべての丁目に自動的に対応します。

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX terms: <http://purl.org/dc/terms/>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?address ?banchi WHERE {
  loa:東京都新宿区歌舞伎町
      rdfs:label ?townLabel;
      terms:hasPart [ ic:丁目 ?chome; terms:hasPart [ ic:番地 ?banchi ] ].
  BIND(CONCAT(?townLabel, STR(?chome), "丁目") AS ?address)
}
LIMIT 100

特定の丁目のみに絞り込みたい場合は FILTER(?chome = 2) のように条件を追加してください。

小字・通称名(番地補足)付き番地を取得

一部地域では ic:番地補足 に小字・通称名が格納されています。

丁目なし町丁目の場合(例: 大阪府豊能郡豊能町寺田):

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX terms: <http://purl.org/dc/terms/>

SELECT ?koaza ?banchi WHERE {
  loa:大阪府豊能郡豊能町寺田
      terms:hasPart [ ic:番地 ?banchi; ic:番地補足 ?koaza ].
}
LIMIT 100

Wikidata と連携

都道府県・市区町村・行政区には schema:sameAs として Wikidata エンティティ URI が付与されています。

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX terms: <http://purl.org/dc/terms/>
PREFIX schema:<http://schema.org/>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd:    <http://www.wikidata.org/entity/>

SELECT ?muni ?label ?wikidata WHERE {
  ?muni a ic:住所型;
        rdfs:label ?label;
        ic:都道府県 "東京都"@ja;
        schema:sameAs ?wikidata.
  FILTER NOT EXISTS { ?muni ic: ?w }
  FILTER(STRSTARTS(STR(?wikidata), STR(wd:)))
}
LIMIT 100

Geohash で近隣住所を検索

Geohash の前方一致で特定エリア内の住所を絞り込めます(Geohash が一致するほど近い位置)。例は、東京都千代田区周辺の住所を検索しています。
※ 以下のクエリは実行に時間がかかります。状況によりタイムアウトする可能性があります。

PREFIX loa:   <https://uedayou.net/loa/>
PREFIX ic:    <http://imi.go.jp/ns/core/rdf#>
PREFIX schema:<http://schema.org/>
PREFIX geoh:  <http://geohash.org/>
PREFIX rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?town ?label ?geo WHERE {
  ?town a ic:住所型;
        rdfs:label ?label;
        schema:geo ?geo.
  FILTER(STRSTARTS(STR(?geo), STR(geoh:xn76u)))
}
LIMIT 100

利用上の注意

SPARQL は柔軟な検索が可能な一方、クエリの内容によっては結果を返すまでに時間がかかったり、タイムアウトする場合があります。サーバに負荷がかかるような複雑なクエリ(絞り込み条件のない全件検索、深くネストしたパターンなど)の使用は控えてください。

また、大量のアクセスが確認された場合は、エンドポイントに対してアクセス制限をかける可能性があります。あらかじめご了承ください。

活用事例

住所LODは、行政区単位のポリゴンデータを Web API 経由で取得できる点を活かし、実際のプロダクト開発にも活用されています。

選挙ポスターマップ(2024年東京都知事選挙)

2024年の東京都知事選挙では、候補者の一人である安野たかひろ氏の選挙運動において、都内約1万4千箇所の掲示板へのポスター貼り付け進捗を可視化する「選挙ポスターマップ」が開発されました。開発の経緯は以下の記事で詳しく紹介されています。

※ 記事執筆当時の名称は「Linked Open Addresses Japan」ですが、現在の「住所LOD」にあたります。

このプロジェクトでは、区市町村ごとのポスター貼り付け完了率を地図上にヒートマップとして表示するため、各区市町村のポリゴンデータが必要でした。ここで住所LODが活用されています。記事では採用理由を次のように説明しています。

また、区市町村別の進捗ヒートマップには Linked Open Addresses Japan の行政区ポリゴンデータを使用しました。地名表記に多少揺らぎがあっても、狙った地区のGeoJSONを返してくれるAPI仕様となっていたため、とても使いやすかったです。

住所LODでは多少の表記のゆらぎがあっても目的の区市町村の GeoJSON を取得できる点が評価され、手作業によるデータ正規化の手間を省く形で採用されました。

システム構成

Google Spreadsheet に集約されたボランティアからの報告データ(LINE Bot 経由)を Google Apps Script で CSV 出力し、Python(pandas)で加工。住所LOD から取得した区市町村ポリゴン(GeoJSON)と組み合わせて Leaflet 上にヒートマップとして可視化し、Netlify でホスティングする、という構成です。cron による5分間隔の自動デプロイにより、ボランティアの報告がほぼリアルタイムに地図へ反映される仕組みになっていました。

成果

住所LODの区市町村ポリゴンデータを活用することで、表記ゆれの多い地名情報を正確な地理座標へ自動変換し、約1万4千箇所のポスター貼付状況を区市町村単位でリアルタイムに可視化することができました。開発からリリースまでわずか4日間という短期間で実現されています。

住所LOD GeoJSON Downloader

行政区画のポリゴンデータをブラウザ上で選択してダウンロードできるツールです。都道府県・市区町村・行政区を選び、地図上のポリゴンをクリックして住所を確認しながら GeoJSON ファイルを取得できます。

都道府県選択後、市区町村単位のポリゴンが地図に表示された状態

2026年7月のリニューアルで、過去バージョン(2021年版など)のデータも選択してダウンロードできるようになったほか、UIも刷新されました。本記事で述べた simplify 圧縮率の見直しとあわせて、ポリゴンの網羅性を保ちながら重なりを抑制する精度向上も行われており、住所LODのデータ更新をいち早く活用したツールです。

住所 de ジグソーパズル

都道府県・市区町村・町丁目といった行政区画の形を1ピースに見立てたブラウザ用ジグソーパズルです。

遊び方:ドラッグして配置するだけ

やさしい・ふつう・むずかしい・エキスパートの4段階の難易度(10〜463ピース)が用意されており、拡大表示やヒントモードなどゲームとしての完成度も高い作品です。住所LOD側でポリゴンの網羅性を維持したまま重なりを抑制する改善を行ったことで、ピース同士の隙間や重複が減り、パズルとして成立する精度が実現されています。

住所LOD MCPサーバー

Claude Desktop や Claude Code など MCP(Model Context Protocol)に対応したクライアントから、住所LODのデータを直接検索・取得できるローカル実行型の MCP サーバーです。

東京23区の人口を色分けしたコロプレス図(Leaflet)

部分一致による住所検索、都道府県→市区町村→町丁目の階層検索、丁目配下の番地一覧取得、緯度経度からの逆ジオコーディング、複数住所の一括 GeoJSON 取得など、8種類のツールを提供しています。住所LOD自体が認証不要・オープンライセンスのデータソースであることを活かし、AI エージェントが追加のセットアップなしに日本の住所・地理情報へアクセスできる点が特徴です。

前バージョンへのアクセス

今回の更新後も、旧バージョン(2021年版)のデータに引き続きアクセスできるよう、URL を変更して提供しています。

バージョン URL
最新バージョン(2026年版・本更新) https://uedayou.net/loa/
旧バージョン(2021年版) https://uedayou.net/loa/2021/

旧バージョンのデータは /2021/ 以下のパスで引き続き参照可能です。

Webサイトの簡素化

最新版オープンデータへの継続的な更新を容易にするため、Webサイトの表示機能を整理しました。

廃止した機能

  • 周辺情報の表示停止:地図上に重畳表示していた近隣の施設・スポット情報
  • Wikipedia記事の表示停止:各住所エンティティに関連付けていた Wikipedia の記事内容

これらはデータ取得・表示のために外部 API に依存していた機能です。オープンデータの更新サイクルへの追従を優先する観点から、本体の住所・位置情報の提供に集中する形にしました。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?