ラビットホール探索に最適化された実験的ウェブブラウザー
(szymonkaliski.com)- Cartographistは、調査中にリンクをたどって深く掘り下げていく流れのために、新しいウィンドウの代わりに横に連なるパネルで探索の文脈を示す実験的ブラウザーである
- 閲覧履歴を時系列の一覧として残すだけでなく、ツリー構造の概要として表示することで、ユーザーがどの経路でページにたどり着いたのか把握しやすい
- セッション状態をtrailsとして保存し、再読み込みできるため、長期間にわたるテーマ調査を中断した地点から再開できる
- 2020年夏の研究用ブラウザー実験から始まり、Andy Matuschakのウェブサイトレイアウト、Nate Parrotのモバイルブラウザーのビュースタック実験、Miller columns、Smalltalkのクラスブラウザーの影響を受けている
- 実際の調査では、履歴全体の保存よりも、資料の一部を集めて並べ替える総合の過程のほうが重要であり、スクロール位置・選択範囲の保存や編集可能な履歴のほうが実用的である可能性がある
Cartographistの探索方式
- Cartographistは、ラビットホール型の探索に焦点を当てた実験的ウェブブラウザーである
cmd-clickで新しいウィンドウを開く代わりに、リンクを開くたびに横スクロール式パネルを生成する- 線形の閲覧履歴からページを探すのではなく、探索の流れをツリー構造の概要として表示する
- 毎回最初から始めるのではなく、セッションを離れた時点の正確な状態をtrailsとして保存・読み込みできる
- 特定のテーマを長期間調査する使い方に適している
- コードはszymonkaliski/Cartographistとして公開されている
実験の背景と限界
- 2020年夏、研究中心のウェブブラウザーというアイデアを実験する中でプロジェクトが始まった
- その基礎にある区別は、
browsingを開かれた発散的活動、searchingを情報検索とみなす考え方である - Twitterでプレビューを共有した後も公開要望が続き、プロジェクトが公開された
- その基礎にある区別は、
- パネルベースのブラウジングは、複数のインターフェースから影響を受けている
- Andy Matuschakのウェブサイトレイアウト
- Nate Parrotのモバイルウェブブラウザーのビューを横に並べて積み重ねる実験
- Miller columns
- オリジナルのSmalltalkクラスブラウザー
- 同じパネル探索方式は、Vimでのコード探索にも使われている
- ショートカットひとつで関数定義を新しいパネルで開く方式である
- Glamorous Toolkitは、パネルブラウジングのアイデアをさらに拡張した例と見なせる
- ディスクに保存される履歴は、時間が経ってからブラウジングセッションに戻り、自分がどの“topic”の中にいるのかを意識的に選べるという点で、理論上は魅力的である
- 実際には、履歴全体そのものの有用性は限定的である
- どこからどのように到達したのかを知ることは時に役立つが、調査でより重要なのは、大きな全体から一部を取り出して並べ替え・再構成し、資料とともに考える総合である
- より小さな改善としては、スクロール位置や選択範囲の保存、行き止まりを削除してメモを追加できる編集可能な履歴がある
- 問題は別のレベルで解くべき可能性も残っている
- 優れたウィンドウマネージャーがCartographistをほぼ代替できるかもしれない
- HHTWMでカラム型レイアウトを試したが、横スクロールがなく、結局あまり有用ではなかった
1件のコメント
Hacker News の意見
少し話はそれるが、記事で Vim でコードを探索するときに「ショートカット一つで関数定義を新しいパネルに開く」と書かれていた部分が興味深かったので、作者の GitHub で
.vim設定を探してみた方法は
nnoremap gF vgFだった: https://github.com/szymonkaliski/dotfiles/blob/357fc7c76ca86...そして
nnoremap gD :call CocActionAsync('jumpDefinition', 'vsplit'): https://github.com/szymonkaliski/dotfiles/blob/357fc7c76ca86...結局 nvim の Lua では
buf_set_keymap('n', 'gds', 'vlua vim.lsp.buf.definition()', opts)に落ち着き、普段のgdとは別のマッピングにして、新しい分割ウィンドウを開くかどうか選べるようにした。たとえば変数が 20 行上で定義されているだけなら、新しい分割ウィンドウは欲しくないからだgdsはgdを使おうとすると少し遅延が生じるのでgvに変えたvim.api.nvim_buf_set_keymapか、単にvim.keymap.setだかなりいい。sensemaking と berrypicking を研究している Kay Xu に連絡してみることを強く勧める
独自レンダラーではなくブラウザ拡張ベースの、より新しく優れたバージョンに取り組んでいるようで、協業すれば互いに役立ちそうだ
https://vis4sense.github.io/sensemap/paper.pdf
https://vis4sense.github.io/sensemap/
https://web.archive.org/web/20080112091521/http://www.gseis....
20年以上前に似たものを作ったことがある。ページ内容の 全文検索 もでき、ブラウザ履歴のようにも動作して、数年間使っていた
本当の解決策は、学習障害のあった非常に粘り強い人物が、地下室のキャビネットに肉屋用の紙をぎっしり詰めた部屋で見せてくれた。彼は教科書を理解するために内容を巨大なロール紙の上に再配置しながら自分なりの文法を作り出し、その結果、マインドマップと ZUI の混合のようなものになっていた
彼の「リンク」アイデアは索引システムに近かった。ラベル付きの別の紙ロールをキャビネットから取り出して「接続された」領域まで広げ、テーブルの上で折りたたんで 2 本のロールを並べる、というやり方だった
汎用性はすぐに見て取れ、10年以上前に Web を探索する新しい方法として数か月取り組んだが、続けることはできなかった。もっと取り組むべきだとずっと思っているが、不安とうつは本当に厳しい。今なら LLM で賢い オントロジー・ラベリング も可能だ。断片はすぐそこにあり、拾い上げるだけでいい
「Twitter にプレビューを共有したところ予想外に大きな反応があったが、別のことに気を取られてプロジェクトに戻れなかった」というくだりが面白い
うさぎ穴探索ブラウザを作っておきながら、本人が気を散らしてしまったわけだ
冗談はさておき、Vim 機能の説明は Squeak の Whisper ブラウザを思い出させる。通常の作業中に必然的にウィンドウが増殖するのを避けるため、深さ優先の SmalltalkBrowser のようなものを持っていた。Vim でそのようにソース探索を並べ替えるのに必要な機能が設定 2 行ほどで済む点も興味深い。もちろん Whisper ブラウザには横方向に探索するだけでなく、スタッキングや新しい UI もあった
すばらしい。Chrome を作っていたとき、何人か、実質的には私一人が、iRider という IE シェルブラウザに夢中だった。ツリースタイルタブとピン留め機能があり、非常によく似た形で役に立っていた
記憶では、ここにも合いそうな機能があり、タブをまたいでドラッグして一括操作するというものだった。閉じるボタンやピン留めボタンをクリックした後、他のタブの上を縦にドラッグすると同じ操作が適用され、際限なく増えるタブの山を処理するのがとても簡単だった
ADHDのユーザーにとっては、夢と悪夢が同時に来るようなものに見える
ブラウジングセッションが終わる頃にタブが300個になっているのは、自分だけではないはず。この機能は使いすぎてしまいそうだし、生活をずっと悪化させそう
時間はかかったが、今ではタブやスクリーンショットのような雑多なものを見るとき、何を保存するか失うかよりも、それがなければどれだけ多くのことができるかを考えるようになった。すると、失うのではなく得るものとして見え始めて、助けになっている。いつもうまくいくわけではないが、うまくいく日は本当に驚く
探索中に簡単にタグを付けられて、あとでタグと閲覧したページ内容を素早く検索できるなら、さらに役に立ちそう。再び見つけられるという確信があれば、タブを閉じやすくなる
同じADHDの立場として、最近は定期的にタブを閉じる整理をしている。たいていは一日の仕事を始める/終えるときや、作業を始める/終えるときのような関連イベントに合わせる。進行中の作業ごとにウィンドウを1つ置くようにし、それ以外のタブは別の場所に置く。たとえば、やることに関連するタブならカンバンボードに入れ、読むものならInstapaperに送り、興味深くてあとでまた見たいものならLogSeqのジャーナルに短い説明と一緒に1行残す。単に積み上げているのでなければ、タブを保存する理由があるはずなので、その理由を明確にし、適切なときに再び見つけられる場所へ置く、という考え方
ブックマークやRSSフィードなどを追加して
offpunk --syncを実行し、その後offpunkを実行する。最後にプロンプトでtourまたはtと入力し、すべてのブログやニュースサイトを見終わるまでtを押し続ければいいサイトはスペースバーで読み、もう一度読みたい場合は
lessと入力すればリンク番号でアクセスできる。戻るにはbを押す。すべての内容はあとで使えるようにオフラインに保存されるURL https://sr.ht/~lioploum/offpunk/
一方で、本来たどるべきだった経路から外れた分岐点へ素早く戻れるのは本当に貴重
Vimでも取り消しの分岐機能をうまく受け入れられなかった。理解はしているが、実際に使うのには失敗した。自分のADHD脳は分岐型の履歴より線形の履歴のほうが扱いやすいらしい
興味深い。次のFirefoxアドオンと重なる部分がある
Tree Style Tabs: https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta... — より単純で、セッション保存機能はない
Tree Tabs: https://addons.mozilla.org/en-US/firefox/addon/tree-tabs — より複雑でセッション保存も可能だが、一部の他のアドオンと互換性がなく、Mozillaのセキュリティ評価を受けていない
どちらもウィンドウ内でタブを並べ替えるわけではなく、開いているタブの代替となるツリーリストだけを提供する
みんなAIがもたらす実存的リスクを語っているのに、この人がこんなツールを何の安全装置もなく世に放つなんて、本当に心配だ
もう少し真面目に言うと、線形のタブ一覧の代わりにArXivタブグラフがあれば、科学文献を深く掘り下げるときにかなり役立つかもしれない
ツリースタイルのブラウジングだとBを2回開くか見ることになり、AとCの両方からBに来たという事実も簡単には見えない
きちんとしたハイパーテキストを取り戻すべき
ブラウザは文書を探索するもののように振る舞うべきだ。前後に行き来でき、各「ビュー」はキャッシュされ保存可能であるべきで、20MBの
main.min.jsを積んだSPAのゴミになってはいけないラビットホール探索に最適化されたブラウザを作った人の文章で最高の一文:「Twitterでプレビューを共有したところ、予想外にものすごい反応があったが、別のことに気を取られてプロジェクトに戻れなかった」