8 ポイント 投稿者 GN⁺ 2026-02-21 | 4件のコメント | WhatsAppで共有
  • 映画記録アプリ Letterboxd のように、すっきりして実用的な読書記録アプリを作ろうとする中で、ISBN体系の構造的な問題が中核的な障害だった
  • 書籍検索機能のために Google Books API を使ったところ、同じ作品の複数の ISBNバージョン がそれぞれ別項目として返される問題を発見した
  • これは 書誌学的構造(FRBRモデル) で「作品(work)」と「表現(expression)」、「形態(manifestation)」が区別されるためで、ユーザーは単に「本を読んだ」という事実だけを記録したくても、データが細分化されている
  • OpenLibrary は「作品」中心のデータ構造を提供するが、それでもなお 重複と不完全さ が存在し、完全な代替にはならない
  • 映画データベース TMDB のような、高品質の 公開メタデータ基盤 が書籍分野には存在せず、これは本中心のソーシャルプラットフォーム開発の主要な障害要因となっている

Letterboxdと書籍プラットフォームの比較

  • Letterboxd は すっきりしたインターフェース押しつけがましくないソーシャル機能 によって、映画鑑賞の記録を簡単に管理できる
    • ユーザーは視聴した映画とその時点を簡単に記録できる
  • 一方 GoodReads は複雑なUIと多段階のクリック構造のため、読書記録が不便だ
    • 「読んだ本」「読みたい本」が1画面に混在し、読書チャレンジ・ニュースレターなどの付加要素 が場所を取っている
    • GoodReads がこれほど使いにくい理由は、Amazon の書籍販売事業における優先順位の低い派生プロダクト だからだ
  • Storygraph にも同様の問題があり、ユーザーは結局 Obsidianファイル で個人記録を管理するようになる

Google Books APIとISBNの問題

  • 書籍検索機能を作るために Google Books API を使ったが、同じ作品が複数のISBNで重複して検索される現象が発生した
    • 例として “The Last Unicorn” を検索すると、ハードカバー、ペーパーバック、eBook、改訂版など がそれぞれ異なるISBNで返される
  • 各ISBNは 異なる判型や版 を意味するが、ユーザーは単に「本を読んだ」という事実だけを記録したい
  • このような構造は 検索とデータ統合 を難しくし、作品単位の記録システム構築には不向きだ

FRBRモデルと「作品」単位のアプローチ

  • 図書館学で使われる FRBRモデル は、書籍データを4つの階層に分ける
    • Work(作品): 抽象的な創作物そのもの(例: 小説 "The Last Unicorn")
    • Expression(表現): 特定の版
    • Manifestation(形態): 特定の版の物理フォーマット(ペーパーバック、ハードカバーなど)
    • Item(個体): コレクション内の個別の物理的対象
  • Google Books は主に「表現」または「形態」レベルのデータを返すが、ユーザーが必要としているのは「作品」レベルの抽象単位だ
  • OpenLibrary は「作品」中心のデータ構造を提供するが、それでも 重複項目 が存在する
    • 例: Yoko Ogawa の Hotel Iris を検索すると、同じ作品が4回重複表示される

データ品質とエコシステムの限界

  • LetterboxdThe Movie Database (TMDB) を基盤として動作しており、TMDB は約 100万件の映画データ を保有している
  • 一方 OpenLibrary4,000万件以上の作品 を含むが、不完全で整理されていないデータが多い
  • 映画データは商業プラットフォームとコミュニティ貢献が結びついて品質が高いが、書籍データは 規模が大きく資金支援も不足 している
  • このため、書籍版Letterboxdのようなサービス を作るための基盤データが存在しない

結論と今後の試み

  • 完全な オープンソースの書籍メタデータ基盤 が存在しないため、読書記録プラットフォームの開発は映画よりはるかに難しい課題だ
  • 著者は今後も 独立した読書記録システムの構築 を試みる予定だ
  • 映画の好みを見つける体験のように、読書記録にもパーソナライズされたアプローチが必要だ

4件のコメント

 
nemorize 2026-02-21

そりゃ… ISBNは出版物の識別子であって、コンテンツの識別子じゃないからね…
タイトルがちょっと釣りすぎですね(笑)

 
roxie 2026-02-27

コンテンツの識別子欄が空白のようです :(

 
yeobi222 2026-02-22

ISBN体系がそれほど体系的な分類を考慮していないのも事実ではあるので……
規則上は増刷のたびに番号を別途付与することになっているのに、最下位カテゴリが出版社である以上、作品別に分類する必要性があるにもかかわらず、管理が簡単ではないんですよね

 
GN⁺ 2026-02-21
Hacker Newsの意見
  • MusicBrainzのデータベース構造を思い出した
    たとえば Nirvana の Nevermind アルバムは1つの release group であり、テープ・CD・LP・プロモ盤など、さまざまな媒体や国別の再発版が存在する
    カタログ番号やバーコードが違って区別できる場合もあるが、同じコードが表記されていても実際には別バージョンであることもある
    同じ録音でも、リマスターや編集、検閲などで異なる場合がある
    MusicBrainz はこうした違いを細かく追跡し、同一録音かどうかを明確に区別している
    カバー曲やスタンダード曲のように複数のアーティストが録音した場合は、work 単位で作曲者・作詞者の情報を結び付けている
    このような 精巧なリレーショナルデータベース設計 は、創作物の同一性と差異を記録するのに非常に有用だと感じる
    関連リンク

    • 最近では、本のための BookBrainz というデータベースもアルファ版で運用されている
      bookbrainz.org/about
      MusicBrainz と似たスキーマなら、データ抽出は非常に容易になるだろうと期待している
    • Bach の二重ヴァイオリン協奏曲の CD を MusicBrainz に登録しようとして、CD-ID のインデックス作成エラーに遭遇したことがある
      アカウントを作ってデータを直接アップロードし、何度も修正した末に登録に成功した
      中国のウェブサイトで同じオーストラリア盤 CD の情報を見つけて参考にしたが、市場ごとに微妙に異なるバージョンが存在することに気付いた
      人々は「固有識別子」の更新にあまりにも無頓着だという点で、MusicBrainz チームに深く共感する
    • 10000 Maniacs の In My Tribe アルバムが良い例だ
      1987年版と1989年版(Peace Train 削除版)の UPC 番号が同一だった
      90年代半ばに中古 CD 店で削除前バージョンを探して苦労した記憶がある
    • 最近 CD のバーコードをスキャンしてみたところ、MusicBrainz では 90〜95% は認識された
      残りは地域ごとにトラック数が異なる複数バージョンが存在していて混乱した
      トラックごとのアーティスト情報を明示できる機能があれば、検索精度はもっと高くなったと思う
    • Kindle Press から出版した本の場合、ISBN は同じだが、少なくとも3つの公式改訂版と複数の細かな修正版が存在する
      誤字修正程度の違いしかなくても区別が難しい
  • Wikidata は FRBR 互換の公開データベースで、ここ数年で書籍関連の品質が大きく向上した
    例に挙がっていた小川洋子の ホテル・アイリス は、同じ作品ではなく 異なる翻訳版
    翻訳は原作とは異なる派生著作として見るべきだ
    ただし一覧が混在しており、誤りも多い

    • FRBR では翻訳も一般に 同じ作品(work) と見なされる
      OpenLibrary では1つの work にまとめ、言語と翻訳者情報を edition に保存している
      現在の重複は、言語別の自動マージ過程で生じた問題のようだ
    • 翻訳を別個の派生物と見なすとしても、検索時には 1つの主体として束ねられるべき
      利用者が原作と翻訳版を一緒にたどれるようにするのが理想的だ
  • LibraryThing を勧める
    Goodreads よりずっと良いと感じる
    本の WEMI 構造(work, expression, manifestation, item) を区別することが重要だ
    「ドン・キホーテを読んだ」は work レベルの話で、「自分の本にコーヒーのしみがある」は item レベルの話だ

  • 州単位の読書大会で本を ISBN だけで管理していたため、生徒が見つけにくかった
    そこで WorldCat の ISBN マッピングデータベース を使って、同じ内容の別 ISBN を結び付ける SQL JOIN を追加した
    その結果、10年間で生徒たちは さらに100万冊以上 の本を読むようになった

    • SQL クエリが気になるという質問が続いた
  • Anna’s Archive は ISBN 関連データの整理に大きく貢献している
    WorldCat を スクレイピングして活用しており、現在は ISSN(定期刊行物)データベースも構築中だ
    ISSN は書籍に比べてかなり不十分な状態だ

  • Open Library は Brewster Kahle(Internet Archive 創設者)と Aaron Swartz の初期の仕事から始まったことを思い出した
    関連ブログ

  • 実際の書店で本を見て買ったものの、家に帰ると 同じ版をすでに持っていた ことがよくあった
    ISBN で自分の蔵書リストを検索できていれば、こうした重複購入は防げたはずだ

    • 電子書籍だけで1000冊近く持っているが、どの本を保有しているかはっきり把握しているので、そんなことは起きないという反応もある
  • 個人プロジェクトで ISBNDB API を使った蔵書管理サイトを作った経験がある
    タイトル検索時に大量の版、言語、製本形態が入り混じり、結果が非常に複雑だった
    Jaccard 類似度ベースで結果を整理したが完璧ではなかった
    OpenLibrary を代替候補として検討中だ

  • StoryGraph アプリは悪くないと感じる
    AI 機能を避けたい利用者 に配慮したインターフェースが良い
    検索機能も優れている

    • Hardcover.app も良い代替だ
      個人的には 2017 年以降使っており、脱オリゴポリー を目指して選んだ
  • ISBN には 出版社識別子 が含まれており、同じ本でも市場ごとに異なる ISBN を持つことがある

    • ニュージーランドでは政府の図書館サービスを通じて ISBN を発行しており、出版社名を登録する必要がある
      無料サービスなので国ごとに異なる可能性がある
    • ISBN は出版社や企業が ブロック単位で購入し、内部的に各インプリントへ割り当てる
      したがって出版社名そのものが直接入っているわけではないが、構造上は識別可能だ