AIFCC
記事一覧へ
agent-opsai-thinkingclaude-setup

Joe Hudsonの思想をナレッジグラフ化した方法

Zakk@0xZakk
563
## なぜ1人の人物の作品のナレッジグラフを構築するのか Joe Hudsonは世界トップのCEOやビジネスリーダーのエグゼクティブコーチです。彼の仕事は感情に重点を置いており、感情の流動性と明確性を達成することで、ビジネスを含む人生のあらゆる領域に利益をもたらすことを目的としています。コース、ポッドキャスト、YouTubeチャンネルを通じて、より幅広い聴衆に作品をアクセスしやすくしています。私は2023年から彼の作品に取り組んでおり、様々な面で非常に役に立つと感じています。それはセラピーやパーソナル開発など、人々が慣れ親しんでいる種類の「作業」とは非常に異なります。しかしそれが彼の視点に力を与えるものの1つです。 同時に、私はAIを活用して人々が学び成長するのを助ける方法に非常に興味を持っています。ナレッジグラフとAIを中心に発展しているテーゼがあり、本当の学習にAIを活用する方法を見つけることを目標に実験し始めています。少なくとも、ナレッジグラフはある知識領域を理解するための非常に強力なツールです。いくつかの実験を試みていますが、その1つがJoe Hudsonの公開コンテンツのグラフを構築することでした。 ## これは何か 私はしばらくの間、様々な形式のナレッジグラフに興味を持ち、Roam Research、Zettelkasten、個人知識管理のためのナレッジグラフについて広く書いてきました。AIで興奮していることの1つは、一歩大きなナレッジグラフを構築できる可能性です。まず:キャノンのナレッジグラフはどのように見えるのでしょう? Joe HudsonのArt of AccomplishmentのYouTubeチャンネルには約300本の動画があります。コーチングセッション、ポッドキャストエピソード、インタビュー、スタンドアロンの教えにわたります。トピックは感情、関係性、恥、怒り、恐れ、リーダーシップ、自己認識、目的、現在に及びます。そしてアイデアは深く相互接続されています——怒りについてのコーチングセッションのコンセプトは、数ヶ月後にリーダーシップについて言ったことを明らかにする場合があります。 しかしYouTubeは線形でサイロ化されています。カタログ全体でアイデアをトレースする方法がありません。1本の動画を視聴し、いくつかのメモを取り、次の動画が始まって前のものが遠ざかります。接続は埋もれたままです。 私が欲しかったのは別のものでした:全ての原子的なコンセプトが関連するコンセプトとソース動画にリンクするZettelkastenスタイルのナレッジグラフ。1つの教えにクリックしてYouTubeをブラウズするだけでは絶対に見つからない接続を辿る。アイデアがどのように接続されているかを示すビジュアルグラフを持つブラウズ可能で検索可能なウェブサイト。 最終的な結果:296のソースノート、1,248の原子的な教えノート、10のキュレーションされたトピックページ、そして数千のクロスリンク。3日間で構築してaoa.zkf.ioにライブデプロイできました。 これはファンプロジェクトです。全てのコンテンツはJoeの公開YouTubeビデオからで、彼のものです。彼の作業をより深く理解したいため、そしてこのアプローチが1人のクリエイターのカタログを超えた意味を持つと思うため、これを構築しました。 ## ソースの収集 — 300本の動画、1つのチャンネル 最初のステップは、Art of AccomplishmentのYouTubeチャンネルの全動画のトランスクリプトを取得することでした。 yt-dlpを使って自動生成されたVTTサブタイトルをダウンロードしました: ```bash yt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format vtt -o "transcripts/%(id)s" "https://www.youtube.com/watch?v=VIDEO_ID" ``` YouTubeの自動生成字幕は驚くほど使えます。癖があります——キューをまたいで繰り返される行、時々の聞き取りにくい単語、スピーカーラベルなし——しかしコンセプトを抽出するには十分です。VTTファイルを解析し、ヘッダーとタイムスタンプを除去し、繰り返される行を重複排除しました。580以上のトランスクリプトファイルが/transcripts/ディレクトリに入りました。 チャンネルのコンテンツは:108のポッドキャストエピソード、95のスタンドアロンレッスン、87のコーチングセッション、5のゲスト出演。 ## ソースノートの作成 — 構造化された動画サマリー 全ての動画がソースノートを受け取りました。その動画の「ハブ」ページと考えてください——そこから抽出された個々の教えにリンクし、それらの教えを特定のソースに固定します。Zettelkastenパターンでは、これらは参照ノートに相当します。 各ソースノートはテンプレートに従います: ```yaml --- title: "動画タイトル" source: https://www.youtube.com/watch?v=VIDEO_ID videoId: "VIDEO_ID" type: teaching|coaching-session|interview duration: "M:SS" category: "Short Lesson|Podcast Episode|Coaching Session|Guest Appearance" topics: [topic1, topic2] date: 2026-01-27 --- ``` その後に埋め込みYouTubeプレーヤー、AI生成のサマリー2〜3段落、抽出された教えノートへのwikiリンクとしてのキーコンセプト、トランスクリプトからの3〜6つの注目すべき引用、フル清掃トランスクリプトテキストが続きます。 各動画のトランスクリプトとメタデータを処理し、サマリーを生成し、キーコンセプトを特定し、引用を選択し、適切なフロントマターとwikiリンクで最終的なマークダウンファイルを作成するためにClaude Codeを使いました。 ## 教えの抽出 — 1,248の原子的なアイデア Zettelkastenの原則が機能するところ:ノートあたり1つのアイデア。各ノートは原子的な自己完結したコンセプトを表します。 Andy MatuschakのEvergreen Notesからタイトル付けのアプローチを借用しました。Matuschakはノートタイトルはラベルではなく完全なフレーズであるべきだと主張します。「受容 vs 愛」のようなタイトルは一般的な近傍を教えますが具体的なことは何も。「愛なしに受容に達することはパターンを繰り返す」は考え自体を持ちます。 各教えノートにはトランスクリプトからの関連する引用を含む2〜4段落の説明、他の教えへのwikiリンクを含む関連コンセプトセクション、ソースノートへのリンクがあります。 全てのソースを処理するにはサブエージェントを作成してバッチで作業する必要がありました。動画は3本のバッチで処理され、各バッチは前のバッチへの接続を確認しました。これにより品質が一定に保たれ、クロスリンクが後付けではなく作成時に行われることが確保されました。 ## ノートの接続 — スケールでのセマンティック類似性 作成中の手動クロスリンクは明らかな接続をキャッチします。しかし1,248のノートがあると、可能なペアは778,128あります。手動で確認することは不可能です。 そこで埋め込みベースのセマンティックリンクが登場します。 カスタムPythonパイプライン(semantic_links.py)を構築しました: - 1,248のノートを全て解析してボディテキストを抽出 - wikiリンク構文を除去しながらテキストコンテンツを保持 - BAAI/bge-base-en-v1.5を使って正規化された埋め込みを生成 - 全ノートペアにわたってコサイン類似性を計算 - 各ノートについて類似度閾値以上の上位マッチを見つける 閾値は0.80コサイン類似度——比較的高く、緩いテーマの類似ではなく強い概念的重複を確保します。ノートあたり最大5リンクにキャップ。 806のノートが新しい接続で更新されました。全教えノートの65%が、手動のクロスリファレンスでは絶対に見つからなかった非明白なリンクで豊かになりました。 ## トピックページ トピックページはサイトの最も「著者化された」部分です。10のキュレーションされたトピックページ——目的&意味、現在&真正性、感情&感情処理、自己認識&自己発見、関係性&接続、恥&自己批判、怒り&境界、恐れ&不安、リーダーシップ&ビジネス——それぞれに数十の教えリンクを一貫したナラティブに織り込んだ600〜1,200ワードの豊かなサマリー。 これらがエントリーポイントです。グラフビューは構造を見せ、検索は特定のアイデアを見つけさせますが、トピックページは個々のノートをブラウズするだけでは得られない方法で関連するコンセプトを案内します。 ## パイプラインのまとめ 完全なアセンブリライン、最初から最後まで: 1. スクレイプ — yt-dlpが各動画の自動生成VTTサブタイトルをダウンロード 2. 解析 — VTTファイルのクリーニング:タイムスタンプ除去、繰り返し行の重複排除 3. ソースノート生成 — Claudeが各トランスクリプトを読み、サマリー、キーコンセプト、引用、フルトランスクリプトを含む構造化参照ノートを生成 4. 教えノート生成 — Claudeが原子的なアイデアを抽出し、クロスリンクで独立したノートとして書く 5. バッチ処理 — 動画を3本のバッチで処理、前のバッチへの接続を確認 6. 品質管理 — 孤立したノートを修正、不完全なソースを再処理、コンテンツのないトレーラーを削除 7. セマンティックリンク — Pythonスクリプトが埋め込みを生成し、類似性を計算、接続を追加(806ノード更新) 8. ウェブサイト構築 — Quartzが全てを静的サイトにレンダリング 9. ポリッシュ — リブランディング、UX改善、カテゴリ分け、トピックページ 10. デプロイ — Netlify、カスタムドメイン ## 結果と振り返り **数字で見ると** - 296のソースノート(約300本の動画から、3本は利用不可、1本はチャンネルトレーラーで削除) - 1,248の教えノート - 10のトピックページ - 806ノードがセマンティックリンクで強化 - 0.80コサイン類似度閾値 - ソースあたり平均約4.2の教え - 108のポッドキャストエピソード、95のレッスン、87のコーチングセッション、5のゲスト出演 ## 大きな絵 これがJoe Hudsonのカタログを超えて重要だと思う理由があります。 ナレッジグラフには多くの興味深いユースケースがありますが、これまでは実際に構築するのに費用がかかりすぎました。AIはこれを以前はできなかった方法で実現可能にします。抽出、構造化、リンク——これらは人間が数ヶ月または数年かかるタスクです。LLMは数日でこれを処理できます。AIがJoeの作品を理解するのが人間より得意だからではなく、AIが機械的な部分が速いから:トランスクリプトを読む、コンセプトを特定する、構造化されたノートを書く、類似性を計算する。 これはより多く見られるパターンだと思います。個々のクリエイターの作品のナレッジグラフだけでなく、学術分野、哲学的伝統、科学的文献のナレッジグラフ。それらは全て同じパイプラインのスケールアップバージョンです:ソースを収集し、アイデアを抽出し、リンクして、インターフェースを構築し、デプロイする。
原文を表示 / Show original
Introduction — Why Build a Knowledge Graph of One Person's Work? Joe Hudson is an executive coach to many of the world's top CEOs and business leaders. His work is very emotion-oriented, focusing on getting to emotional fluidity and emotional clarity in order to benefit any area of our life, including business. He offers courses, a podcast, and a YouTube channel to make his work more approachable to a wider audience. This article from Every is a good introduction to his work and what it means. I have personally been engaging with his work since 2023 and have found it to be very helpful across a variety of fronts. It is very different from the kind of "work" that people are probably used to, in the form of therapy or personal development. But that's one of the things that gives his perspective its power. Simultaneously, I've been very interested in how to leverage AI to help people learn and grow. I have a thesis developing around knowledge graphs and AI that I'm starting to really tinker with, all with the goal of finding ways to leverage AI for real learning. At the very least, knowledge graphs are a very powerful tool for understanding an area of knowledge. That is to say: there's a lot of potential here. I've been playing around with a few experiments with knowledge graphs, one of which was to build a graph of Joe Hudson's publicly available content, which is what I'd like to describe here. You can access the graph itself here. What Is This? I've been interested in different forms of knowledge graphs for a while and have written extensively about Roam Research, Zettelkasten, and knowledge graphs for personal knowledge management. One of the things that I'm excited about with AI is the ability to build knowledge graphs that are a step larger. First: what does it look like to build a knowledge graph for a canon? Joe Hudson's Art of Accomplishment YouTube channel has roughly 300 videos. They span coaching sessions, podcast episodes, interviews, and standalone teachings. The topics range across emotions, relationships, shame, anger, fear, leadership, self-awareness, purpose, and presence. And the ideas are deeply interconnected — a concept from a coaching session about anger can illuminate something said about leadership months later. But YouTube is linear and siloed. There's no way to trace ideas across the catalog. You watch one video, maybe take some notes, and then the next video starts and the previous one recedes. The connections stay buried. What I wanted was something different: a Zettelkasten-style knowledge graph where every atomic concept links to related concepts and back to its source video. Click into one teaching and follow connections you'd never find browsing YouTube. A browsable, searchable website with a visual graph showing how ideas connect. Here's what I ended up with: 296 source notes, 1,248 atomic teaching notes, 10 curated topic pages, and thousands of cross-links. I was able to build the entire thing in about three days and push it live to aoa.zkf.io. I want to quickly not here that this is a fan project. All of the content is from Joe's publicly available YouTube videos and belong to him. I built this because I wanted to understand his work more deeply, and because I think the approach has implications beyond just one creator's catalog. Collecting the Sources — 300 Videos, One Channel The first step was getting transcripts for every video on the Art of Accomplishment YouTube channel. I used yt-dlp to download the auto-generated VTT subtitles: bash yt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format vtt \ -o "transcripts/%(id)s" "https://www.youtube.com/watch?v=VIDEO_ID" YouTube's auto-generated subtitles are surprisingly usable. They have quirks — repeated lines across cues, occasional garbled words, no speaker labels — but for extracting concepts, they're good enough. I parsed the VTT files, stripped the headers and timestamps, and deduplicated the repeated lines. 580+ transcript files ended up in a /transcripts/ directory. The video library ranges from 1-minute shorts to 100+ minute podcast episodes. The channel's content breaks down roughly into: 108 podcast episodes, 95 standalone lessons, 87 coaching sessions, and 5 guest appearances. (I added the categorization later, but it helps to know what we're working with.) I also attempted a transcript reformatter pipeline using faster-whisper and pyannote for speaker diarization — the idea being that better transcripts with speaker labels would improve extraction quality. That pipeline got blocked by YouTube 403 errors on audio downloads. The auto-generated VTT subtitles turned out to be sufficient, so I moved on. Creating Source Notes — Structured Video Summaries Every video got a source note. Think of it as the "hub" page for that video — it links outward to the individual teachings extracted from it, and it anchors those teachings to a specific source. In the Zettelkasten pattern, these are analogous to Reference Notes. Each source note follows a template: yaml --- title: "Video Title" source: https://www.youtube.com/watch?v=VIDEO_ID videoId: "VIDEO_ID" type: teaching|coaching-session|interview duration: "M:SS" category: "Short Lesson|Podcast Episode|Coaching Session|Guest Appearance" topics: [topic1, topic2] date: 2026-01-27 --- Followed by an embedded YouTube player, a 2-3 paragraph AI-generated summary, key concepts as wiki links to extracted teaching notes, 3-6 notable quotes from the transcript, and the full cleaned transcript text. I used Claude Code to process each video's transcript and metadata, generate summaries, identify key concepts, select quotes, and create the final markdown files with proper front matter and wiki links. Including the full transcript makes the site fully searchable and self-contained. You don't need to leave the graph to check what Joe actually said — it's right there in the source note. Extracting Teachings — 1,248 Atomic Ideas This is where the Zettelkasten principle kicks in: one idea per note. Each note represents an atomic, self-contained concept. I borrowed the titling approach from Andy Matuschak's Evergreen Notes. Matuschak argues that note titles should be complete phrases, not labels. A title like "Acceptance vs Love" tells you the general neighborhood but nothing specific. A title like "Getting to acceptance without love repeats the pattern" carries the idea itself. You can read it and know what the note is about before you click. Matuschak calls this sharpening the claim — the title puts pressure on you to actually support it in the body, and when you can't articulate a sharp title, that's a sign the thinking is still muddy or the note is about several things at once. I found this to be true: the teachings with the clearest titles were the ones that needed the least revision. Each teaching note has 2-4 paragraphs of explanation with relevant quotes from the transcript, plus a Related Concepts section with wiki links to other teachings, and a Source link back to the source note. How many teachings per source? It depends entirely on the content. A 5-minute video with one core idea gets 1 note. A 30-minute coaching session might have 8. A 3-hour deep dive could have 20+. The average worked out to roughly 4.2 teachings per source (1,248 teachings across 296 sources). But the key thing here was having Claude outline each source to extract the key teachings, then summarizing those teachings. An earlier iteration of this process gave the LLM guidelines for how many notes to create per source, but those quickly became metrics and the note quality suffered. Getting through all the sources required creating subagents to work in batches. Videos were processed in batches of 3, and each batch checked for connections to prior batches. This kept quality consistent and ensured that cross-linking happened at creation time, not as an afterthought. The batching also made the process manageable — 72 batches planned, processed in sessions over about two days. Not everything went perfectly. 25 literature notes ended up orphaned (not properly linked to any source). 14 reference notes needed a second pass because they were incomplete. One welcome video got removed entirely because it was a 1-minute channel trailer with no substantive content. But these were caught and fixed quickly because the batch approach made quality control straightforward. Connecting Notes — Semantic Similarity at Scale Manual cross-linking during creation catches obvious connections. A teaching about shame in one video clearly relates to a teaching about shame in another. But with 1,248 notes, there are 778,128 possible pairs. Impossible to check manually. Many conceptual connections are non-obvious — a coaching session about anger connecting to a podcast about leadership, or a teaching about self-awareness illuminating something about boundaries. This is where embedding-based semantic links come in. I built a custom Python pipeline (semantic_links.py) that does the following: Parse all 1,248 teaching notes and extract body text Strip wiki link syntax but keep text content Generate normalized embeddings using BAAI/bge-base-en-v1.5 (a sentence transformer optimized for retrieval) Compute cosine similarity across all note pairs For each note, find the top matches above a similarity threshold The threshold was 0.80 cosine similarity — relatively high, which ensures strong conceptual overlap rather than loose thematic resemblance. I capped it at 5 links per note maximum. 806 notes got updated with new connections. That's 65% of all teaching notes enriched with non-obvious links that manual cross-referencing would never have found. The script also has diagnostic features: report shows the similarity distribution and sample connections, inspect <slug> shows the top 20 connections for a specific note, and apply writes links to files (with a dry-run default so you can inspect before committing). This dry-run-first workflow was critical — I could verify the quality of connections before writing anything to 800+ files. Later, I stripped the brief descriptions from the link text, leaving just the wikilink for cleaner presentation. 1,119 files updated. But the connections themselves — those stayed. The Topic Pages The Topic pages are the most "authored" parts of the site. 10 curated topic pages — Purpose & Meaning, Presence & Authenticity, Emotions & Emotional Processing, Self-Awareness & Self-Discovery, Relationships & Connection, Shame & Self-Criticism, Anger & Boundaries, Fear & Anxiety, Leadership & Business — each with a 600-1,200 word rich summary weaving together dozens of teaching links into a coherent narrative. These are the entry points. The graph view shows you the structure, search lets you find specific ideas, but the topic pages walk you through related concepts in a way that browsing individual notes can't. The Emotions topic page alone weaves together 40+ teaching links into a single essay about emotional processing. The Graph View The knowledge graph visualization is what makes this feel different from a wiki or a blog. You see clusters of related teachings, you see which concepts are hubs with many connections, you see the structure of Joe's body of work emerge visually. I increased the spacing and repulsion for better readability and made labels hover-only to reduce clutter. The Pipeline in Summary Here's the full assembly line, start to finish: Scrape — yt-dlp downloads auto-generated VTT subtitles for each video Parse — VTT files cleaned: strip timestamps, deduplicate repeated lines Generate Source Notes — Claude reads each transcript, produces a structured reference note with summary, key concepts, quotes, and full transcript Generate Teaching Notes — Claude extracts atomic ideas, writes them as standalone notes with cross-links Batch Processing — Videos processed in batches of 3, checking connections to prior batches Quality Control — Fix orphaned notes, reprocess incomplete sources, remove non-content Semantic Linking — Python script generates embeddings, computes similarity, adds connections (806 notes updated) Build Website — Quartz renders everything into a static site Polish — Rebrand, UX improvements, categorization, topic pages Deploy — Netlify, custom domain Results and Reflections By the Numbers 296 source notes (from ~300 videos, 3 unavailable, 1 channel trailer removed) 1,248 teaching notes 10 topic pages 806 notes enhanced with semantic links 0.80 cosine similarity threshold ~4.2 teachings per source on average 108 podcast episodes, 95 lessons, 87 coaching sessions, 5 guest appearances The Bigger Picture Here's why I think this matters beyond just Joe Hudson's catalog. Knowledge graphs have a lot of interesting potential use cases, but have thus far been prohibitive to actually build. AI makes this tractable in a way it wasn't before. The extraction, the structuring, the linking — these are tasks that would take a human months or years. An LLM can power through this in a few days. Not because AI is better than a human at understanding Joe's work, but because AI is faster at the mechanical parts: reading transcripts, identifying concepts, writing structured notes, computing similarities. This is a pattern I expect to see more of. Not just knowledge graphs of individual creators' work, but knowledge graphs of academic fields, of philosophical traditions, of scientific literatures. Those are all just scaled up versions of the same pipeline: collect the sources, extract the ideas, link them together, build the interface, deploy.

AIFCC — AI Fluent CxO Club

読み書きそろばん、AI。経営者が AI を自分で動かせるようになるコミュニティ。

Joe Hudsonの思想をナレッジグラフ化した方法 | AIFCC