#:g1: isbnの紹介

Posted 2014-09-08 20:30:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の252日目です。

isbnとはなにか

 isbnは、ISBNをChickenで扱うためのライブラリです。isbndb.comと、openlibrary.orgに問い合わせる機能もあります。

パッケージ情報

パッケージ名isbn
Chicken eggs:isbn - The Chicken Scheme wiki

インストール方法

$ sudo chicken-install isbn

すれば、

(use isbn)
(use isbndb)
(use openlibrary)

が使えます。

試してみる

 isbnのユーティリティとしては、(use isbn)すると、

が使えるようになります。動作としては、

(valid-isbn? "978-1555580445") 
;=> #t

(normalize-isbn "978-1555580445") ;=> "9781555580445"

(isbn13->isbn10 "9781555580445") ;=> "15555804411"

(isbn10->isbn13 "4895013634") ;=> "9784895013635" (isbn13->isbn10 "9784895013635") ;=> "4895013634" (isbn-type "4895013634") ;=> 10

というところ。

 また、isbndb.comとopenlibrary.orgに問い合せも可能ですが、利用するには、それぞれ、

(use isbndb) or (use openlibrary)

とします。
isbndbの方がどうも上手く動かないので、openlibraryので試してみましたが、動作は、

(pp (isbn->alist "978-1555580445")) 
;>> ((title . "LISP style & design")
;>>  (authors ("Molly M. Miller"))
;>>  (publisher ("Digital Press"))
;>>  (publishing-date . "1990")
;>>  (number-of-pages . 214)
;>>  (cover-urls
;>>    ("small" . "https://covers.openlibrary.org/b/id/4096488-S.jpg")
;>>    ("large" . "https://covers.openlibrary.org/b/id/4096488-L.jpg")
;>>    ("medium" . "https://covers.openlibrary.org/b/id/4096488-M.jpg"))
;>>  (isbn-numbers (("1555580440")))) 

という風にisbnからalist形式で情報が引き出せます。残念ながら日本の書籍の登録は殆ど無いようですが。

まとめ

 今回は、isbnを紹介してみました。
文献一覧などを作成する場合に便利そうですね。

comments powered by Disqus