ユニバーサルソース管理システム
さまざまな種類のソース (論文、書籍、Web ページなど) を管理し、それらをナレッジ グラフと統合するための柔軟なシステム。
特徴
コア機能
- 内部UUIDシステムによるユニバーサルソース識別
- 複数のソースタイプ(論文、ウェブページ、書籍、ビデオ、ブログ)のサポート
- ソースごとに複数の識別子をサポート(arxiv、DOI、セマンティック スカラー、ISBN、URL)
- タイトルと内容で構造化されたメモ作成
- ステータスの追跡(未読、既読、完了、アーカイブ)
エンティティ統合
- ソースをナレッジグラフエンティティにリンクする
- ソースとエンティティ間の関係を追跡する
- 柔軟な関係タイプ (議論、紹介、拡張など)
- メモリグラフとの統合
前提条件
このシステムは、永続的な知識グラフの保存のためにMCP メモリ サーバーと統合されます。
クイックスタート
- スキーマを使用して新しい SQLite データベースを作成します。
# Create a new database
sqlite3 sources.db < create_sources_db.sql
- ソース管理サーバーをインストールします。
# Install for Claude Desktop with your database path
fastmcp install source-manager-server.py --name "Source Manager" -e SQLITE_DB_PATH=/path/to/sources.db
スキーマ
コアテーブル
-- Sources table
CREATE TABLE sources (
id UUID PRIMARY KEY,
title TEXT NOT NULL,
type TEXT CHECK(type IN ('paper', 'webpage', 'book', 'video', 'blog')) NOT NULL,
identifiers JSONB NOT NULL,
status TEXT CHECK(status IN ('unread', 'reading', 'completed', 'archived')) DEFAULT 'unread'
);
-- Source notes
CREATE TABLE source_notes (
source_id UUID REFERENCES sources(id),
note_title TEXT NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (source_id, note_title)
);
-- Entity links
CREATE TABLE source_entity_links (
source_id UUID REFERENCES sources(id),
entity_name TEXT,
relation_type TEXT CHECK(relation_type IN ('discusses', 'introduces', 'extends', 'evaluates', 'applies', 'critiques')),
notes TEXT,
PRIMARY KEY (source_id, entity_name)
);
使用例
1. ソースの管理
複数の識別子を持つ論文を追加します。
add_source(
title="Attention Is All You Need",
type="paper",
identifier_type="arxiv",
identifier_value="1706.03762",
initial_note={
"title": "Initial thoughts",
"content": "Groundbreaking paper introducing transformers..."
}
)
# Add another identifier to the same paper
add_identifier(
title="Attention Is All You Need",
type="paper",
current_identifier_type="arxiv",
current_identifier_value="1706.03762",
new_identifier_type="semantic_scholar",
new_identifier_value="204e3073870fae3d05bcbc2f6a8e263d9b72e776"
)
ウェブページを追加します:
add_source(
title="Understanding Transformers",
type="webpage",
identifier_type="url",
identifier_value="https://example.com/transformers",
)
2. メモを取る
ソースにメモを追加します。
add_note(
title="Attention Is All You Need",
type="paper",
identifier_type="arxiv",
identifier_value="1706.03762",
note_title="Implementation details",
note_content="The paper describes the architecture..."
)
3. エンティティリンク
エンティティへのリンクソース:
link_to_entity(
title="Attention Is All You Need",
type="paper",
identifier_type="arxiv",
identifier_value="1706.03762",
entity_name="transformer",
relation_type="introduces",
notes="First paper to introduce the transformer architecture"
)
エンティティによるソースのクエリ:
get_entity_sources(
entity_name="transformer",
type_filter="paper",
relation_filter="discusses"
)
ベストプラクティス
- ソース管理
- 参照全体で一貫したタイトルを使用する
- 可能な限り多くの識別子を提供する
- 明確なタイトルを付けてメモを整理する
- 適切なソースタイプを使用する
- エンティティリンク
- 関係の種類を具体的にする
- 関係にコンテキストメモを追加する
- メモリグラフに対してエンティティ名を検証する
- エンティティ関係に焦点を当てる
技術的な詳細
- ソース識別
- 一貫した参照のための内部UUIDシステム
- ソースごとに複数の外部識別子
- 柔軟な識別子タイプ (arxiv、doi、url など)
- タイトルとタイプに基づくあいまい一致
- データ構成
- タイトル付きの構造化されたメモ
- 明確なソースタイプの分類
- エンティティ関係の追跡
- ステータス管理
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 新機能のテストを追加する
- プルリクエストを送信する