最初は「自分の本棚」を管理したかっただけだった
最初のアイデアは、ずいぶん小さなものだった。
勉強がてら個人開発をしてみたくて、「自分の本棚を管理するアプリ」を作ろうとしていた。家にある本を登録して、外出先からでも確認できるようにする。自分だけでなく家族も見られるように、スマートフォンの中だけで完結させず、インターネット経由でデータを保存・同期できる仕組みも用意する。よくある蔵書管理アプリの発想だった。
でも、考えているうちに色々なアイデアが出てきた。
ただ本を登録するだけではなく、読書記録も残したい。図書館で本を借りたときにもらう貸出票のようなものを、レシートプリンターで印刷してノートに読書記録として貼れたら楽しそうだ。自分の本棚を、単なる収納ではなく、本との関わりを記録する場所にしたい。
まず始めに作りたかったのは、そんな小さな道具だった。
「おうち図書館」という夢
ちょうどそのころ、子どもが生まれた。
子どもが大きくなったら、家の本棚で「おうち図書館」を作れたら面白いのではないか。家にある本に番号を付けて、貸出票を作って、一緒に読んだ本を記録していく。図書館ごっこのようであり、読書日記のようでもある。
本を読むことだけでなく、本を選ぶ、借りる、返す、記録する、振り返る。そういう体験全体を、家庭の中で小さく作れたら面白い。
自分の本棚が、小さな図書館のように振る舞う。それが、Alexandriteの最初の原型だった。
けれど、実際に作り始めるとすぐに難航した。AIに壁打ちしながら少しずつ実装していたが、作りたいものの輪郭がはっきりしていなかった。蔵書管理アプリなのか、読書記録アプリなのか、家庭内図書館なのか。どれも少しずつ正しい気がするが、どれか一つに閉じると物足りない。
この時点ではまだ、自分が本当に作りたいものを言葉にできていなかった。
図書館を使って感じた「分断」
しばらくして、子どもと一緒に公共図書館を使うようになった。
住んでいる市の図書館だけでなく、近隣の市の図書館にも行くようになった。子ども向けの本を探したり、自分が読みたい本を探したりする中で、不便さが積み重なっていった。
図書館ごとにカードが違う。ログイン情報も違う。Webサイトの見た目も使い方も違う。ある図書館で見つからなかった本を別の図書館で探すには、別のサイトを開き直さなければならない。
利用者としては、ただ「この本はどこにあるのか」を知りたいだけだ。でも実際には、どの図書館のサイトを開くか、どのアカウント情報でログインするか、どの検索画面を使うかを意識しなければならない。
それぞれの図書館が別々の自治体や組織によって運営されていることは理解できる。図書館には地域ごとの制度があり、予算があり、運用がある。すべてを一つにまとめればよい、という単純な話ではない。
それでも、利用者の体験としては「分断」されていた。
このとき、最初に作ろうとしていた「自分の本棚アプリ」と、実際の図書館で感じた不便さが、頭の中でつながり始めた。
個人の本棚と図書館は別々のものなのか
当初は、個人の蔵書管理アプリを作ろうとしていた。
そこから考えを広げていくと、実際の図書館で使われている図書館業務システムの存在に行き当たった。一般にILS(Integrated Library System)と呼ばれるものだ。蔵書管理、利用者管理、貸出、返却、予約、統計など、図書館を運営するための中核システムだ。
図書館システムという領域には、すでに長い歴史がある。
日本国内では、NECや富士通をはじめとする大手ベンダーが、公共図書館や大学図書館のシステムを長年支えてきた。図書館の業務は、外から見るよりずっと複雑だ。蔵書を登録し、本を貸し出すだけではない。利用者管理、予約、延滞、統計、帳票、監査、他システムとの連携、自治体や大学ごとの運用ルールなど、多くの要素が積み重なっている。
だから、既存の図書館システムは、単なる古い業務アプリではない。図書館という公共的な場所を支えるために作られてきた、重い責任を持つシステムだ。
同時に、世界にはKohaやEvergreenのようなOSSのILSもある。日本にも、Next-L EnjuのようなOSSの図書館システムを目指す取り組みがある。図書館システムは、ベンダーが提供するものだけでなく、オープンな形で開発し、コミュニティや支援企業が支えるという選択肢も存在する。
この領域には、すでに多くの先行事例と蓄積がある。
では、自分が作ろうとしているAlexandriteは、その中で何を目指すのか。
考えていくうちに、Alexandriteは既存のILSとは、少し違うものを目指しているのだと気づいた。
既存のILSが主に対象としてきたのは、正式な図書館として運営される場所だ。
その周辺には、個人の本棚、研究室の書架、カフェの一角、地域の小さな文庫のように、図書館的な性質を持ちながらも、本格的なILSを導入するほどの規模や予算を持たない場所がある。対象外だったというより、従来の図書館システムの導入コストに見合いにくかった領域なのだと思う。
それなら、そういった場所にも、図書館的な体験を小さく届けられないだろうか。個人の本棚も、図書館システムの一番小さな形として扱えないだろうか。
この発想が、Alexandriteの方向性を大きく変えた。
SaaSとして届けること、OSSとして開くこと
現実的に考えると、すべての図書館や小さな団体が、自分たちでサーバーを立て、システムを保守し続けることは難しい。
小規模な地域文庫、学校、研究室、カフェ、個人の本棚。そうした場所にとって、業務システムを自前で運用することは重い。使い始めるまでのハードルが高ければ、本棚は外に開かれない。
だから、SaaSとしてすぐ使える形は必要だと思った。
一方で、図書館や本に関わる基盤が、特定の企業だけに閉じていることにも不安がある。仕様が分からない、データを取り出せない、運営方針が変わると使い続けられない——公共性の高い領域では、そういう状態は望ましくない。
そのころ、OSSについて調べている中で、企業が主体となってオープンソースのソフトウェアを開発しながら、公式のSaaSとしても提供するビジネスモデルがあることを知った。
ソースコードは公開され、必要であれば自分たちで運用することもできる。一方で、サーバーの構築や保守まで自分たちで担うのが難しい場合には、公式に提供されているクラウド版を使うこともできる。
この形は、図書館や本に関わる基盤に向いているのではないかと思った。
図書館は公共性の高い領域だ。閉じたシステムではなく、透明で、検証できて、必要であれば自分たちで運用できる形が望ましい。
OSSとして公開しつつ、公式SaaSとしてすぐ使える環境も提供する。
その両立が、Alexandriteにとって現実的で、しかも「本のある場所」を長く支えるための形に近いのではないかと思った。
すでにある仕組みと、まだ見えていない本棚
「図書館を横断して本を探したい」という課題に取り組んでいるサービスはすでにある。
カーリルはその代表例だ。公共図書館や大学図書館の蔵書を横断して検索できる体験は、とても優れている。複数の図書館をまたいで本を探すという価値を、一般の利用者に届けてきた。国立国会図書館サーチ、openBD、Open Library——それぞれが異なるレイヤーで、本へのアクセスを広げてきた。
Alexandriteは、こうした既存の取り組みから多くを学びながら考えているプロジェクトだ。既存の図書館システム、横断検索サービス、書誌データベース、標準技術——それらが長年かけて築いてきたものを否定するのではなく、その延長線上に位置づけたい。
それでも、まだネットワークの外側にある場所がある。
個人の本棚。研究室の書架。カフェの本棚。まちの小さな文庫。誰かが本を持ち寄って作っている、小さな読書の場。そうした場所は、そもそも図書館システムを持っていないことが多い。だから検索対象にもならない。存在しているのに、ネットワークの上では見えない。
Alexandriteが関心を持つのは、その領域だ。既存の取り組みが可視化してきた横断検索の価値を尊重しながら、まだ接続されていない小さな本棚も参加できる入口を作りたい。
ILSを作りたいのではなく、ILSも含む基盤を作りたい
設計を進める中で、自分の中ではっきりしてきたことがある。
Alexandriteは、単に新しいILSを作るプロジェクトではない。
ILSは必要だ。蔵書管理、利用者管理、貸出、返却、予約——図書館として運用するためには、こうした機能がなければならない。そしてそれは、単なる技術の問題ではない。公共的な責任、利用者情報の保護、地域ごとの制度、予算、契約——図書館が背負っているものの重さは、外から見えている以上に大きい。Alexandriteはその複雑さを軽く見るのではなく、尊重したうえで関わりたいと思っている。
ただ、ILSはAlexandrite全体の中ではひとつの機能だ。
本当に作りたいのは、ILSそのものではなく、あらゆる本のある場所を接続するための基盤だ。
ある場所では、個人の蔵書管理アプリとして使われるかもしれない。ある場所では、カフェや研究室・地域の文庫など、本を介して人が集まる場所の小さな管理ツールとして。ある場所では、公共図書館の業務システムとして。ある場所では、「ここにこういう本がある」と外に知らせるだけの小さな窓口として。
同じ基盤の上に、必要な機能を組み合わせて、それぞれの場所に合った形で使えるようにしたい。
分散していても利用者にはそれを意識させない
この構想を進めるうえで、Federationという考え方が重要になってきた。
一つの巨大な中央システムにすべてを集めるのではなく、複数のサーバーや組織が互いに接続しながら、全体として一つのネットワークのように振る舞う。Mastodonのような分散SNSを思い浮かべると分かりやすい。
図書館にも、この考え方は合っていると思った。公共図書館、大学図書館、学校、企業、個人の本棚。それぞれは別々の主体であり、管理者も責任範囲も違う。すべてのデータを一つの中央サーバーに集めるより、それぞれの場所が自分のデータを持ち、必要に応じて接続する形の方が自然だ。
とはいえ、Mastodonのような体験をそのまま図書館に持ち込むことはできない。
図書館を使う人は幅広い。子どもも、高齢者も、ITに詳しくない人もいる。「あなたはどのサーバーに所属しますか」と利用者に問いかけるような設計にはしたくない。
分散していることは、設計上は重要だ。でも、利用者にとって大切なのは、裏側が分散しているかどうかではない。本を探しやすいこと。借りやすいこと。迷わず使えること。
分散した仕組みを、ただの図書館体験に変換する。これは、Alexandriteの重要な設計原則の一つになる。
分散型であることは、責任を曖昧にするためではない。どのデータを誰が管理し、どの範囲をどの主体が担うのかを明確に分けるための設計として考えている。
本のある場所がつながると何が変わるのか
読みたい本がある。
近くの公共図書館にはない。書店で買うほどではない。電子書籍にもない。でも、近くの大学図書館にあるかもしれない。地域の小さな文庫にあるかもしれない。どこかのカフェの一角に置かれているかもしれない。
今は、それを知る手段がほとんどない。本は存在しているのに、見つけられない。近くにあるのに、つながっていない。
Alexandriteが目指しているのは、その「あいだ」をつなぐことだ。
すべての本を誰でも自由に借りられるようにする、という意味ではない。公共図書館には公共図書館のルールがある。大学図書館には所属者向けの利用条件がある。カフェの本棚にはその店の方針がある。個人の本棚にはプライバシーがある。
重要なのは、それぞれの場所が自分のルールを保ったまま、必要な範囲で外とつながれることだ。公開する範囲を選べる。貸し出す相手を選べる。検索に出すかどうかを選べる。そのうえで、「ここに本がある」という情報だけが、必要な人に届く。
本棚が、孤立した場所ではなくなる。
本を管理するだけでなく、本と出会う体験を作りたい
Alexandriteは、業務システムであると同時に、読書体験のためのプロジェクトでもある。
本棚を眺める。背表紙を見る。気になる本を見つける。読んだ本を記録する。あとで読みたい本を保存する。自分の本棚と図書館の蔵書を行き来する。
こうした体験は、単なるデータ管理だけでは生まれない。
だから、書影、個人の本棚表示、読みたい本リスト、読書履歴、コレクション——そういった機能も大切にしたい。図書館業務のためだけではなく、本を探し、本と出会い、本との関係を残していくための道具にしたい。
ただし、書誌情報や書影には提供元の利用条件や権利がある。外部データを当然のように再利用するのではなく、利用条件を確認し、自動生成カバーやユーザー自身の管理画像も使い分けながら、権利を尊重した設計を目指す。
目的の本を検索するだけでなく、偶然の出会いが生まれる本棚。その体験を、個人の本棚から公共図書館まで広げていきたい。
最初から大きくなくていい
Alexandriteは、公共図書館の基幹システムを置き換えようとしているわけではない。
個人の本棚、研究室、学校の図書室、地域の小さな文庫——既存の本格的な図書館システムを導入するには重いけれど、蔵書を見える化し、貸出を少し管理したい場所から始められる形を作りたい。そうした場所で使われながら、少しずつ大きくつながっていく基盤を目指している。
なぜ「Alexandrite」なのか
Alexandriteは、光の当たり方によって色が変わる宝石の名前だ。
昼の光では緑に見え、別の光の下では赤紫に見える。同じ石でありながら、環境によって違う表情を見せる。
この名前は、プロジェクトの性質に合っていると思った。
個人にとっては、自分の本棚を管理するアプリかもしれない。小さな文庫にとっては、貸出管理の仕組みかもしれない。公共図書館にとっては、利用者とつながる窓口かもしれない。カフェにとっては、本を通じて人が集まるきっかけかもしれない。
同じ基盤が、場所によって違う色を持つ。その多面性を、この名前に込めた。
Alexandriteが目指すもの
個人の蔵書管理アプリとして始まり、おうち図書館、SaaS型ILS、OSSの図書館システム、Federation型の図書館ネットワークへと構想が広がってきた。
今では、Alexandriteを「あらゆる本のある場所をつなぐための基盤」として考えている。
本は、すでにたくさんの場所にある。でも、それらはまだ十分にはつながっていない。
Alexandriteは、その「あいだ」をつなぐためのプロジェクトだ。
最初は、自分の本棚を管理したいだけだった。でも、その小さな本棚の先には、たくさんの本のある場所が広がっていた。
このブログでは、Alexandriteを作りながら考えたこと、設計したこと、迷っていること、調べたことを少しずつ書いていく。
次回は、Alexandriteが描く世界観について。本のある場所がすべてつながったとき、何が変わるのかを考える。
次回の記事:Alexandriteの描く世界

