気を散らすノート

色々と散った気をまとめておくところ.論文読んだり自分で遊んだりする.たぶん.

Logseq と Obsidian の比較

Logseq (https://logseq.com/) と Obsidian(https://obsidian.md/) は どちらもざっくりいうと, (1) markdown 形式でノート/メモを作成してその管理・閲覧・検索ができ,(2) ノート同士のリンクに重点をおいた機能を持つアプリケーションだ.細かいメモを作って互いにリンクする,というのは若干, 使ったことないけど scrapbox とも使い勝手が近いのかもしれない.

それぞれ別の用途で数ヶ月ずつ使ってみたので,1年前の自分が疑問に思っていた「どう違うの?」「どっちが良いの?」に対する現時点でのメモを残しておく.僕が最初に触ったのは Logseq で,数ヶ月たってまた別のプロジェクトについて Obsidian を使った.

結論

  • 厳密にどっちかでないとできないことはあんまりない
  • のだが,デフォルトの使い勝手が何を志向してるかは結構違い,これは我々がどのようにそのソフトウェアを利用するかに思った以上に影響する.箇条書きベースの記載がしやすければそのように我々はノートをまとめるし,普通の markdown ならもう少し長文を書きがちになる.
  • 用途の向き不向きは明らかにあるが,使ってみないとわからない類で(1年前の自分がこの記事を読んでも分からなかったと思う),かつ個々人の使い方にもよるから,まずはどんな理由でもいいから片方使ってみて,しばらくしてもう一つ触ってみて体得するのが良いだろう.
    • どのくらい向き不向きがあるかというと,多分僕は今後しばらくは使い分けると思うくらい
    • じゃあどっちから試すのか,の判断基準としてとりあえずわかりやすいのは,パッと見どっちが気に入るか,オープンソースかどうか,箇条書きベースで書く (Logseq) か普通の markdown より (Obsidian) か,あたりでしょうか.
    • 勘で言ってるけど作った情報を引っ越すのはある程度できると思う(僕の場合はそれぞれ独立したタスクに試用したのでそのニーズはなかった).

比較

使う上で目に付きやすい差をざっとまとめてみた.わりとどちらもプラグインであれこれできる上片方は open source なので,これはデフォルト,あるいはちょっと調べて筆頭で出てくる設定/鉄板プラグインとかを使った状態で,ということになります.間違いあったら適宜ご指摘ください

Logseq Obsidian
オープンソース
プラグインシステム
ドキュメント https://docs.logseq.com/ https://help.obsidian.md/
基本スタイル Outliner. 箇条書きベースのmarkdown markdown
リンク機能 元々箇条書きベースなのでブロックごとのリンク貼りが容易.embed したやつはその場で編集もできる. ファイルへのリンク, # heading へのリンクは自然,それ以上の粒度はリンク元に特殊な記法を挿入.編集は原則元のファイルに飛んでから.
backlink (あるページへのリンク元をそのページで表示する機能) ブロックベースでリンクを遡るので,意味のある文脈が拾いやすい(主観).backlink の集積自体が有意義なまとめになりやすいかも(主観).backlink 先の部分はその場で(ページ遷移せず)編集できる. ページ内のリンク近辺が表示されて良いのだが,元のページを見に行くことが多い(主観).backlink はページ同士の関係性に関する機能という感触(主観). backlink 先の編集はそのページに飛んでから.
「ふつう」の markdown らしさ ordered list などところどころ特殊.ブロックへのリンクも,内部的に付番をしているので logseq 外からは追いづらい 割と素直な markdown で,便利機能は markdown を読む段階ではなく,入力のところの支援で実現
alias (メモのタイトルにつける別名) Logseq 側ですべて同一視.ファイル内の [[aliasname]] へのリンクを辿ると basename.md が開く (つまり alias に関する情報がないとページを辿れないが,逆に2つのページ名を単に同一視できる) リンクを貼るときに補完・検索で同一視.ファイル内では [[basename|aliasname]] という記法に統一(つまりリンク関係は alias 情報を読まなくても正当に辿れる).別に aliasname.md という実在のノートが作れてしまう
メモのフォルダ分け構造 ファイル名に反映 (parent___child.md).ファイルのディレクトリ構造もよしなに読んでくれるらしい. ファイルのディレクトリ構造そのまま
タグ 内部的にはページと一緒,backlink がタグを辿る機能を持つ タグとして別機能.
その日のメモを書く journal デフォルトで対応,ずらずら一覧できる 日付名の .md を自動生成するくらいの機能
Zotero 連携 あるし使えるが,今最も使われてるのは web api を経由していておそらく筋が悪い ローカルに起動している Zotero と直接やり取りできるプラグインが最大手

基本スタイル

Logseq は Outliner を標榜していて,ありていに言えば箇条書きベースの block を基本単位とする markdown になっている.

何もないところでも bullet がある
Logseq の基本編集画面

一方 Obsidian はほぼ普通の markdown.

普通の markdown
Obsidian の基本編集画面

リンク機能

[[ページ名]] で内部リンクを貼れるのは共通.Logseq の方は(箇条書きのインデントで構造化される)ブロックごとにその reference や embed をする機能があり,内部的には ((645c6eed-86d3-4a68-8014-15b380351dd8)) みたいな(テキストとしてのファイル内には陽にはでてこない)文字列で定義され,基本的には右クリックのメニューからコピーする.

Logseq で少し前の日の記述を引っ張ってくる

Obsidian では,節 (headings) へのリンクは ページ名#節名 で貼ることができる (wikipedia の節リンクとほぼおなじ).他の任意の部分(1つのパラグラフとかリストとか)へのリンクは,リンクされるべき場所を ^465f73 のようにマークして,そこへのリンクを [[ページ名#^465f73]] のように作ることで設定される.このマークは手動で作ることもできるし,自動補完で勝手に埋めてもらうこともできる.

Obsidian. `^` を打つとリンク先が suggest される

できたリンク(ここでは同じページの中にリンクを貼っている).

Linked references (logseq) とか Linked mentions (Obsidian) とかいう名前で,そのページにリンクを貼っているページをその文脈とともに表示する機能.このあたりのツールの最重要機能と言って良いと思う.個人的には Logseq のほうが好み(ベースの設計と噛み合ってる感じがするのと,その場で編集できたりして使いやすい).

Logseq (うつ病に関するメモのページのリンク元が表示されている).元々が block を主体にしているので読みやすいかも

Obsidian の backlink.

普通の markdown らしさ

まず Logseq は outliner で,すべてが箇条書きというのは上に書いた通り.このためファイル形式は .md ではあるのだけれど,ブロック構造の記録に重点がある気配.

そもそもあまり明示されていないが,上のページ間リンクの貼り方にせよ下の alias 機能にせよ,多分色んな機能について Logseq はビューワとしての Logseq で賄う傾向が, Obsidian は入力支援で Obsidian を使って書く時に実現する傾向がある.

たとえばブロックへのリンクの記法についていえば, Logseq の方はリンクに使う文字列(((645c6eed-86d3-4a68-8014-15b380351dd8)) )がどこを指しているのかはファイル内には書かれていない.一方 Obsidian は(通常の markdown にはない記法とはいえ),リンクを挿入する時に,呼び出す側 ([[page#^465f73]] )と呼び出される側 (^465f73) の両方に自動でマークが埋め込まれる,ということになる.

結果として,できあがったファイル群を他のアプリケーションから読みやすいのは多分 Obsidian で(オープンソースなのは Logseq なので若干ねじれを感じる),markdown に寄り添うことも大事にしているような気がする.

個人的に許せないのが(しかしブロック構造を最優先する上で致し方ないとも思われるのが),Logseq の場合,上のスクリーンショットol に当たる箇条書きが,保存されている markdown をみると↓のようになっていること:

- こんなふうに bullet が(なにも書かなくても)ある
 - 下の段
 - enumerate
      logseq.order-list-type:: number
 - もある
      logseq.order-list-type:: number

Vim とか外部のエディタを使って一部修正するのとは若干相性が悪いんですよね.

alias

ページ名に別名をつける機能.例えば FIFO と first-in-first-out,encoding とエンコーディング,とかは(あるノートのタイトルとして)同一視してほしい. Logseq でも Obsidian でもこの機能があり,いずれも本体となるファイルのメタデータに記載する (markdown のヘッダに alias: ["foo"] みたいに書く).たとえば, endcoding.md というファイルにノートを書いて,"encoding" も "エンコーディング" もこの記事を指すようにしたい場合,

  • Logseq では,Logseq 氏がすべて同一視してくれる.[[encoding]] でも [[エンコーディング]] という記法でも encoding.md に飛べるし, backlink も追跡される.
  • Obsidian では,リンクを挿入する時に alias もサジェストしてくれる.それに従うと,[[encoding|エンコーディング]] という記法が自動で挿入され,元ファイルへのリンク + 「エンコーディング」という文字列での表示が(マークダウンの標準に近い機能として)実現される.検索では同一視される.[[エンコーディング]] というリンク設定はできるが,それは(まだ作ってない) エンコーディング.md を指す.

機能的には正直 Logseq のほうが使いやすいと感じるが,これまた外部ツールで読むとかそういうことを考えると Obsidian のほうが標準的な挙動をしていると言える.

ノートのフォルダ分け構造

ノートをフォルダで階層構造にすることができる(ファイルシステム上のディレクトリと区別してここではフォルダと呼んでみる).ファイル名+どのフォルダにあるかで二重管理になると面倒なので,一般的なノートについてはには平置きがお勧めだが,作業関係とか,自明な階層関係がある場合とか,ここの論文に対応するノートを置くフォルダとか,フォルダ形式が便利な場合も多い.

どちらもここは差し支えなく作れるのだが,何故か Logseq の方はこのフォルダ構造にあったディレクトリを切るのではなく,parent___child.md というファイル名になるのがデフォルト.なぜか全然わからない.

タグ

Logseq の #tag というタグ記法はほとんど [[tag]] というリンクと同じ.上の backlink 機能をベースに使う想定と思われるが,噛み合わせがよく実に使いやすい.例えば, 色んな疾病についてのメモを作っているときに,その疫学的情報を書くブロックに #epidemiology と打っておけば,バックリンクで「色んな疾病の疫学情報」が集まったページが自動的にできるわけだ.

Logseq のタグ機能

Obsidian はもうちょっと普通のタグ機能寄りで,ページをこれに基づいて絞り込んだりできる.

Obsidian のタグ機能は普通のタグ機能

journal

Logseq のほうにより深く組み込まれてる機能で(専用に journals/ というフォルダが自動で切られる),その日の日付のファイル名でノートが作れる機能.Logseq はデフォルトで,これを無限スクロールのような感じで過去に遡っていくことができる.Obsidian の方は本日のノートを開く機能はあるが,それを一覧できるようにするのとかにはプラグインが必要っぽい.柔軟性はどちらもあるので,あまりどっちかで困ることはないと思いますけれど.

Zotero 連携

文献管理ツールの Zotero との連携は今のところ Obsidian が筋が良いと言わざるを得ない.Logseq との連携は組み込みで ある んだけど,なんと web api のキーを取得してそれを直接叩くという謎設計(2023年11月時点).他のツールがやるように,同じ端末内で起動している zotero とやり取りするほうが色んな意味で好ましいと思うのだが,今のところそれを実現する機能はなさそう. Obsidian の方は obsidian-zotero-integration という拡張があり,十分使いやすい.

ぼくがどちらを使うのか

使い分けると思う.普段の用途,には今のところ Obsidian を使うことになりそう.というのは (1) Logseq しばらく使っていま Obsidian のフェーズだから, (2) Markdown の標準への準拠,ディレクトリ構成の反映などで Obsidian のほうが使ってて気持ちいい,(3) Zotero 連携が筋が良い ので.

あまり大粒でない情報がたくさんあって,それを色んな切り口で眺めたい場合には,ブロックを基盤とした構成と backlink / reference / embed が噛み合った Logseq のほうが相性が良いように思う.上に書いた,色んな疾患の,例えば疫学情報,予後,定義なんかを疾患ごとにまとめて,すると自動的に疫学情報の一覧みたいなのが作れる場合,とか. あと,色んな断片的な文献/報告書から時系列を整理するのに(お仕事にまつわる特定の使途があったのだが,あまり明確にかけないので表現が微妙になる),それぞれの報告書についてページを作り,日付を全部リンクにすると,各日付でどの文書によれば何が起こったかが一覧できるようになる,とか,そういう使い方は非常にやりやすかった.

あと,実は使ってて新しいものを使ってる感じがより強いのは Logseq だったりするので,その辺の楽しさも今後影響してくるようには思う.色々試しながら,ですね.個々人にしっくりくる使い方があると思うので,何が嵌るか,だと思います.