Open Knowledge Format(OKF)と iknow
Open Knowledge Format(OKF)と iknow
出典:
- 公式仕様 OKF SPEC.md(Version 0.1 — Draft)(
GoogleCloudPlatform/knowledge-catalog、Apache-2.0)- 解説 Introducing the Open Knowledge Format(Google Cloud Blog、2026-06-12)
OKF は LLM Wiki パターンを ポータブルで相互運用可能なオープン仕様 として形式化した標準です。2026-06-30 時点の最新は v0.1(Draft) で、後続バージョンはまだ出ていません(詳細は「最新状況」節)。
OKF とは
| 項目 | 内容 |
|---|---|
| 目的 | AIエージェント向けの文脈・メタデータ・キュレーション済み知識を、ベンダー中立の形式で表現する |
| 根拠 | Andrej Karpathy 氏の LLM Wiki パターンの標準化 |
| 構成 | ディレクトリ内の Markdown ファイル + YAML frontmatter |
| 必須要件 | SDK 不要・ランタイム不要・Git で管理可能 |
OKF bundle の構造
sales/
├── index.md
├── datasets/
│ ├── index.md
│ └── orders_db.md
├── tables/
│ ├── index.md
│ ├── orders.md
│ └── customers.md
└── metrics/
├── index.md
└── weekly_active_users.md
- 1 ファイル = 1 concept(テーブル、メトリクス、手順書など)
- ファイルパスが concept の ID
- concept 同士は Markdown リンク でグラフ化
- 任意で
index.md(カタログ)とlog.md(変更履歴)を含む
YAML frontmatter(v0.1)
---
type: BigQuery Table
title: Orders
description: One row per completed customer order.
resource: https://console.cloud.google.com/bigquery?p=acme&d=sales&t=orders
tags: [sales, revenue]
timestamp: 2026-05-28T14:30:00Z
---
| フィールド | 必須 | 説明 |
|---|---|---|
type |
✅ | concept の種類(唯一の必須フィールド) |
title |
— | タイトル |
description |
— | 1 行要約 |
resource |
— | 一次資料への URL |
tags |
— | カテゴリタグ |
timestamp |
— | 最終更新日時 |
設計の3原則
- Minimally opinionated —
type以外はプロデューサーに委ねる - Producer/consumer independence — 書く側と読む側が独立して交換可能
- Format, not platform — 特定クラウド・DB・モデルに非依存
最新状況(2026-06-30 時点)
| 項目 | 内容 |
|---|---|
| 最新バージョン | v0.1(Draft) — 2026-06-12 公開以降、新バージョンは未リリース |
| 公式仕様 | GitHub GoogleCloudPlatform/knowledge-catalog(Apache-2.0、1 ページに収まる短い仕様) |
| 参照実装 | BigQuery エンリッチメントエージェント/静的 HTML ビジュアライザ/サンプル bundle 3 種 |
| 今後 | コミュニティのフィードバックを受けて v0.2 を検討中。中央のスキーマレジストリや管理団体は持たない方針 |
バージョン宣言とポリシー(SPEC §11)
- bundle は ルートの
index.mdの frontmatter にokf_version: "0.1"を書いて対象バージョンを宣言できる(index.mdに frontmatter を置ける唯一の例外)。 - マイナー更新=後方互換の追加(任意フィールド・慣用見出しの追加)、メジャー更新=破壊的変更(必須フィールド名や予約ファイル名の変更)。
- consumer は理解できないバージョンでも 拒否せずベストエフォートで読む。
v0.1 仕様で確定した要点(現行ナレッジへの補足)
- Concept ID = ファイルパスから
.mdを除いたもの(例:tables/users.md→tables/users)。 - 予約ファイル名は
index.mdとlog.mdのみ。それ以外の.mdはすべて concept。 - 本文の 慣用見出し として
# Schema/# Examples/# Citationsが定義(必須ではない)。外部出典は末尾の# Citationsに番号付きで列挙する。 - リンクは無向の関係を表す有向エッジ。
/始まりの bundle ルート相対リンクが推奨。consumer は リンク切れを許容 しなければならない。 - 適合条件(§9)はゆるい:各 concept に解析可能な frontmatter があり、空でない
typeを持てば適合。任意フィールド欠落・未知のtype・リンク切れ・index.md不在では 拒否しない。 - ドメイン固有スキーマ(Avro / Protobuf / OpenAPI 等)は 置き換えず参照する(非ゴール)。
iknow と OKF の位置づけ
iknow は LLM Wiki 思想(No.10.1) を実装したプラットフォームです。OKF はそのパターンを ファイル交換フォーマット として標準化したものと捉えられます。
flowchart LR
OKF["OKF bundle(ファイル形式)"] <-->|エクスポート/インポート| IK["iknow(プラットフォーム)"]
LLM[LLM Wiki 思想] --> OKF
LLM --> IK
iknow の frontmatter 出力
iknow はナレッジを エクスポート するとき、本文の先頭に YAML frontmatter を付与し、インポート時に読み戻します。OKF 準拠キー(type・title・tags・resource・timestamp)に加え、iknow 独自の no・related_nos(関連ナレッジ復元用)・service_name / service_key(インポート元)を出力します。
type は OKF では concept 種別ですが、iknow では本文形式(markdown / json)を表します。項目の一覧は No.1.3 を参照してください。
OKF との対応(準拠・差分)
3表に分かれていた比較を 1 つにまとめます。
| OKF 要素 | iknow の対応 | 準拠度 |
|---|---|---|
| LLM Wiki パターン | 編集済みナレッジを蓄積し Ingest / Query / Lint で育てる | ✅ 高 |
| Markdown 本文 | ナレッジ本文の主形式。人間も AIエージェントも読める | ✅ 高 |
index.md(カタログ) |
No.0 目次ナレッジが入口(No.12.2) | ✅ 高 |
title |
frontmatter に出力(タイトル) | ✅ 高 |
tags |
frontmatter に出力(カテゴリタグ) | ✅ 高 |
timestamp |
frontmatter に出力(updated_at) |
✅ 高 |
resource |
frontmatter に OKF 準拠キーで出力(インポート元 URL 等) | ✅ 中 |
| クロスリファレンス | 関連ナレッジ+本文リンクでグラフ化。related_nos で復元 |
✅ 中 |
| Producer / consumer 分離 | Web UI・MCP・エクスポートで書き手と読み手を分離可能 | ✅ 中 |
| Git 管理可能な出力 | ZIP / .md エクスポートを Git に置ける |
✅ 中 |
type(必須) |
frontmatter に出力するが、値は 本文形式(markdown / json)。OKF の「concept 種別」とは意味が異なる |
△ 部分 |
description |
専用フィールドなし。タイトル+冒頭要約で代替 | △ 部分 |
log.md(追記ログ) |
専用ファイルなし。変更履歴+ MCP 書込の intent で代替 |
△ 部分 |
| frontmatter スキーマ | OKF キー(type/title/tags/resource/timestamp)+ iknow 拡張(no/related_nos)。完全な OKF スキーマではない |
△ 部分 |
| bundle(ディレクトリ) | アイノウ単位のナレッジ群(アイノウ = 1 bundle 相当) | △ 部分 |
| ファイルパス = concept ID | 正は数値 ID。エクスポート名は {No}_{タイトル}_{id} のフラット構造(階層 bundle ではない) |
❌ |
| テーブル型 JSON | iknow 独自(配列の配列)。OKF にはない(frontmatter type: json で識別) |
❌ |
| 拡張 Markdown(mermaid / chart) | iknow 固有のコードブロック。OKF 標準外 | ❌ |
| Format, not platform | iknow はホスト型 SaaS。検索・健診・権限はプラットフォーム機能 | ❌ |
iknow から OKF へ近づけるには
Ingest(No.13.1)で外部資料を取り込むとき、OKF 互換を意識するなら:
- concept 種別をタグで補う — frontmatter の
typeは本文形式(markdown/json)なので、OKF の concept 種別はタグで表す(例:BigQuery Table) - 冒頭に description 相当の 1 行要約 を書く
- 出典 URL を残す —
resourcefrontmatter と本文冒頭の両方に - 関連ナレッジと本文リンクを両方張る — OKF consumer も iknow Query も満たす
- No.0 目次を常に更新 —
index.md維持と同じ運用 - ZIP エクスポート前に No を振る —
related_nosによるリンク復元のため
まとめ
| 観点 | 評価 |
|---|---|
| 思想・パターン | iknow は LLM Wiki / OKF が目指す「育つナレッジベース」と 高い親和性 |
| ファイル形式 | Markdown + frontmatter という大枠は一致。frontmatter は OKF キー+独自拡張(部分互換) |
| 相互運用 | 階層 bundle・テーブル型 JSON・拡張 Markdown は変換が必要で、そのままの OKF bundle としては読み書きできない |
| iknow の強み | プラットフォーム上の Query(semantic 検索)・Lint(健診)・MCP・権限管理 |
| OKF の強み | ベンダー中立・Git ネイティブ・任意ツールでの producer/consumer |
iknow でナレッジを育てる運用(Ingest → Query → Lint)は OKF の思想と一致します。将来 OKF へのエクスポート/インポートが強化された場合も、No.0 目次・タグ・関連リンク・1 テーマ 1 ページ の設計を守っておけば移行コストを下げられます。