CA1677 – 図書館によるAPIの公開-PORTAの事例から- / 中嶋晋平

PDFファイルはこちら

カレントアウェアネス
No.298 2008年12月20日

 

CA1677

 

図書館によるAPIの公開-PORTAの事例から-

 

 

はじめに

 最近、GoogleやAmazonをはじめ、多くのウェブサービスがAPI(Application Programming Interface)を公開している。図書館界においても、OCLCが検索用API(1)や、メタデータ間のクロスウォーク(CA1552参照)を行うことのできるAPI(2)を公開するなど、その動きが少しずつ広まっている。

 一方で、APIがどのようなものであり、何が便利なのかについては、日本の図書館界ではまだあまり知られていないのではないかと思われる。

 そこで、本稿ではAPI、その中でも特にWeb APIについて簡単に紹介するとともに、国立国会図書館デジタルアーカイブポータル(PORTA)の外部提供インタフェースについて述べ、Web APIの公開の意義について考察する。

 

Web APIとは

 そもそもAPIとは、あるプログラムやソフト(以下、単にプログラムという)が別のプログラムの機能を呼び出して使うためのインタフェースのことを指す。このAPIの役割を図に表したのが図1である。

図 1 APIの役割

図 1 APIの役割

 あるプログラムAが、別のプログラムであるプログラムBの機能を使いたいとする。AはBのAPIを通じて、あらかじめ決められた手順で要求をすると(1:図中では丸囲み数字)、Bはその要求に対応して処理をする(2:図中では丸囲み数字)。Bはその結果を、APIを通じて、あらかじめ決まった形式でAへ返す(3:図中では丸囲み数字)。

 このように、それぞれのプログラムの間で仕事を依頼するために決まっている「手続き」がAPIである。APIを使えば、自分のプログラムに備わっていない機能を、自前で開発しなくても簡単に実現できる。逆に言えば、APIがない場合には、自前でその機能を開発しなければならない。そのため、文字を入力したり、その入力した文字を画面に表示したりするといった、多くの人が共通で利用すると考えられる機能については、OS等が様々なAPIを提供し、簡単に利用できるようになっている。

 こうしたAPIは、元々は同じコンピュータの中にある別のプログラムの機能を利用するために用意されていたが、やがてインターネットが普及してくると、Web APIが登場した。これはインターネットを通じてウェブ上で展開しているサービスの機能を利用できる(図1の1、3のやり取りをインターネットを通じて行う)APIである。本稿の最初で挙げた、GoogleやAmazon、OCLC等が公開しているのも、このWeb APIと呼ばれる種類のものである。例えばAmazon Web サービス(3)では、インターネットを通じてRESTという形式でAmazonのWeb APIへ表示させたい書籍のISBN等を渡すと(1:図中では丸囲み数字)、Amazon側で該当の書籍の情報を準備し(2:図中では丸囲み数字)、またインターネットを通じてXML形式でその書籍の情報(例えば書誌、カスタマーレビュー、表紙画像のURL、関連商品の情報等)を返してくれる(3:図中では丸囲み数字)、というように使うことができる。

 

Web APIを使うメリット
1. 利用する側にとってのWeb API

 Web APIは、インターネットを通じて他システムの機能が容易に利用できること、その機能の多くが実サービスで使われており実用的であること、無料で公開されているものが多いこと、といった理由から、広く使われている。

 とりわけ大きなメリットは、自分が必要とする機能を提供してくれるAPIが公開されていれば、同じ機能を重複して開発する必要がなく、開発にかかるコストを抑えることができるという点である。特に、開発に高度なスキルが必要な機能、例えば厳重なセキュリティを持つユーザ認証機能を独自に開発する場合には相応のコストが必要となるが、Web APIを通じてOpenID(4)のようなサービスを利用することによって、高度なユーザ認証機能を簡単に自分のシステムに実装することができる。

 また個人では持ちえないようなデータを使うことができる点も大きなメリットである。衛星写真はもちろん、全世界の詳細な地図データを個人的に持っている人はほとんどいないと思われる。しかし、例えばGoogle Maps(CA1607参照)のサービスを使うことによって、このようなデータをあたかも自分のシステムにあるかのように使うことができる。

2. 提供する側にとってのWeb API

 提供する側にとってもメリットはある。

 まず、自らが提供するサービスの利用者の増加が挙げられる。自らのウェブサイトに直接訪れる利用者に加えて、提供するWeb APIを使って構築された別のサービス経由の利用者が増えるためである。もちろん、Web APIを使って作られた他のサービスの出来が良ければ、自らのウェブサイトの訪問者が減ることもあるかもしれない。しかし、自らのウェブサイトの利用者と、他のサービスを経由した利用者とを合わせれば、総体としては、利用が増えることが期待できよう。

 また、提供するWeb APIを使って構築された別のサービスからヒントを得て、自らのサービスをより豊かにするよう改良をすることもできるだろう。従来はサービスをただ利用するだけだった利用者が、Web APIというサービスに積極的に関わることのできる手段を使うことによって、より良い(場合によっては本家のサービスよりもずっと良い)ユーザインタフェースを公開するケースもある。また、複数のWeb APIを組み合わせる「マッシュアップ」といった手法で、思いもよらぬ新しいサービスとして昇華することもある。これらを通じて、自分たちのサービスの使われ方、足りない部分を知ることができるのである。

 

PORTAのWeb API

 次に、実際のWeb API公開の事例として、PORTAを紹介したい。

 国立国会図書館(NDL)では、日本国内の各機関が提供しているデジタル情報の保管庫「デジタルアーカイブ」にアクセスする総合的なポータルサイトとして、PORTAを提供している(E706参照)。2008年11月現在、NDLが提供しているものも含め29のデジタルアーカイブが、検索対象となっている。

 このPORTAでは、多様な利用方法を可能とするため、「外部提供インタフェース」として2種類のWeb APIを実装している。外部システム等からPORTAに対して出された検索リクエストに対し、(1)検索対象のデジタルアーカイブの検索結果を提供する検索用API(E777参照)と、(2)同様のリクエストに対しメタデータを提供するハーベスト用APIである。(1)は2008年3月末からすでに提供を開始しており、(2)は2008年内に提供を開始する予定である。

 表1、表2はそれぞれ、検索用API、ハーベスト用APIがサポートしているプロトコルである。なお、APIを通じてアクセス可能とするか否かは、個々のデジタルアーカイブごとに判断していただいているため、PORTAのウェブサイトで検索できるデジタルアーカイブの全てがWeb APIを通じてアクセスできるというわけではない。各プロトコルの仕様および利用できるデジタルアーカイブの詳細については「外部提供インタフェース仕様書」(5)をご覧いただきたい。

表1 検索用APIのプロトコル

表1 検索用APIのプロトコル

出典:「国立国会図書館デジタルアーカイブポータル(PORTA) 外部提供インタフェース仕様書 」Ver.1.2 (5)を元に筆者が作成。



表2 ハーベスト用APIのプロトコル

表2 ハーベスト用APIのプロトコル

出典:2008年11月時点で予定されている内容を元に筆者が作成。

PORTAの活用事例

 PORTAの外部提供インタフェースの利用に際しては基本的には利用申請の必要はない(営利目的での利用の場合は利用申請をいただき、利用可否について判断させていただいている)が、利用状況を把握し、今後の運用に活かすため、目的等を教えていただくようお願いをしている。公開から半年経った2008年11月末現在で10件の連絡をいただいている。傾向としてはOpenSearch、OpenURL(CA1482参照)の利用申請が多い。

 例えば、広島市立図書館は、広島に関わりのある文学者の著作を紹介するページで、自館のOPACへのリンクと並べて、 PORTAへのリンク(OpenURL形式)を提供している(6)。また、電子書籍の検索エンジンを提供しているhon.jp(7)では、その携帯電話版サービスにおいて、GPSから取得した利用者の位置情報と、OpenSearchでPORTAから取得したISBNを使って、利用者がいる付近の書店の在庫情報を検索し、紙の書籍の販売へと誘導するようなサービスも行っている。

 その他にNDLが把握しているものとしては、Wikipediaが利用者向けに文献資料情報の入手先を案内しているページで、NDL蔵書目録および農林水産関係試験研究機関総合目録を対象とした検索用のリンク(OpenURL形式)を掲載している例がある(8)

 

Web API公開の意義~PORTAの事例から

 最後に、PORTAの事例から、先に挙げたWeb APIのメリットをもう一度振り返ってみたい。

 まず、Web APIを利用する側のメリットとして、開発コストの低減、外部データの利活用という点を挙げた。PORTAのWeb APIにおいても、表1、表2に挙げたようにデファクトスタンダードとなっている通信プロトコルを採用していること、また利用できるコンテンツが連携先とNDLのデータ合わせて約950万件あることを考えると、利用者にとって魅力あるWeb APIのひとつと言えるのではないだろうか。

 Web APIを提供する側のメリットとしては、利用者の増加、サービス改良のヒントといった点を挙げた。これも、図2に見るようにPORTAウェブサイトの利用が減ることなく、外部提供インタフェース公開後はその利用分が単純に上乗せとなっている。また活用事例で紹介したように、様々な形で利用が行われている。

図 2 PORTAの検索件数

図 2 PORTAの検索件数

 それらに加えて、NDLのメタデータ統合検索システムという性質から、PORTAのWeb API公開には以下の2つの大きな意味があると考えられる。

 1つは、Web APIの提供によって、PORTAでコンテンツを提供する機関と利用者との間の「取引コスト」を低減できたことである。PORTAを提供しているNDLは、PORTAにコンテンツ(個々のデジタルアーカイブ)を提供している各機関に成り代わる形で、各コンテンツにアクセスできるAPIを提供している。これにより、利用者はPORTA用のWeb APIを利用するだけで、各機関のコンテンツを利用することができる。また各機関も、独自にAPIを開発することなく利用者にデータを提供できるほか、PORTAのWeb APIを利用して、他機関と連携することも可能になっている(9)。PORTAが名前の由来のとおり、コンテンツの提供者と利用者、またコンテンツの提供者同士を結ぶ「入り口」、「門」の役割を果たしていると言えよう。

 もう1つは、Web APIの公開によるデータ利活用促進の先例となったことである。他のデジタルアーカイブ等がWeb APIを公開する際の参考例の1つとして見ていただけよう。今後、Web APIによるデータ提供を行う機関・システムが増えると、PORTAもWeb APIを通じてそれらと連携できる。また、利用者によるマッシュアップも可能となる。そのような情報環境の整備に資するべく、PORTAでは今後も、積極的にWeb APIに関する情報を提供していきたいと考えている。

 Web APIの公開は義務ではない。しかし、各機関のデータやサービスをより大勢の人たちに、提供側の従来のサービス観の中にとどまらず広く活用してもらうためには、Web APIの公開は非常に有益であると言えるのではないだろうか。

関西館電子図書館課:中嶋晋平(なかしま しんぺい)

 

 

(1) OCLC. “SearchAPIDetails”. WorldCat Developers’ Network.
http://worldcat.org/devnet/wiki/SearchAPIDetails, (accessed 2008-10-01).

(2) OCLC. “OCLC Crosswalk Web Service ? API”.
http://xwalkdemo.oclc.org/api.html, (accessed 2008-10-01).

(3) Amazon.com. “Webサービス”.
http://www.amazon.co.jp/gp/feature.html/?docId=451209, (参照 2008-10-01).

(4) OpenID Foundation. “OpenID.net”.
http://openid.net/, (accessed 2008-10-01).

(5) 国立国会図書館デジタルアーカイブポータル(PORTA) 外部提供インタフェース仕様書 Version 1.2. 国立国会図書館, 2008, 29p.
http://porta.ndl.go.jp/wiki/attach/外部提供インタフェースについて/externalInterface_ver1.2.pdf, (参照 2008-10-01).

(6) 広島市立図書館. “広島市立図書館 – 特別コレクション – 広島文学資料”.
http://www.library.city.hiroshima.jp/collection/hirobun.html, (参照 2008-10-01).

(7) hon.jp. “hon.jp”.
http://hon.jp/, (参照 2008-10-01).

(8) Wikimedia Foundation. “Wikipedia:文献資料”. Wikipedia.
http://ja.wikipedia.org/wiki/Wikipedia:文献資料, (参照 2008-10-01).

(9) 例えば、NDLの近代デジタルライブラリーと国立情報学研究所(NII)のWebcat Plusとの連携のような事例が挙げられる。
国立情報学研究所. “Webcat Plusとは/収録データについて”.
http://webcatplus.nii.ac.jp/about/data.html#kindeji, (参照 2008-10-01).

 


中嶋晋平. 図書館によるAPIの公開-PORTAの事例から-. カレントアウェアネス. 2008, (298), p.10-12.
http://current.ndl.go.jp/ca1677