Ekasiliconのゴミ捨て場

ゴミがあります。そこに。

国立国会図書館にContribute(?)しようとした話

初めましての方は初めまして。Ekasiliconと申します。さて私は去る2023年12月3日に開催されたUNTIL.LT #0x03に参加させていただきました。

そこにおいて「国立国会図書館にContribute(?)しようとした話」というタイトルで10分間のLTをしました。この記事ではどのような話をしたのかをブログの記事という形にして記録していこうかと思います。

ちなみにこの記事はcoins Advent Calendar 2023の15日目です。日付には特に思い入れはありません。前日と翌日はいらっしゃいませんが、前にはEmblenさんの「Mod13スピードはいいぞ」、後ろにはMutsuha Asadaさんのグミに関する記事があるらしいです。

タイトル

国立国会図書館図書館へContribute(?)しようとした話

あーすというところに所属しております。Ekasiliconと申します。さて今回私は「国立国会図書館図書館へContribute(?)しようとした話」というタイトルでお話をさせていただこうかと思います。何を言っているかよく分からないと思うので何をした簡単に示しますと、

  • 国立国会図書館が管理しているLODに不具合と思われる挙動を発見した
  • 日本の役所とは思えないほど情報技術に理解があったのでスムーズに進行
  • 国立国会図書館へContribute(したかった)

という感じです。何をやったのかよく分からないような説明ですね。

話すこと・話さないこと

前提情報について説明していきます。以下の5つのことについて説明します。

反対に以下のようなことは説明しません。

  • XML
  • オープンデータ
  • HTTP Status Code

これらについては適当にその辺の端末でググっていただければと思います。Googleが嫌いな方はDuckDuckGoとかを使ってください。

前提情報

国立国会図書館

タイトルにもある「国立国会図書館」とは何ぞや?ということですが、国立国会図書館

国立国会図書館は、真理がわれらを自由にするという確信に立つて、憲法の誓約する日本の民主化と世界平和とに寄与することを使命として、ここに設立される。

という前文の国立国会図書館法によって作られた図書館です。カッコいいですよね。

日本で唯一出版された本全てを持っている図書館(まあ納本制度が守られているかというと…ですが)です。図書館としてこれだけでも大変ありがたい存在ではあるのですが、書誌情報等のオープンデータにも積極的であることで知られています。

ISIL

最近聞かなくなりましたね、「ISIL」。しかしながら今回話題にするのはイスラム国とか言われていた方ではなく、図書館及び関連組織のための国際標準識別子という長ったらしい名前を持つ物で、図書館とか博物館などの施設に国際的な番号を付与するというものです。国別に管理が分かれており、日本においては先に説明した国立国会図書館が付与・管理を行っています。

ISILは16桁以内の文字列からなり、例えば国立国会図書館であれば「JP-1000001」という風になっています。0が5個並んでいるのでWi-Fiみたい*1ですね。ちなみに国別コードとハイフンの後は国ごとにバラバラ(16文字以内であればなんでも良い)で、クソみたいなフレキシブルな仕様となっています。

LOD

Linked Open Dataの略です。コンピューター処理に適したオープンデータの形態の1つ…と簡単にまとめてしまうとNakayaさんがキレてしまいそうだとちょっと思っているのですが、まあWeb 3.0*2の実現に極めて重要なものであると思っていただければよいかと思います。

ISIL LOD

日本において国立国会図書館がISILに関するLODを試験的に提供されており、図中にQRコードで記載したリンクからアクセスすることが出来ます。世界に唯一の番号ですので、これに色々紐づけてあげると少ない情報から多くの情報が確実に得られて嬉しいわけです。

ここにおいては「AのほにゃららはBである」という主語・述語・目的語の3要素*3XMLで記載されています。そのためDOMをドムドムするといい感じに情報が得られます。

W3ID.org

このようなLODは世界に多数ありますが、管理主体が多様であることからアクセス方法が異なったりして煩雑といえます。これらを軽減するプロジェクトとしてW3ID.orgというものが存在しており、適切にIDを指定してあげるといい感じにリダイレクトが走ります。

ちなみに「リダイレクトが走る」というのは文字通りリダイレクトが走っています。どういうことか知りたい人はGitHubリポジトリにある.htaccessの大軍を適当に眺めてみるといいでしょう。かなりダイレクトな解決方法がなされています。

Wikidata

WikidataというものはWikipediaの運営財団が行っている知識データベースと呼ばれるものです。プロパティとデータの関係性をひたすら記述しています。当然ながら機械可読性は高いものとなっており、検索エンジンなどのナレッジパネルにも活用されています。

本題

前提知識が長くなってしまいました。では本題に移っていきましょう。

私がやりたかったこととしては

  1. 博物館について書かれた日本語版ウィキペディアの記事からWikidataに飛ぶ
  2. WikidataからISILを得る
  3. W3ID.orgを通って国立国会図書館のLODへ行く
  4. 情報を得る

ということです。具体的な例、というか問題点に気づいた例を見ていきましょう。私はあーすと呼ばれる場所にいますので、いわき市アンモナイトセンターの記事から話は始まります。

  1. 日本語版ウィキペディアのいわき市アンモナイトセンターの記事からWikidata(Q114231317)に飛ぶ
  2. WikidataからISIL(P791: JP-2000699)を得る
  3. P791の書式指定URLであるW3ID.orgを通り国立国会図書館LODへ
  4. HTTP 303の後にHTTP 404が返ってきたので情報が得られなかった

という感じです。情報が得られなかったので当然ながら調査を始めます。一瞬W3ID.orgのミスかと思いましたが、303が返ってきている時点で間違ってはいないようなので取り敢えず棄却できます。よくよく眺めてみると、404が返ってきたアドレスである「https://www.ndl.go.jp/jp/dlib/standards/opendataset/isil-2000.rdf」は存在しませんが国立国会図書館のサイトを潜ってみると「https://www.ndl.go.jp/jp/dlib/standards/opendataset/isil-1000.rdf」は存在するらしいです。

すなわちW3ID.orgに指定されており303を吐いてきた「http://id.ndl.go.jp/vocab/isil/$1」からのリダイレクトミス(typo)ではないかと推察しました。

非同期コミュニケーション

私は日本人なので電子メールを書くことが出来ます。FAXではなく。というわけで非同期コミュニケーションと言い張り午前1時35分にメールを送信しました。社会的ですね。内容としては上記のことを簡単にまとめた後に「Wikidataの書式指定URLに用いられているW3IDに指定されているので影響デカいかも」みたいなことを書きました。

するとその日の18時過ぎにメールが返ってきました。そのまま載せるわけにはいかないので内容を要約すると、

  • 連絡ありがとうございます。
  • 試行版LODのベースとなっているデータは博物館等への付与以前のもの
  • 対応については今後検討するが、当面は図書館だけのものとして活用していただければ

といったものでした。本当にごめんなさい!!!

反省点

同級生のように国の機関へContributeしたかったという気持ちと、データは簡単にいっぱいアクセスできた方が嬉しいという気持ちがあり拙速な連絡をしてしまったというのが最も大きな反省点と言えるでしょう。メールも今読み返してみると必要最小限度すぎる気がします。

反省点

この他にもダックテスト*4を崇めすぎたという点や、世の中には英語以外も言語と認めており仕様を日本語で書いてくれる人もいるということを忘れていたという点などもあります。

結語

というわけで皆さん、確認というのは重要ということが分かりました。生活の参考にしてみてください。とはいえ、オープンデータは楽しいので皆さん愛してください!!!一緒に"Web 3.0"の世界に貢献しましょう!!!!!!


…という話をしてきました。カスみたいな話ですが何かの参考になれば幸いです。それでは。

*1:災害時に公衆無線LANが自由に使えるようになる「00000JAPAN」みたいだなと話しながら思っていました。

*2:Web 3.0、またの名を「セマンティック・ウェブ」。ブロックチェーンとかAIとかメタバースとかがごちゃ混ぜにされている†Web3†とは特に関係は無い。

*3:LT中には触れませんでしたが、これがRDFにおける「トリプル」です。

*4:「あるものがカモのように動き、カモのように鳴き、カモのように泳ぐのなら、多分それはカモであろう。」という帰納法の1つ。