ツェッテルカステンの我流ワークフロー
概要¶
この記事では以下の内容について扱います:
- ワークフローのないPKMツール(Personal Knowledge Management)の運用で生じたコンテキスト喪失の問題
- ツェッテルカステンによる解決、私が実践する我流ワークフローについて
ツェッテルカステン(Zettelkasten)とは、20世紀ドイツの社会学者ニクラス・ルーマン(Niklas Luhmann)の提唱した情報管理手法です。
「カード」(Zettel)に書いたメモを「箱」(Kasten)に入れて知識を管理します。
ルーマンが使用していたツェッテルカステンはアナログでしたが、その本質はワークフローにあり、デジタルでも実践可能です。
コンテキスト喪失問題¶
ワークフローのないPKMツールの課題¶
私は以前、Scrapbox(現Cosense)を使って読書メモなどを記録していました。
当時のワークフローは単純で、気になったことを1ノートとして雑多に追加していくだけでした。
記事『 学んだことをすぐ忘れてしまう人が知らない「知識を貯める」とっておきの方法 』で紹介されているような「ビオトープ」として、読書メモや百科事典的な情報から自分の感想まで、ノートの種類に制限はありませんでした。
しかし、続けるうちに「ページ同士が繋がるコンテキストが分からない」という問題が発生しました。
私は最低限の用語のリンクやタグをノートに指定するだけで、それ以上踏み込んだページ同士の繋がりを明示していませんでした。
コンテキストを失うということ¶
「コンテキストが分からない状態」の具体例として、以下のようなノートがあったとします。
「RapperBotによる難読化自体はシングルバイトのXORという単純な方法によって行われている」
これだけでは単なるマルウェア「RapperBot」に関するセキュリティの知識です。
私が「どうしてこの情報を記録しようとしたのか」のコンテキストは、このノートから分からない状態です。
このノートを作ったときの私は何かを考えていたはずです。そして、その考えは今も私にとって重要なことかもしれません。
コンテキストとノートの関係は、インテリジェンスとデータの関係に近いと思います。
データとは情報やファクト、あるいは統計情報を意味する。単なるファクト。
インテリジェンスとは、データを分析することで得ることができる。
たとえば天気予報において気温はデータだが、これを意思決定に役立てるにはその日に何が行われるかなど文脈に合わせた分析が必要となる。
引用元: Scott J.Roberts, Rebekah Brown 著ほか『インテリジェンス駆動型インシデントレスポンス : 攻撃者を出し抜くサイバー脅威インテリジェンスの実践的活用法』
データだけではデータ同士の繋がりは見えません。特定の文脈において考察することでインテリジェンスとして価値が出てくるのです。
ツェッテルカステンによる解決¶
私はこの問題を解決するためにツェッテルカステンを導入しました。
ちょうどScrapboxでは構造的にデータを扱えないと考え、 Obsidian にPKMを移行するところでした。
ツェッテルカステンを始めるにあたり、『TAKE NOTES! : メモで、あなただけのアウトプットが自然にできるようになる』(ズンク・アーレンス 著ほか)を読みました。
この書籍では、ツェッテルカステンのやり方、そしてツェッテルカステンが情報の管理方法ではなく「思考のためのツール、ワークフロー、記憶を拡張する仕組み」であることを解説しています。
ウェブ上でもツェッテルカステンのやり方は調べられますが、ハウツー紹介だけの記事や別の分類方法と組み合わせた記事も検索されるので、まずはこの本を読みながら試すことで理解が深まります。
以下は『TAKE NOTES!』を踏まえた上での、私のワークフローです。
ツェッテルカステン我流ワークフロー¶
以降のワークフローではObsidianを使う前提で書いていますが、フォルダ分けとメモ同士のリンクが作れるならエディタやツールは選びません。
逆に言えば、Obsidianを使っただけでは、「ページ同士が繋がるコンテキストが分からない」という問題は解決しません。
メモのワークフロー¶
メモを書くワークフローの図は以下のとおりです。
「メインのメモ」と「読書メモ」は 永久保存版のメモ として扱われ、一度入れたら削除も更新もしません(デジタルなので「てにをは」や主旨と関係のない誤字は直すことがあります)。
flowchart TB
A[走り書きメモを書く] ==> B([メインのメモ・読書メモの箱に入れることを考えてメモを書き直す]) ==> C[メインのメモ・読書メモの箱に入れる]
メモを保存するフォルダ(箱)とワークフローの図は以下のとおりです。
四角はフォルダ名。
graph TB
A1([新規ノート作成]) ---> Z1
Z1 -->|文献メモ| 文献フォルダ
Z1 -->|メインのメモ| Z3
Z2 -->|読書メモ| Z2a
Z2 -->|ウィキ| Z2b
Z2a -.->|ファイル参照| D1
Z2b -.->|ファイル参照| D1
Z3 -.->|ファイル参照| D1
Z3 -.->|参照| 文献フォルダ
subgraph " "
D1[_files]
Z1[_wip]
Z3[Main]
subgraph "文献フォルダ"
Z2[Info]
Z2a[book]
Z2b[wiki]
end
end
_wip- 走り書きメモ用フォルダ
Info- 文献用メモフォルダ
- さらにその下に読書メモ用の
bookと百科事典的メモ用のwikiを作成する
- さらにその下に読書メモ用の
- 文献用メモフォルダ
Main- メイン用メモフォルダ
_files- 添付ファイル用フォルダ
基本は以上のフォルダのみで、他は必要に応じて追加します。Info以外のフォルダは階層にしません、全てフラットにファイルを保存します。
ルーマンが使っていたツェッテルカステンはアナログの箱と紙だったので、メモを入れる箱には複数の引き出しがありました。
しかし、デジタルで実践する場合は引き出し(フォルダ)に細分する必要はなく、ファイル名が整列してあれば1つのフォルダで十分です。
「走り書きメモを書く」¶
永久保存版のメモ(メインのメモと読書メモ)には、いきなりメモは追加しません。
まず一時的に走り書きメモを専用の箱( _wip フォルダ)に保存します。ここには読書メモ、思考メモ、疑問メモといった全てのメモを保存します。
この時点ではメモのファイル名は特に考えないでデフォルトにしておきます。
Obsidianでは「Unique note creator」という機能があり、ファイル作成日時をベースにしたファイル名を自動で設定できます。この機能はツェッテルカステンを実施する上で非常に有用です。
走り書きメモは可能なら数日以内に、ツェッテルカステンのメモにするかどうかを判断します。
私は数日以内に判断する制限は重要視していません。時間と共に「どうしてメモを取ったのか」のコンテキストは抜け落ちるものですが、メモを残し続けるうちにコンテキストも自然と残せるようになります。
忙しくても走り書きメモを見れば、ツェッテルカステンは再開できるのです。
しかし、全ての走り書きメモを永久保存版のメモにするわけではありません。捨てる決断も重要です。
「メインのメモ・読書メモの箱に入れることを考えてメモを書く」¶
走り書きメモからメインのメモの箱に入れてもよさそうだと判断したら、次はそのメモが既存のメモとどう関わりがあるかを考えながらあらためてメモを書きます。
関わりがなければ新しいものとして扱います。
もし既存のメモと関わりがあるなら、関わりがあるメモの続きとして扱います。
メインのメモは体系的ではなく、繋がりさえわかればいいという点が重要です。
各フォルダの関連性は前述のフォルダとワークフローの図のとおりで、主体となるのはメインのメモです。
読書メモは参照される側にすぎないので、関連性は同じ本かどうか程度しかありません。
ここで注意したいのが、読書メモはメインのメモから極力参照した方がいいということです。
読書メモはなんらかの興味があって記録しますが、そのコンテキストは読書メモには残りません(読書メモは引用か、その部分のみについて書くため)。
読書メモのコンテキストはメインのメモに保存します。
専用のMOC(Map Of Content、いわゆる目次)を作ってこのコンテキストが失われる問題に対応できないこともありませんが、メインのメモが育たないこと、最初から扱う領域を制限することにより偶発的なノート間の繋がりが発生しにくいので推奨しません。
以下の図がメインのメモによりコンテキストを保持する例です。
メインのメモがあることにより、自分がどうしてその部分を読書メモとして残そうとしたのか記録できます。そして新たな疑問や考えが浮かんだときに繋げることができます。
メモはメインのメモと読書のメモのどちらを先に作るかは重要ではありません(疑問から記事を調べてその回答の読書メモでもいいし、記事を読みながら疑問が生じてメインのメモを書いてもいい)。
flowchart TB
subgraph メインのメモ
main["マルウェアはどうして難読化しているのか"]
main2["マルウェアの難読化は検出回避の技法の一つ"]
main -->|関連するメモとして枝番を追加| main2
end
subgraph 読書メモ
read["RapperBotによる難読化自体は、シングルバイトのXORという単純な方法によって行われている"]
book["記事『日本国内で暗躍しDoS攻撃を行うRapperBot』"]
book -->|記事の読書メモ| read
end
main -->|参照によるコンテキストの付与| read
多忙でツェッテルカステンができない時も、コンテキストが維持されるので再開が容易です。
「メインのメモ・読書メモの箱に入れる」¶
永久保存版となるメモを作ったら、 Main や Info にファイルを追加します。
フォルダ移動時には移動対象のフォルダによって以下のような命名規則がありファイル名を変更します。
_wip- 1つのファイルに走り書きをまとめてもいい
- メモごとにファイルを作るなら新規作成時のデフォルトまたは作成日時のUID
Infobook- 作成日時のUIDベースに同じ文献は枝番を振る
wiki- タイトル
Main1から始まる数字を幹として関連するメモに枝番を振る
メインのツェッテルカステンは以下のような構造になるようにファイルを命名します。
以下のリストの 1 は新しい情報にまつわるメモのファイル名です。
Obsidianでは [[ファイル名|タイトル]] というウィキリンク形式でリンクを作成できます。
- [[1|マルウェアはなぜ難読化しているのか]]
- [[1a|マルウェアの難読化は検出回避の技法の一つ]]
- [[1a1|難読化エンジンBatCloak]]
- [[1a2|難読化ツールAceCryptor]]
- [[1b|Ryukによる検出妨害の仕組み]]
- [[2|文章を書く上で気をつけること]]
- [[3|タイトルプロパティを設定することについて]]
1a もファイル名で、 1 に関連するメモなので a という枝番をつけています。
1b は 1 に関連するメモだが 1a とは違う情報もしくは並列に扱いたいメモとします。
1a1 なども上と同様に続けて命名します。
1 とは関連がない情報のメモであれば、新たな 2 のメモを作成します。
リストから分かるように、 1 や 2 といった「幹」に当たるメモは全く関係がなくても構いません。
世の中のものが体系的に整理されているため最初は気になりますが、とにかく気になった順に入れていき関係性は後から追加するという割り切りが大事です。
また、ファイル名を番号にすることは優先順位付けではないと意識することも重要です。
メインのメモは枝の構造が重要なので、ファイル一覧で見ることはせずに、専用のインデックスファイルを作成します。
書き方は前述のリストのように枝番号の分だけインデントを深くしていきます。
ファイル一覧で見るよりも構造が一目見て分かります。
この枝番システムは文献メモのうち読書メモ( book )でも使います。
読書メモの場合は、メインのメモとは少々異なり以下のリストのように管理します。
このとき、書籍ノートのファイル名を作成日のUIDとし、章ノートはその枝番、その章に対する読書メモはさらに枝番を追加する命名規則としています。
読書メモのファイル名には文献内での順番を維持すること以外に目的がないため、機械的に順番を設定します。
- 20241111(書籍Aの書籍ノート)
- 20241111a(書籍Aの章ノート:第1章)
- 20241111a1(書籍Aの読書メモ:第1章に関するメモ)
- 20241111b(書籍Aの章ノート:第2章)
- 20241111b1(書籍Aの読書メモ:第2章に関するメモ)
- 20241112(ウェブサイトAの書籍ノート)
- 20241112a(ウェブサイトAの読書メモ)
書籍ノートにはその書籍の書誌情報と章ノートへの一覧を記載します。
章ノートは読書メモへのリンクを作成し、そのリンクをObsidianの埋め込みリンクとしてリンク先に飛ばずに読書メモの内容が見えるようにしています。
ウェブの記事なども文献フォルダの読書メモとして扱いますが、この場合は分量が少ないので書籍ノートと章ノートを足したノートを作ります。
以下は章ノートの例です。

文献メモのうちウィキ( wiki )はこれらとは異なり、ファイル名はその用語とします。
他のメモの文中にリンクを張る際の利便性のため、あくまでリンクを貼られる側でありこれ自体にコンテキストや繋がりは存在しないためといった理由があります。
「ツェッテルカステンは百科事典ではない」と『TAKE NOTES!』にもありますが、とはいえ百科事典的メモも手元に保持したい・リンクを作りたいのが実情です。
そのため、メインのツェッテルカステンでは百科事典的なメモは作らずに、ウィキフォルダとして用意します。
ここまでが私のツェッテルカステンの基本的なワークフローです。
移行前のPKMツールのデータを扱う¶
私は以前はScrapboxにさまざまなメモを保存していました。
エクスポートとMarkdownファイルへの変換は可能ですが、このデータは数千件あり全て分類を行っていないため一度にツェッテルカステンへ移行することは困難です。
そのため、 _yet というフォルダを作成し、Scrapboxで管理していたファイルを管理しています。
このフォルダのファイルは新しくファイルを作る際にリンクされる・検索で重要そうだと判断したら、ワークフローに則って整備して適切なフォルダに入れる運用にしています。
また、移行前のPKMツールからエクスポートが難しい場合でも、メインのメモからリンクを記載することで、ツェッテルカステンに取り込むことが可能です。
flowchart TB
subgraph "ツェッテルカステンのメモ"
main["移行前のPKMツールのメモへの言及
移行前のPKMツールのメモへのリンク"]
end
subgraph "移行前のPKMツールのメモ"
read["何かしらの内容"]
end
main -->|参照によるコンテキストの付与| read