Nagiverse — コミュニティ駆動の知識グラフ

Web

概要

Nagiverseは「社区驱动的知识图谱(コミュニティ駆動の知識グラフ)」を掲げるオープンプロジェクトで、個人がGitで管理するノート群を集めてサイト側で関係性を可視化・構築する仕組みを提供します。ユーザーは自分のディレクトリ(content/users/)にprofile.yamlとnotesのMarkdownファイルを置くだけで参加できます。サイトは各ノートのメタデータやID、タグ、リンクからネットワークを自動生成し、検索・ブラウズやタグ・ユーザー単位の集約を可能にします。フロントエンドはSvelteを採用し、静的生成や軽量なランタイム(bun関連のファイルあり)との親和性を想定した構成です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 0
  • ウォッチャー数: 5
  • コミット数: 13
  • ファイル数: 14
  • メインの言語: Svelte

主な特徴

  • ファイルベースの参加モデル:content/users//notes 配下にMarkdownを置くだけで参加可能。
  • プロファイルとメタデータ:profile.yamlでユーザーIDやタグ、自己紹介を定義。
  • 自動的な関係ネットワーク生成:ノートのID・リンク・タグからナレッジグラフを構築。
  • 軽量フロントエンド:Svelteを用いたモダンなUIで高速な描画と簡潔な構成。

技術的なポイント

Nagiverseは典型的な「ファイル駆動のナレッジプラットフォーム」をSvelteで実現している点が技術的に興味深い。コンテンツはGitで管理されるMarkdownとYAMLの組み合わせ(profile.yaml と各ノートのフロントマター)で完結するため、複雑な外部データベースを必要とせず、バージョン管理・コラボレーションがそのまま運用フローになる。Svelteはコンパイル時に不要なランタイムを削り、クライアント側でのインタラクティブ性(ノード間のズーム、フィルタ、ページ間遷移)を軽量に提供できるため、知識グラフの可視化に向く。

リポジトリにbun.lockがある点から、Bunを利用した開発・ビルドの想定が窺える。Bunは高速なJavaScriptランタイムかつパッケージマネージャ兼バンドラ機能を持つため、ローカルでのビルドや開発サーバ起動が高速化され、CIの短縮にも寄与する可能性が高い。また、.githubディレクトリが含まれていることからGitHub Actions等のCI/CDで自動ビルド・デプロイを想定しており、Pull Requestによる共同編集→自動検証→サイト再構築の流れが作りやすい。これはコミュニティ駆動型プロジェクトにおいて重要な運用設計だ。

ノード間の関係生成は各ノートのメタデータ(id、title、tags、内部リンク)を解析してグラフを作る「静的解析ベース」の実装が考えられる。メリットは単純さと可検証性で、欠点は大規模化時の再生成コストとリアルタイム性だが、静的ジェネレーター+差分ビルドやインクリメンタル更新を取り入れれば運用負荷を下げられる。セキュリティ面では、ユーザー提供コンテンツがMarkdownであるためXSS対策やサニタイズ処理、外部リンクの検証等が重要となる点にも留意が必要だ。

総じて、Nagiverseは「Gitでコラボするノート群をそのまま知識グラフ化する」というシンプルかつ実践的なアプローチを取り、Svelte と Bun を組み合わせたモダンなスタックで高速・低レイテンシなUXを目指している点が技術的な肝と言える。(約700〜900字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • bun.lock: file

その他(抜粋):

  • content/: 想定されるユーザーコンテンツ格納ディレクトリ(content/users//notes の構成を推奨)
  • src/: Svelteコンポーネントやビルドスクリプトが入る想定(実装の中心)
  • public/ or static/: OGP画像やビルド結果の静的ファイル配置(ogp参照)
  • package.json / bun関連の設定ファイル: 依存やスクリプト管理(bun.lockが存在)
  • CI設定(.github/workflows/…): 自動ビルドやデプロイを想定

リポジトリはファイル数が少なめで、テンプレート的な骨子(コンテンツモデル、プロフィール定義、ノート記述ルール)を中心に置いているため、フォークして個別実装や拡張を行いやすい構成です。

まとめ

シンプルなファイル駆動モデルで共同編集可能な知識グラフを目指す、拡張性の高いSvelteベースのプロジェクトです。(約50字)

リポジトリ情報:

READMEの抜粋:

Nagiverse

社区驱动的知识图谱。每个人维护自己的笔记,站点自动构建关系网络。

贡献内容

1. Fork → Clone → 创建你的目录

git clone https://github.com/<your-fork>/nagiverse.git
cd nagiverse
mkdir -p content/users/<your-id>/notes

<your-id> 只能用小写字母、数字、连字符,例如 zhangsan

2. 写 profile.yaml

id: zhangsan          # 必填,和目录名一致
name: 张三             # 必填
bio: 全栈工程师        # 可选
tags:                  # 可选
  - frontend
  - rust

3. 写笔记

notes/ 下创建 .md 文件,最简只需要 idtitle

---
id: rus...