ブログ

ほんをとうろくしています(マンガの)

2015年11月20日 19:45 | ブログ | | 336 views

このエントリーをはてなブックマークに追加
はてなブックマーク - ほんをとうろくしています(マンガの)
reddit にシェア
Pocket
LINEで送る

20151120_c00
前回のバツでキュー子ちゃんの書籍登録代行中なキューブくん

※フィクションです。


こんばんは、やのっちです。
前回から引き続き蔵書管理ネタですが、今回は少々システムっぽいお話をしようかなと思います。

さっそくですが、皆さんは前回最後に登録していた「悪い本」を覚えてますか?
バーコード表示もなく、ISBN検索も番号が古くて使えず、結局Web検索しないと登録出来なかったコレです。


悪い本悪いヤツが出てくる本

10桁から13桁に超進化を果たしたISBNコード。
周囲のメガ進化についていけなかった10桁ISBNコードは、もはや蔵書マネージャーで検索すらさせてもらえません。

そんな10桁ISBNを残して進化した13桁ISBNですが、完全施行されたのは2007年。
まだ10年も経っていません。

……ホントか?
もっと昔から本にバーコードがついてた気がするぞ?

と、本棚から古そうなのを選んで引っ張りだしてみると、だいたい1990年以降に発刊された本達の中から、ちらほらバーコード付きの本が見つかり始めました。
ちょうど、’90年代の前半辺りが過渡期なようで、’90年発刊で13桁になっているのが見つかったと思えば、’94年発刊の本が10桁のままだったりとまちまちです。
体感ですが、マンガより小説の方が早く実装されている印象。
件の「悪い本」の発刊は’91年でした。

……過渡期ど真ん中だよっ!?

どうやら偶然引っ張りだしたものの、10桁ISBNとして紹介するには微妙なラインだったようです。
とはいえ、古い本が捨てられない体質の筆者の本棚には、まだ10桁ISBNの本が数多く眠っています。
コレを逐一Web検索して登録するとなると結構大変でして。
何のためにサクサクバーコード登録が出来るアプリを導入したのか、という話になります。

というわけで、今回はこの10桁ISBNを、せめてISBN検索出来るようにしてみようという企画。

題して

「10桁ISBN 自力進化作戦」

です。
10桁のISBN検索が使える他のアプリがある? ざんねん、聞こえません。

要は10桁から13桁への進化を自前で出来れば、あとは13桁になったISBNを使って検索すれば良いだけ。

簡単ですね!(ここフラグです)

となると問題は10桁から13桁に変わるときに「どういう変化があったか」ですが、Wikiを見れば一発ここで前回の「悪い本」を蔵書マネージャーに登録した時の画面を見てみましょう。

20151120_01

本にあった10桁コードは「4253102328」
登録画面には「9784253102322」
よくみると、大半の数字は同じ並びです。
わかりやすく並べるとこんな感じ。

20151120_02

先頭に増えた3桁最後の1桁位外は全部同じ数字になっています。

一応それぞれの数字に意味はあるんですが、細かい説明を抜きにすると、増えた頭3桁の「978」は固定。単純に付け足しただけです。
(2007年以降に発刊された本(=最初から13桁で管理されている本)の場合は979となっている場合もあります)
つまり、元がどんな数字でも頭に「978」と足してあげれば、13桁まであと1文字。
この1文字さえ何とかすれば、あっという間に13桁に変換出来てしまうのです!

簡単ですね!!(しつこいようですがフラグです)

さて、最後の1桁ですが、これは「チェックディジット」と呼ばれています。
「数字の並びが正しいかどうかを判断するための数字」とでも言えば良いでしょうか。
今回の場合なら「ISBNとして10桁の番号を使うけど、ISBNに使う予定の無い番号は受け付けたくない!」という時のため、数字が正しいかどうかをチェックするために使われます。

例えば、まずは9桁の番号を割り振ります。
123456789

その後、9つの数字を元に、ある決まった式を使って1桁の数字を割り出して……
123456789   0(←割り出した数字)

「チェックディジット」として9桁の後にくっつける。
 1234567890(合対!)

こうして出来た10桁の数字が、10桁ISBNになるわけです。
これ、何気に身の回りでよく使われてまして、商品のバーコードの下にある数字や、運転免許証の数字、最近ではマイナンバーにも使われています。

うん、システム屋っぽい話になってきた。
かわりに話がややこしくなってきた。


ややこしい話は苦手なので、さっそく10桁ISBNの計算方法を見てみましょう。

旧規格のISBN (ISBN-10) のチェックディジットは、「モジュラス11 ウェイト10-2」という計算法にて算出される。(チェックディジットを除いた左側の桁から10、9、8…2を掛けてそれらの和を取る。和を11で割って出た余りを11から引く)(Wikipediaより抜粋)

……あー、うん。
おいしいよね、モジュラス11。
あの濃厚な味付けがなんとも言えず…………

ひとつずつ順番にやっていきましょう。
正解が分かりやすいように、数字は「悪い本」の「4253102328」を使います。

Step1. 左側の桁から10、9、8…2を掛ける……こういうコト?

20151120_03

Step2. それらの和を取る……全部足し算しろと。

40+18+40+21+6+0+8+9+4=146(たぶん合ってる)

Step3. で、結果を11で割って余りを求める。

146÷11=13(余り3

Step4. 最後に余りを11から引く。

11-3=8

Last. この8がチェックディジットになるから、最初の9桁の後ろにくっつけて、

「4253102328」

が「悪い本」の10桁ISBNになるわけです。

ね、簡単でしょう?
後の作業を考えるとゾッとします。


……えー、それじゃ、一応13桁の方も見ときましょうか。

現行規格のISBN (ISBN-13) のチェックディジットは、JANコードと同じく、「モジュラス10 ウェイト3・1(モジュラス10 ウェイト3)」という計算法にて算出される。(チェックディジットを除いた一番左側の桁から順に1、3、1、3…を掛けてそれらの和を取る。和を10で割って出た余りを10から引く。ただし、10で割って出た余りの下1桁が0の場合はチェック数字を0とする。)(再びWikipediaより抜粋)

まぁ、使う数字は変わっていますが、やることは同じです。
「JANコード」といえば、お店に並んでる商品のバーコードですね。
試しに皆さんの手元にある適当なもの(ペットボトルとか)の数字で計算してみると良いかもしれません。

……その間に、わたしゃ13桁ISBNの計算しときますんで。

使う数字は「9784253102322」です。

20151120_04

……こんなかんじですかね。
予定通り、チェックディジットは2になりました。

……え?
……コレ、全部の10桁本で計算し直すの?


気を取り直して。

そこはそれ。仮にもこういう業界の人間です。
いちいち計算するのが手間だというなら、10桁ISBNを13桁ISBNに変換するソフトを作ってしまえば良いんですよ!

作ったソフトにコードを入力~♪
20151120_05

ボタンひとつで超進化~♪
20151120_06

出来たコードをアプリに入力~♪
20151120_07

ね、簡単でしょう?
20151120_08


ネット検索とどっちが手間がかかるんでしょうねぇっ!?(逆ギレ)

ちなみに、こういう変換ソフトを作成して公開されている方は数多くいらっしゃいますので、ググってみると結構見つかります。
最初期のプログラミングの練習としても結構向いていると思いますから、プログラムの勉強されている方は一度挑戦してみるのもありかもしれません。
やろうと思えば、EXCELでも作れますし。
と、もっともらしい事を言ってみる。


そんなこんなで。

結果的にはうまくいきませんでしたが、今回も長々と付き合っていただきありがとうございました。
……もうちょっと綺麗にまとめたいとは思うんですけどね。
なかなか上手くはいきません。
読まれた皆さんもお疲れではないでしょうか?

口直しになるかわかりませんが、最後に【おまけ】を追加して今回のお話はおしまいです。

では、また。


■□■ お ま け ■□■

 キューブくんの身長は120cm(公式設定) 

20151120_c01

20151120_c02

20151120_c03