Skip to main content

ontology-database

通过 TSV append-only log 实现的类型化知识图谱 —— entity CRUD、有向关系、schema 校验、多跳推理。CLI 通过 `x ondb`,协议可由 AWK/Python/JS/SQLite 读取。

Source facts

Repository
x-cmd/skill0
Last source activity
September 2, 2026 at 20:07
Detected SKILL.md language
Chinese
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
ontology-database
description
通过 TSV append-only log 实现的类型化知识图谱 —— entity CRUD、有向关系、schema 校验、多跳推理。CLI 通过 `x ondb`,协议可由 AWK/Python/JS/SQLite 读取。
metadata
{"related":"yfm,rule"}
# Ontology Database (ondb) 类型化知识图谱:一切都是 **entity**(id + type + properties),由 **有向关系**(from → rel → to)相连。所有变更都 append TSV 行 —— 永不覆写。TSV log 就是数据库。 ## TSV log 格式(协议) ``` add <type> <id> <epoch_ms> key1 val1 key2 val2 # 创建 entity set <id> <epoch_ms> key val # 更新属性 rm <id> <epoch_ms> # 删除 entity link <from> <rel> <to> <epoch_ms> [key1 val1 ...] # 创建关系 unlink <from> <rel> <to> <epoch_ms> # 删除关系 # tab 分隔;转义:\t → tab,\n → newline,\\ → backslash # property 是交替的 key/val 对(每对各占一个 tab 字段) ``` 任何语言都能读。AWK 流式处理,Python 字典,SQLite 物化。**Log 是事实来源。** ## CLI 用法 ``` x ondb add --type Person --name Alice # 自动 UUID x ondb add --type Task --name "Fix bug" --id t1 priority=high status=open x ondb get --id t1 --json # 实体详情 x ondb set --id t1 status=done # 更新属性 x ondb rm --id t1 # 删除 x ondb link --from proj_001 --rel has_task --to t1 # 创建关系 x ondb link --from t1 --rel blocks --to t2 # 带 link 属性:-- status=hard x ondb linked --id proj_001 --rel has_task # 出向关系 x ondb linked --id t1 --direction incoming # 入向(谁指向它) x ondb related --id proj_001 --rel has_task --json # 对端实体的完整信息 x ondb ls --type Task # 按类型列出 x ondb query --type Task --where status=open --json # 按属性过滤 ``` `linked` = 关系元数据。`related` = 对端的完整 entity。用 `--dir <path>` / `-d <path>` 指定数据目录(→ `path/ondb.tsv`)。 ## Schema 与校验 ``` x ondb schema add "type:Task:required:title,status" x ondb schema add "type:Task:enum:status:open,in_progress,done,blocked" x ondb schema add "relation:blocks:from_types:Task" x ondb schema add "relation:blocks:acyclic:1" x ondb validate # 检查 required、enum、悬空引用、cardinality、环 ``` 指令:`type:Name:{required|forbidden|enum|datetime|ref}:...`、`relation:Rel:{from_types|to_types|cardinality|acyclic}:...`。校验与写入是分开的。 ## 架构原则 - **Log 是源头** —— TSV log 是权威;SQLite 只是物化视图 - **Append-only** —— `set`、`rm`、`unlink` 都 append 行;永不修改已有行 - **多实例** —— 每个子域一个 ondb(默认);仅在跨域链路时合并 - **Type = Concept** —— 同名 type 永远指同一概念 - **按需校验** —— 写入不做 schema 检查;批量改完后跑 `validate` ## 后端 | 后端 | 适用 | 说明 | |---|---|---| | **AWK**(默认) | < 2k 实体 | 零依赖、流式 | | Python | 中等 | 数据结构丰富 | | JS/Bun | Web 应用 | JSON 原生 | | SQLite | > 5k 实体 | 从 TSV log 自动生成 | ## 目录结构 ``` <datadir>/ONDB.DESC.txt # 必填。标识 ondb 实例 <datadir>/ondb.tsv # Append-only log <datadir>/schema.tsv # 可选。约束 <datadir>/ondb.db # 可选。SQLite 物化视图 ``` ## 更多信息 - `x ondb --help` — CLI 参考 - `x ondb libpath {awk,py,js}` — 自定义查询的库路径 - [ondb SKILL.md](../../../ondb/SKILL.md) — 完整文档(场景、集成、自定义查询、SQLite WAL 配置) ## Related - [yfm](../yfm/SKILL.md) — 推荐用 yfm `metadata:` 作为摄入面 - [rule](../rule/SKILL.md) — schema 校验规则放在 rule 框架中
View on GitHub