図書館オープンデータを使って図書館データポータルサイトを作りました

国立国会図書館では、さまざまな[オープンデータ](https://www.ndl.go.jp/jp/dlib/standards/opendataset/index.html)が公開されています。

その中に[「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD](https://www.ndl.go.jp/jp/dlib/standards/opendataset/index.html#ISIL_trial)があります。

これは、日本全国の図書館に関する情報が網羅的にまとめられているRDFデータとなります。

提供されているデータはXMLファイルなので個別にデータを取得するためにはプログラムなどで処理する必要があるので、Webブラウザで各データを見やすく提供するWebサイト「[図書館施設データポータル](https://uedayou.net/ld/library/)」を作成しました。

ここでは、 [図書館施設データポータル](https://uedayou.net/ld/library/) を紹介します。

https://uedayou.net/ld/library/

## 図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD とは

元データは、「図書館及び関連組織のための国際標準識別子（ISIL）」という図書館等につけられる国際的な識別子で、国立国会図書館では、このISILが付与される図書館の情報をオープンデータ(XMLファイルのRDFデータ)として提供しています。

「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD」には、図書館の基本的な情報(名称、Webページ、住所、連絡先、位置情報など)が含まれます。そのほかにDBpediaの統一図書館のページへのリンクや、ISIL以外の識別子(国際標準名称識別子)なども追加されいます。

詳しくは以下のページを参照してください。

**オープンデータセット#「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD**
<https://www.ndl.go.jp/jp/dlib/standards/opendataset/index.html#ISIL_trial>

## 図書館施設データポータル

 [図書館施設データポータル](https://uedayou.net/ld/library/) は、図書館及び関連組織のための国際標準識別子（ISIL）」試行版LODを利用する個別図書館の情報をWebページとして閲覧可能なWebサイトです。

図書館施設データポータルでは、図書館を地域(都道府県・市区町村)や図書館種別ごとに分類しています。

図書館の種別には以下のものがあります。

- 公共図書館
- 国立図書館
- 大学図書館
- 学校図書館
- 専門図書館
- 類縁機関

都道府県・市区町村別の図書館リストページには、図書館の種別(公共図書館や大学図書館など)を選択できるリンクがあります

例えば、**公共図書館** をクリックすると、該当地域にある公共図書館のリストと地図が表示されます。

そこでリストや地図から見たい図書館をクリックすると、個別の図書館のページに遷移します。

日本にある図書館の数は多く、これら図書館種別の活用により効率よく絞り込みや目的の図書館が発見できると思います。

### トップページ

トップページでは、地図上、都道府県、蔵書数の多い図書館の3つからそれぞれブラウジングが可能です。

[![トップページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/a9ea90d2-5ddb-f874-f9e4-ca918b36e967.jpeg)](https://uedayou.net/ld/library/)

地図上から各図書館を探すことができます。例えば、今いる場所の近くの図書館を探したい場合、地図を今いる場所の近くでズームして図書館をクリックしてください。リンクをクリックするとその図書館のページに移動します。

![地図から図書館を探す](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/91d67be8-ce88-e4d6-c795-1ea242e04897.jpeg)

都道府県リストから各都道府県をクリックすると、都道府県別の図書館を探すことができます。

![地域で絞り込む](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/93416716-b330-51a3-0b00-8e2db8d7bab9.jpeg)

蔵書数の多い図書館を最下部に表示しています。クリックするとその図書館のページに移動します。

![蔵書数の多い図書館](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/758903b2-4edd-f008-3be9-d77deca0fae7.jpeg)

### 図書館リスト

図書館リストページでは、図書館の種別(公共図書館や大学図書館など)やその地域にある図書館のページに移動できます。
トップページと同様に地図上から図書館を探すことができます。
都道府県の図書館リストであれば、市区町村レベルの図書館リストページに移動することもできます。

[![東京都のページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/fe73d4a6-b208-8cef-0fe5-33700dc8b85e.jpeg)](https://uedayou.net/ld/library/latest/東京都)

https://uedayou.net/ld/library/20211003/東京都

### 図書館ページ

図書館の詳細な情報を表示します。
「「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD」とほぼ同じデータが閲覧できます。
それ以外に、該当図書館の同一図書館についての別サイトのページへのリンクも存在すればリンクされています。リンク先は以下の通りです。

- [Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8)
- [Wikidata](https://www.wikidata.org/wiki/Wikidata:%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8)
- [DBpedia Japanese](https://ja.dbpedia.org/)
- [CiNii Books](https://ci.nii.ac.jp/books/)
- [カーリル](https://calil.jp/)
- [Web NDL Authorities](https://id.ndl.go.jp/auth/ndla/)

それ以外に、周辺地図、最寄り駅、近隣図書館も参照できます。一部図書館には図書館の外観画像も表示されます。

[![東京都立中央図書館のページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/455b016a-74b9-fe49-7325-bc3bac8d2950.jpeg)](https://uedayou.net/ld/library/20211003/JP-1000907)

https://uedayou.net/ld/library/latest/JP-1000907

### 図書館名で検索

ナビゲーションバーにあるテキストフィールドから図書館名でキーワード検索することができます。

![キーワード「東京都」での検索結果](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/db2a580c-928a-eb5b-9f53-954d6990171c.jpeg)

### データモデル

図書館施設データポータルのデータは、「「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD」と同様にRDFとして保持しています。また、上述しましたが、データモデルも「「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD」とほぼ同じです。
「「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LOD」のデータモデルの詳細は以下を参照してください。

**試行版LODのデータモデル**
https://www.ndl.go.jp/jp/dlib/standards/opendataset/ISILdatamodel.pdf

**「図書館及び関連組織のための国際標準識別子（ISIL）」試行版LODについて**
https://www.ndl.go.jp/jp/dlib/standards/opendataset/aboutISIL-LOD.txt

図書館施設データポータルでは、上記以外に以下のデータを存在するものについては追加しています。

| データ           | プロパティ                                                                                    | 詳細                                                                                             |
| ------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| Wikidata URI  | [owl:sameAs](http://www.w3.org/2002/07/owl#sameAs)                                       | [Wikidata](https://www.wikidata.org/wiki/Wikidata:Main_Page)の該当データのURI                         |
| DBpedia URI   | [owl:sameAs](http://www.w3.org/2002/07/owl#sameAs)                                       | [DBpedia](https://ja.dbpedia.org/)の該当データのURI                                                   |
| カーリル URL      | [owl:sameAs](http://www.w3.org/2002/07/owl#sameAs)                                       | [カーリル](https://calil.jp/)の該当ページのURL                                                            |
| 住所LOD URI     | [org:hasSite](http://www.w3.org/ns/org#hasSite)/[ic:住所](http://imi.go.jp/ns/core/rdf#住所) | [Linked Open Addresses Japan](https://uedayou.net/loa/)の同一住所のURI                               |
| 共通語彙基盤 住所型データ | [org:hasSite](http://www.w3.org/ns/org#hasSite)/[ic:住所](http://imi.go.jp/ns/core/rdf#住所) | [imi-enrichment-address](https://github.com/IMI-Tool-Project/imi-enrichment-address)で変換した住所データ |
| 図書館画像         | [schema:image](http://schema.org/image)                                                  | 図書館の外観画像(あれば)                                                                                  |

これらのデータを直接見たい場合は、図書館のページのURL、例えば、

<https://uedayou.net/ld/library/20211003/JP-1000001>

に取得したいファイル形式の拡張子をつけて開いてみてください。そのページで利用しているデータが閲覧できます。

```
https://uedayou.net/ld/library/20211003/JP-1000001.json
```

### Web API

図書館施設データポータルでは、[SPARQ](https://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/REC-sparql11-query-20130321.html)LエンドポイントをWeb APIとして利用可能です。

Web API検索用ページ

https://uedayou.net/ldapinavi/ldlib

Web API(SPARQLエンドポイント)

```
https://uedayou.net/ld/library/api/sparql
```

SPARQLエンドポイントを直接利用する場合は、GETパラメータに以下を指定してください。

| パラメータ  | 値                                        | 必須  |
| ------ | ---------------------------------------- | --- |
| query  | UTF8でURLエンコードされたSPARQLクエリ                | 〇   |
| format | 取得したいファイル形式、`json`か` xml` (デフォルト:`json`) |     |

上記の**データモデル**セクションとSPARQLクエリの書き方のページ(たとえば、[こちら](http://uedayou.net/sparql-examples/)などを参考に利用してください。

### 活用事例

図書館施設データポータルでは、[Linked Open Addresses Japan](https://uedayou.net/loa/)(住所情報をオープンデータとして提供するWebサイト)へのリンクを追加していますが、Linked Open Addresses Japanからも住所の周辺情報の一つとして、図書館施設データポータルの図書館の情報を地図とリストに表示しています。

このように図書館の位置を地図に表示するような場合はとても便利だと思います。

[![東京都千代田区永田町のLinked Open Addresses Japanのページ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62575/a726bfd2-f231-dbf5-ec32-204829fca4d0.jpeg)](https://uedayou.net/loa/東京都千代田区永田町)

https://uedayou.net/loa/東京都千代田区永田町