書籍コードとアマゾンAPIによる検索

August 27, 2009 – 12:35 pm

アマゾンAPIにより、ISBNなど書籍コードを用いて書籍を検索することができる。このブログでも書籍検索について書いてきたところだ。しかし、書籍コードの体系とアマゾンAPIによる取り扱いについて曖昧なままになっていた。書籍コードとアマゾンAPIとの関係について整理しておいた。

書籍コード書籍コード: 本を購入すると、裏表紙に右図のようなバーコードとコード番号がある。それぞれ、どのような意味があるのかWeb上の解説を参考にしながら整理してみた。

この図は、私の本棚にあった「マスタリングTCP/IP 入門編(第2版)」(オーム社:1998年5月25日発行)に付されているものである。私が理解した範囲で、それぞれが何を表しているか見てみた。

まず、①の「ISBN4-274-06257-0」だ。これは良く耳にするISBN(International Standard Book Number)だ。ハイフォンで区切られたそれぞれの記号/数字には以下の意味があるという:

ISBN : フラッグ
4 : グループコード
274 : 出版社コード
 06257 : 書名コード
0 : チェック・デジット

ここでフラッグISBNを除いた10桁の数字がISBNコードである。

次に、②の「C3000 ¥2200E」の前半部分C3000は、Cコードと呼ばれている「日本図書コード」の分類コードだ。その数字はそれぞれ

C : フラッグ
3 : 販売対象コード (一般)
0 : 発売形態コード (単行本)
00 : 内容コード   (総記)

に対応する。後半の ¥2200E は見ての通り、本の価格だ。

さて、図の右側にある2段のバーコードであるが、上段の③、「9784274062575」である、これを①のISBNコードと比較すると、③のコード番号は、最初の三桁の数字「978」を①のISBNコード番号の頭に付け加え、最後の数字(チェック・デジット)が異なるものであるということが分かる。

この13桁のコード番号も①の10桁のコードと同様、ISBNコードである。2007年1月から、従来用いられてきた10桁のISBNコードは、接頭辞(978もしくは979)を追加し、最後の一桁、チェック・デジットを再計算したものを正式なISBNコードとして採用することになった。前者の10桁のISBNをISBN-10、後者をISBN-13と呼んでいる。

③の13桁のコードは、ISBNのコード体系に加えて、JAN(Japanese Article Number)コードあるいはEAN(European Article Number)コードと呼ばれる商品コードにも対応している。JAN/EANコードは書籍に限らず、より広範な商品のコード番号であるが、書籍に対しては、最初の3桁の978もしくは979の接頭辞が付けられている。

最後の図④のバーコードの番号「1923000022003」についてである。これは、②のCコードと価格情報に対応する。最初の接頭辞「192」に続いて②の4桁のCコード、そして価格を表す5桁の数字「2000」が続き、最後にチェックディジット3が付け加えられている。

ASINとISBNの関係: アマゾンでは、独自の商品コードASIN(Amazon Standard Identification Number)を採用している。書籍については、現在のところ、10桁のいわゆるISBN-10をASINに割り振っている様だ。

2007年1月以降発行の書籍のISBN値は13桁(ISBN-13)に統一された(2年間の猶予期間があった)が、アマゾン独自の商品コードASINは、13桁のISBN値から接頭辞(978)を取り除いた10桁で、最終桁のチェックデジットを再計算した古い規格のISBN(ISBN-10)を用いている。

2009年1月以降に発行された最新刊の書籍をアマゾンで検索してみると、その「登録情報」の欄には、ISBN-13とアマゾンが再計算したISBN-10が併記されている。

アマゾンAPIによる書籍検索: では、現在、アマゾンAPIを用いた書籍の検索では、書籍コードはどのように取り扱われているのか?

コード名から商品を検索するオペレーションItemLookupにおいては、パラメータIdType、ItemId、SearchIndexを指定することにより書籍を含む商品を検索することができる。書籍の検索を行おうとする場合、IdTypeとして、ASIN、ISBN、EANの3種のパラメータを用いることができる。

IdType として ASINを用いる場合、商品種類を特定するSearchIndexは使用しない。アマゾンの商品コード体系では、個々のASINコートが商品にユニークに対応しており、SearchIndexを使用する必要がないということだ。検索のRequestにSearchIndexを含めると、検索できない。ItemIdに与える書籍のコード名は、上記のISBN-10を用いればよい。

IdTypeをISBNとする場合、SearchIndexはBooks(ロケールが日本で海外出版社の書籍を検索する場合はForeignBooks)を指定し、ItemIdにISBNコード番号を与えることになる。ISBNコード番号として、ISBN-13、ISBN-10のどちらを指定しても、現在のところ、検索することができる。

IdTypeがEANの場合、SeachIndexはBooksとし、ItemIdはISBN-13を指定する。EANのコード体系における書籍コードはISBN-13と等価であることを反映している。なお、アマゾンのテクニカルドキュメントでは、IdTypeとしてJANも使えることになっているが、実際は許されていない。書籍に限らず、JANコードで商品を指定しようとする場合には、IdTypeとしてEANを指定することになる。

参考にしたサイト:
http://www.asahi-net.or.jp/~AX2S-KMTN/bcodes.html
http://www.isbn-center.jp/whatsnew/kikaku.html#cf1


  1. 2 Trackback(s)

  2. Jun 1, 2011: ISBNコードの確認・変換用PHP関数 | Yama's Memorandum
  3. Oct 28, 2011: 自宅サーバー構築・覚書きリスト | Yama's Memorandum

Post a Comment