書籍をテーマにWebサービス・アプリを開発する際に見ておくと良いこと

上記の記事にもあるように、弊社でもブッククラブに関連する機能開発を構想中で、 まずは書籍データ基盤の整備から進めています。 書籍データを取り扱う上で知っておくべきことや気をつける点についてまとめました。

書籍データの構成要素

書籍をテーマにしたサービスを公開する上で、本の識別やカテゴライズできるようにすることが重要です。そのために利用するデータについてご紹介します。

ISBN

ISBNは原則書籍に割り当てられた番号です。書籍ごとに「ほぼ必ずユニーク」1になります。 このISBNを使うことで同じタイトルでも著者が異なる書籍を一意に特定することができます。

ISBN10,13

ISBNはISBN10とISBN13があります。 ISBN10と13は互換性があり、相互に変換をすることが可能です。 原則2007年以降、ISBN13が利用されていますが、AmazonのURLだったりで一部ISBN10がまだ利用されていたりするので、ISBN10から13への変換はできるようにしておくと良いでしょう。

NDC(日本十進分類法)

NDCは図書館での図書を分類するための手法で、10進法で階層的に分類されています。 大分類(1桁)→ 中分類(2桁)→ 小分類(3桁)と細かくなっていきます。

簡単な例

意味 例(番号)内容
大分類9文学
中分類91日本文学
小分類913日本の小説・物語

現在は新訂10版としてNDC第10版が公開されています。

上記のNDCを用いてざっくりとした書籍に対してのカテゴリー分けであったり類似の書籍の傾向だったりを出すためのデータ基盤は作れそうです。

NDC10には著作権がある

ただし、具体的にNDCにある大分類、中分類、小分類が何か?というのは完全なオープンデータではなく著作権が存在します。なので、ChatGPTに聞いても答えてくれません。 NDC9は公開されており、こちらはライセンスさえ守れば利用できるものとなっています。

公開されているWeb API

どのWeb APIを利用すると良いかなどをいくつかざっくりまとめています。

openBD

ここが一番利用しやすいサービスです。まずここを利用することを考えると良いと思います。 APIについてもドキュメントもあり、レスポンスも安定しているので、安心して利用できると思います。

そのほかにも書籍データを取得できるWeb APIは存在しているので、下記表に特徴をまとめてみました。こちらも参考にしてみてください。

比較表

種類和書の書籍数書影の利用について利用条件そのほか
openBD⚪︎×(利用可能な書影は限定的)◎(書籍を紹介するということであれば問題なし。)・APIレスポンスが速い。
Google Books API▲(少しマイナーな和書は入っていないことも)▲(利用に制限)▲(有償のサービスに利用制限)
Amazon Product Advertising API⚪︎(未検証だが、Amazonに売られている書籍は全て網羅されている)◎(出版社と連携しているので、利用可能)▲(有償のサービスに利用制限)・利用規約についてはチェックが必要。
・利用可能になるまで審査が必要
国立国会図書館サーチ⚪︎▲(商用利用の場合は申請が必要)▲(商用サービスに利用制限、申請が必要)・ あまりサイトの安定性が良くない。
・レスポンスがXML形式の場合があり、JSON形式に比べてパース処理が面倒。
楽天ブックスAPI⚪︎◎(出版社と連携しているので、利用可能)▲(クレジットの表記が必要)・審査自体は不要。
・1秒に1回しかリクエストできない

おすすめの利用方法について

有償のサービスであれば下記のように使うのが理想と考えています。

openBDで基礎になる書籍データベースを作成し、他APIで補う

RDBMSやElasticSearchなどでの検索が必要な場合はopenBDからデータを取得して基礎となるデータベースを作成しましょう。

openBDの利用ガイドにもありますが、定期的にデータが更新されるような仕組みはあらかじめ実装しておきましょう。 NDCだったりはopenBDだけではデータが足りないこともあるので、 この時は国立国会図書館サーチを使って足りないメタデータであったりを取得するようにしましょう。

注意点

1. 書影(表紙)の権利関係

書影は著作権もあったり、本来であればSNSに書影をアップロードしたりということも黙認はされていますが、厳密には出版社の許諾が必要と権利関係も複雑です。 詳しいことは法律的な解説になってしまい責任が持てないので言及しませんが、 色々規約があるので、一度利用しているAPIなどの規約も確認してからサービス公開を行ったほうが良いでしょう。

2. APIの利用規約など

比較表にも記載しましたが、有償サービスの場合には利用できないことや申請が必要なことがあります。利用するデータの種類によって変わることがあるので、チェックした上でサービスの開発をすると良いでしょう。 例えば、楽天ブックスであれば書影の利用は問題ないですが、楽天ブックスへの商品URLに誘導する必要がある、クレジットを表示するなど、各サービスの利用規約をしっかり守りましょう。

まとめ

書籍データをベースにしたサービスはオープンデータがあるので幾分始めやすい土壌がありますが、 APIの規約が細かく決められていたり、書影の問題など考慮ポイントが基盤を作っていく上でわかりました。 これらの課題を回避した上で書籍データ基盤の整備を進めていこうと思います。

Footnotes

  1. ISBNが使いまわされるケースはごくわずかながらあるようです。https://stonebeach-dakar.hatenablog.com/entry/2016/11/29/205724