Obsidianのノートのつながりを見つけるAtomic Insightsというプラグインを作りました
💎「関連ノート」ではなく「構造的なつながり」をリンクから見つけ出す
Atomic Insightsという名前のObsidianのプラグインを作りました。
BRATを使っていただき、以下のURLを入力していただくことでプラグインをお試しいただけます。
https://github.com/goryugocast/atomic-insights
以下、このプラグインがどんなものなのか、という話と、プラグインを一晩で作れてしまったことへの感動などをまとめます。
「友達アルゴリズム」で「関連ノート」を表示する
Atomic InsightsはAdamic Adarというアルゴリズムを使って「関連するノート」を表示するプラグインです。(Facebookの「友達かも?」を見つけ出す仕組みがイメージとして近い)
graph-analysisというプラグインから影響を受けて、それを「俺専用」みたいな感じでごりゅごが拡張したものです。
紹介記事: Obsidianのリンクを元にして関連ノートを見つけ出すプラグイン - ごりゅご.com
この「Adamic Adar」というアルゴリズムは、ごりゅごの「アトミックノート」の思想とものすごく相性がいいものでした。
ノートを細かな単位でわけていって、関連しそうなノート同士をリンクする。これを丁寧に実行してやると、いろんなノートでめちゃくちゃいい感じに「関連しそうなノート」を見つけてくれるのです。
これは、生成AIによる関連性の判定とも、タグやキーワードによるリンクとも異なる、ノート同士のリンクだけを基準にした自分だけの「つながり」を見つけるものです。
生成AIがあれば自動で関連するノートが見つけられてハッピー、みたいな方向とは真逆のアプローチで、少しずつ自分の知識を広げ、つなげていくためのツールです。
自分が欲しい機能だけを追加した
このプラグイン、できることとしては圧倒的に唯一無二で素晴らしいんですが、機能的な部分で細かな不満がいろいろありました。
関連ノートの表示が安定しないこと。表示されるノートをクリックしても思った挙動をしてくれないこと。ドラッグ&ドロップでリンクを作成できないこと。あるいは、単純に見た目に関することなど、改善したい点は多くありました。
さらに、この graph-analysisプラグインは数年間アップデートされておらず、事実上の開発は止まってしまっている雰囲気。(数ヶ月前に一部ファイルは更新されているが、機能的なものではない)
なんか、それならばもう俺生成AIの力でポータルサイトを作ったし、その勢いでObsidianのプラグインも作ってやるか、と調子に乗って作ってみることにしたのです。
最初は、元々あったプラグインを引き継いで改造したらいいかなあ、と思ったんだけど、20〜30分試してもどうもうまくいかず。
それならばと機能を絞りこんで、完全に新規でゼロからプラグインを作り直したら、とりあえず動くものが10分でできてしまいました。
その後、プラグインの名前を生成AIと一緒に考えたり、READMEを作ったり、細かな見た目や機能の調整とか、BRATでインストールできるようにすることとかいろいろなことをやってたら全部で2時間ちょっとくらいの時間はかかりましたが、それでもわずか2時間です。
1日どころか、一晩もかからずにとりあえず使えるもの、というのができてしまうというのは、自分でもまじで驚き。
graph-analysisにはなかったものとして「リンクをクリックするとそのノートが開く」「⌘+マウスホバーでのノートのプレビュー」「ノートのドラッグ&ドロップでリンクを埋め込める」「表示の安定化」なんかが挙げられます。
同時に、分析アルゴリズムはAdamic-Adarに絞っているし、その他の細かなパラメータ調整なども今はできません。設定できるのは今のところ「計算から除外するフォルダの指定」と「ノートが所属するフォルダ名の表示・非表示」だけ(機能追加など、今後どうするかは未定)
生成AI以前の時代ならば、2時間ではObsidianのプラグインドキュメントを読み終えることすらできていなかったはず……
ゼロからの創造ではなく改善が出来ればいい
もちろんプラグイン自体はまだ「ギリギリ人に使ってもらえる」という程度で、胸を張って自慢できるレベルではありません。
と同時に、すでにもう「こういうことがしたい」みたいな追加のアイデアもでてきたり、見た目や機能でもうちょっとよくしたいことなんかもいろいろでてきています。
もういっこ、これも超便利だけど自分に合わない「SRS」のプラグインなんかも自分用のやつが欲しいなあ、とかも思いはじめてて、実際にできるかできないかはわからなくても「できる」という自信と「作りたい」という欲求が湧いてくるようになりました。
どうも自分の場合、なにかを完全にゼロから作りあげるようなことは得意じゃないけど、今あるものを元にして、より自分に最適化されたものにしたい、みたいな感覚は大いにある。
ひょっとしたらそれは、自分が小説家みたいな「創作」じゃなくて、ニュースレターという形でライフハック的なものを発信しているところともつながるものがあるのかもしれない。
この世の中は、完全にゼロから何かを作りあげる「クリエイティブ」が神聖視されすぎている気がします。そうじゃなくて、もうちょっとライトな、自分のような「ちょっと改造する」みたいな形での「クリエイティブ」だって、あっていいんじゃないかとも思うのです。
自分が取り組んでいることだって、今あるものを便利にしているのは間違いない。(少なくとも自分が便利になっているので、これは確実に正しいと言えます)
これまで技術と根気が足りなくてできなかったものも、今ならば作れる。
必要なのは「欲しいモノを見つける力」と「意図を正しく伝えるための言葉の力」だけです。(デザインをするならデザイン用語があるとやり取りが早いし、プログラムもその仕組みなどがわかるとやはり速く作れる。いろいろな手法はあるが、今まで以上に言語化力、語彙力は重要になると予想)
そしておそらくこの2つの力というのが、大きな意味での「生成AIを使う能力」に昇華されていくのだと感じています。
というわけで、まだまだお試しレベルではあるんですが、 よかったらプラグインも使ってみてください。


