
先日公開した日本十進分類カルタをやっていると、「逐次刊行物は、どの類でも末尾05なのね」とか「2が絡むと中国関係っぽくて、3が絡むとヨーロッパ方面なのね」とかいうことを自然と感じられるようになってきます。
ただ、ウェブ等で公開されている十進分類表は基本的に類からツリー状に辿っていく形式のものが多く、また、一覧となっている場合も3次区分となると約1,000の項目があるため、「類を跨いで末尾がnnになっているものを一覧で見たい!」と思ってもなかなか見られませんでした。
そこで、ただ完全に自分がそういうのがみてみたいという理由で、各位の数字を自由に変更することができる十進分類表をChatGPTに教えてもらいながら作ってみました。
どういうものか言葉で説明するのが難しい(のでChatGPTへの指示もやや難儀しました)ので、触っていただいたほうがどういうものか、すぐおわかりいただけると思います。NDCの100の位、10の位、1の位をそれぞれ好きなように設定して、該当するものだけを表示することができる十進分類表となります。
と言うと、指定した値に該当する主題が見られるって普通じゃないかと思われるかもしれませんが、一部の位を全部表示した状態で任意の位の情報を絞れるので、
こちらのように「末尾05」の一覧が見られたり、アイキャッチ画像のように「9*3」の一覧が見られたりというところがおもしろいところとなります。この状態でどちらかの位のスライダーを回していてくといろいろな発見があっておもしろいです。
よろしかったら触ってみてください。
技術的な話
例のごとく、実装の部分はChatGPTに頼りました。
数字を選択して表を変形すること自体はChatGPTがやってくれるだろうと高を括っていたのですが、NDCの表を作成するのがネックになりそうだなと思ってました。
約1,000項目もあるので流石に手作業はキツい*1ということで、NDCのデータから自動でtableを作れるか聞いたところ、そのためにはNDCを構造化したJSONが必要じゃと言われて、いやいやそのJSONはどうやって作るの?と聞いたら、そのためには…と、RPGのお使いクエストみたいなやり取りを経て実装に至ったのが面白かったです。
最終的には、いつもの日本図書館協会さんが公開しているndc9版のttlから、類・綱・目の番号と主題をpythonで抜き出すコードと、それをJSONに変換するというコードを教えてもらい、そのJSONからJavaScriptでtableを生成しているという手順です。
お相手は、やわらか図書館学でした。
参考
*1:よくよく考えると表示非表示でrowspanが変わるのでそもそも手で作るのは無理なのですが、その時は気づいていませんでした