在 Day 21 中,我們成功打通了情報沉澱的最後一哩路,透過 ObsidianVaultAdapter 將經由四大代理人評估為 PROCESSED 且評分 $\ge 4$ 的高價值技術情報,轉譯為帶有標準 YAML Frontmatter 的 Markdown 檔案並沉澱至 00_Inbox/Radar/ 目錄。
然而,如果只是把檔案丟進資料夾,這些筆記很快就會變成另一個形式的「數位垃圾場」。在個人知識管理(PKM)體系中,筆記必須能動態湧現(Dynamic Emergence)與網狀互聯(Bidirectional Linking)。
今天我們將在 Obsidian 中利用強大的社群外掛 Dataview (含 DataviewJS) 與 雙向鏈結(Wikilinks),在本地筆記庫打造媲美 Day 20 Google Sheets 戰情室的「跨領域情報熱點看板」,並實現領域知識圖譜的自動演化。
在 Day 21 所生成的筆記 Frontmatter 結構中,我們已經埋下了結構化查詢的種子:
---
id: "dfd9abe0"
title: "State Locking Verification Paper"
source: "https://arxiv.org/abs/test.lock"
domain: "SCIENCE"
score: 5
date: "2026-09-25 14:50:55"
tags:
- intelligence-radar
- domain/science
---
藉由這些標準屬性,我們可以在 Obsidian 建立一個名為 跨領域情報戰情總覽.md 的核心索引筆記(Map of Content, MOC),透過以下四個模組聚合情資:
score >= 5 的必讀突破。domain 分組呈現前沿進展。Cmd + , 或 Ctrl + ,)。請在 Obsidian 的根目錄或 10_MOC/ 資料夾下,新增一篇筆記:跨領域情報戰情總覽.md。
利用 DataviewJS 的即時運算能力,計算當前情報庫的動態數據:
> [!summary] 📡 情報雷達本地資產統計
> ```dataviewjs
> const pages = dv.pages('"00_Inbox/Radar"').where(p => p.score !== undefined);
> const total = pages.length;
> const avgScore = total > 0 ? (pages.score.array().reduce((a, b) => a + b, 0) / total).toFixed(2) : 0;
> const domains = new Set(pages.domain.array()).size;
>
> dv.paragraph(`🔥 **收錄總數**:${total} 篇 | 🌟 **平均評分**:${avgScore} / 5.0 | 🌐 **涵蓋領域**:${domains} 個`);
> ```
這段代碼會直接掃描 00_Inbox/Radar 下的所有檔案,提取 Frontmatter 的 score 欄位即時統計,每次開啟筆記即可掌握當前情報庫體量。
透過簡潔的 DQL(Dataview Query Language),快速抓取評分為滿分(5 分)的最具衝擊力情資,並直接將筆記內部提煉的摘要展示在表格中:
## 🌟 評審滿分(Score 5)頂級情資
```dataview
TABLE
domain AS "領域",
date AS "收錄日期",
choice(contains(file.tags, "domain/science"), "🔬 科學探索",
choice(contains(file.tags, "domain/finance"), "📈 總經金融", "⚡ 基礎建設")) AS "分類標註",
file.link AS "筆記入口"
FROM "00_Inbox/Radar"
WHERE score >= 5
SORT date DESC
LIMIT 10
---
### 3. 多領域情報矩陣(DataviewJS 動態聚合)
如果我們想進一步按照領域(`SCIENCE`、`FINANCE`、`COMMUNITY` 等)自動分組,並以更緊湊的清單或卡片展開,可以使用以下進階 DataviewJS 腳本:
```markdown
## 🗂️ 跨領域技術進展矩陣
```dataviewjs
const folder = '"00_Inbox/Radar"';
const pages = dv.pages(folder).sort(p => p.date, 'desc');
// 依據 domain 分組
const groups = {};
for (let p of pages) {
const d = p.domain || "未分類";
if (!groups[d]) groups[d] = [];
groups[d].push(p);
}
// 動態為每個領域生成清單
for (let [domain, items] of Object.entries(groups)) {
dv.header(3, `📌 領域節點: [[${domain}]] (${items.length} 篇)`);
dv.table(
["技術標題", "評分", "原始來源", "入庫時間"],
items.map(p => [
p.file.link,
"★".repeat(p.score || 0),
p.source ? `[前往原文](${p.source})` : "無連結",
p.date ? p.date.substring(0, 10) : "-"
])
);
}
這段代碼具備高度靈活性:只要 `ObsidianVaultAdapter` 同步了新的領域資料(例如新出現的 `ROBOTICS` 或 `QUANTUM`),此處完全無需手動修改 Markdown,看板會自動湧現新的一組表格!
---
## 四、語義織網:雙向鏈結與知識圖譜(Graph View)共振
除了用 Dataview 聚合表格,PKM 的核心威力在於「非線性關聯」。
回顧我們在 Day 21 定義的 Markdown 模板尾端:
```markdown
---
## 關聯實體
- 領域節點: [[{{ item.domain }}]]
- 原始追蹤: [論文/研報連結]({{ item.source_url }})
這裡的 [[{{ item.domain }}]](例如 [[SCIENCE]]、[[FINANCE]])是 Obsidian 的雙向鏈結語法(Wikilinks)。
當你在任何一篇論文中點擊 [[SCIENCE]] 時,Obsidian 會自動導引或提示建立 SCIENCE.md。
我們可以在 SCIENCE.md 中寫入反向查詢:
# 領域 MOC:科學探索與 AI 前沿 (SCIENCE)
> 本節點自動彙整跨領域情報雷達中所有評估為 SCIENCE 領域的高價值研究。
```dataview
LIST
FROM [[SCIENCE]] AND "00_Inbox/Radar"
SORT date DESC
如此一來,任何被雷達標記為 `SCIENCE` 的情資,都會自動「被吸附」到這個領域筆記的反向連結清單中,形成一個自動生長的領域情報樹。
### 2. 在局部圖譜(Local Graph)觀察技術叢集
開啟任一情報筆記,點開右上角的「開啟局部關聯圖(Open Local Graph)」:
* **中心節點**:當前情報筆記(例如 `State Locking Verification Paper`)。
* **一階關聯**:直接相連到 `[[SCIENCE]]` 節點。
* **二階關聯**:當其他論文也相連到 `[[SCIENCE]]`,或者後續在編輯筆記時手動補上 `[[分散式鎖定]]`、`[[狀態機安全]]` 等技術標籤,局部圖譜就會自動浮現出**技術依賴簇群(Cluster)**。
這達成了真正的「雙腦共振」——前哨站與 LLM 代理人在雲端自動採集與提煉結構化資料,本機知識庫則負責將結構化資料織入個人長期的思考網絡。
---
## 五、進階體驗優化:Frontmatter 鍵名與 Dataview 規範
在實作 Dataview 看板時,有兩個常見的規範細節:
1. **日期型別識別**:
Frontmatter 中的 `date` 建議使用 ISO 格式(`YYYY-MM-DD` 或 `YYYY-MM-DDTHH:mm:ss`)。若寫為 `2026-09-25 14:50:55`,Dataview 能直接將其識別為 Date 物件,支援 `.year`、`.month` 等進階時間過濾(例如 `WHERE date >= date(today) - dur(7 days)` 查詢近一週情報)。
2. **數值型別驗證**:
在 YAML 中,`score: 5` 不應加上雙引號。若標記為 `score: "5"`,Dataview 會視為字串,導致 `WHERE score >= 4` 的數值比對失效。我們在 Day 21 實作的模板中保持了 `score: {{ item.verified_score }}` 不帶引號,正是為了確保 Dataview 的數值比較運算子能精準觸發。
---
## 總結與下一步
今天我們完成了一套動態、自適應的本地戰情室:
* 透過 **DataviewJS**,免除了人工手動整理筆記的繁瑣,讓高價值情報具備即時統計、評分篩選與分組透視。
* 透過 **Wikilinks**,建立了從情報碎片到領域 MOC 的自動反向索引與局部圖譜網絡。
然而,目前整個流程仍依賴我們在本機終端機手動下指令:
```bash
python -m scripts.sync_to_obsidian
如果本機關機,或是出門在外只有手機、平板,情報就無法自動沉澱。
在 Day 23,我們將讓這個閉環徹底擺脫手動依賴:「全自動化雲端閉環:GitHub Actions 透過 SSH Deploy Key 自動將情資 Push 至私有 Obsidian Vault」,實現 100% 雲端無人值守同步!