← 返回 Skills 市场
paudyyin

Ontology 知识图谱

作者 paudyyin · GitHub ↗ · v2.0.0 · MIT-0
cross-platform ⚠ suspicious
23
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install ontology-knowledge-graph
功能描述
Typed knowledge graph for structured agent memory and composable skills. Create/query/link entities (Person, Project, Task, Event, Document), enforce constra...
使用说明 (SKILL.md)

Ontology 知识图谱

A typed vocabulary + constraint system for representing knowledge as a verifiable graph. Supports entity CRUD, schema validation, automatic sync from memory files, and serves as a backup memory fallback.

Core Concept

Everything is an entity with a type, properties, and relations to other entities. Every mutation is validated against type constraints before committing.

Entity: { id, type, properties, relations, created, updated }
Relation: { from_id, relation_type, to_id, properties }

When to Use

Trigger Action
"Remember that..." Create/update entity
"What do I know about X?" Query graph
"Link X to Y" Create relation
"Show all tasks for project Z" Graph traversal
"What depends on X?" Dependency query
Planning multi-step work Model as graph transformations
Skill needs shared state Read/write ontology objects
Main memory extraction fails Backup memory fallback

Core Types

# Agents & People
Person: { name, email?, phone?, notes?, organization? }
Organization: { name, type?, members[] }

# Work
Project: { name, status, goals[], owner? }
Task: { title, status, due?, priority?, assignee?, blockers[] }
Goal: { description, target_date?, metrics[] }

# Time & Place
Event: { title, start, end?, location?, attendees[], recurrence? }
Location: { name, address?, coordinates? }

# Information
Document: { title, path?, url?, summary? }
Message: { content, sender, recipients[], thread? }
Thread: { subject, participants[], messages[] }
Note: { content, tags[], refs[] }

# Resources
Account: { service, username, credential_ref? }
Device: { name, type, identifiers[] }
Credential: { service, secret_ref }  # Never store secrets directly

# Meta
Action: { type, target, timestamp, outcome? }
Policy: { scope, rule, enforcement }

# Extended types (v2.0+)
Technology: { name, domain?, source? }
Skill: { name, source?, version? }

Storage

Default: memory/ontology/graph.jsonl

{"op":"create","entity":{"id":"p_001","type":"Person","properties":{"name":"Alice"}}}
{"op":"create","entity":{"id":"proj_001","type":"Project","properties":{"name":"Website Redesign","status":"active"}}}
{"op":"relate","from":"proj_001","rel":"has_owner","to":"p_001"}

Query via scripts or direct file ops. For complex graphs, migrate to SQLite.

Append-Only Rule

When working with existing ontology data or schema, append/merge changes instead of overwriting files. This preserves history and avoids clobbering prior definitions.

Workflows

Create Entity

python scripts/ontology.py create --type Person --props '{"name":"Alice","email":"[email protected]"}'

Query

python scripts/ontology.py query --type Task --where '{"status":"open"}'
python scripts/ontology.py get --id task_001
python scripts/ontology.py related --id proj_001 --rel has_task
python scripts/ontology.py list --type Person

Link Entities

python scripts/ontology.py relate --from proj_001 --rel has_task --to task_001

Validate

python scripts/ontology.py validate  # Check all constraints

Auto-Sync from Memory Files (v2.0+)

# Sync entities from daily notes (last 7 days)
python scripts/ontology_sync.py

# Sync last N days
python scripts/ontology_sync.py --days 3

# Dry run (preview only)
python scripts/ontology_sync.py --dry-run

# Check graph status
python scripts/ontology_sync.py --status

Backup Memory Fallback (v2.0+)

When the primary memory system fails to extract accurate results, Ontology serves as a backup memory layer:

Fallback hierarchy:

  1. tdai_memory_search (primary memory)
  2. openclaw-mem0 (auxiliary memory)
  3. Ontology graph (structured entities + relations)

Trigger conditions: Primary memory returns empty results / inaccurate data / user says "results are wrong"

Query examples:

# List all projects
python scripts/ontology.py list --type Project

# Query by type and property
python scripts/ontology.py query --type Organization --where '{"type":"supplier"}'

# Get related entities for a person
python scripts/ontology.py related --id pers_xxx --dir both

Constraints

Define in memory/ontology/schema.yaml:

types:
  Task:
    required: [title, status]
    status_enum: [open, in_progress, blocked, done]
  
  Event:
    required: [title, start]
    validate: "end >= start if end exists"

  Credential:
    required: [service, secret_ref]
    forbidden_properties: [password, secret, token]  # Force indirection

relations:
  has_owner:
    from_types: [Project, Task]
    to_types: [Person]
    cardinality: many_to_one
  
  blocks:
    from_types: [Task]
    to_types: [Task]
    acyclic: true  # No circular dependencies

Skill Contract

Skills that use ontology should declare:

# In SKILL.md frontmatter or header
ontology:
  reads: [Task, Project, Person]
  writes: [Task, Action]
  preconditions:
    - "Task.assignee must exist"
  postconditions:
    - "Created Task has status=open"

Planning as Graph Transformation

Model multi-step plans as a sequence of graph operations:

Plan: "Schedule team meeting and create follow-up tasks"

1. CREATE Event { title: "Team Sync", attendees: [p_001, p_002] }
2. RELATE Event -> has_project -> proj_001
3. CREATE Task { title: "Prepare agenda", assignee: p_001 }
4. RELATE Task -> for_event -> event_001
5. CREATE Task { title: "Send summary", assignee: p_001, blockers: [task_001] }

Each step is validated before execution. Rollback on constraint violation.

Integration Patterns

With Causal Inference

Log ontology mutations as causal actions:

# When creating/updating entities, also log to causal action log
action = {
    "action": "create_entity",
    "domain": "ontology", 
    "context": {"type": "Task", "project": "proj_001"},
    "outcome": "created"
}

Cross-Skill Communication

# Email skill creates commitment
commitment = ontology.create("Commitment", {
    "source_message": msg_id,
    "description": "Send report by Friday",
    "due": "2026-01-31"
})

# Task skill picks it up
tasks = ontology.query("Commitment", {"status": "pending"})
for c in tasks:
    ontology.create("Task", {
        "title": c.description,
        "due": c.due,
        "source": c.id
    })

Cron Auto-Sync Setup

Recommended: Configure an OpenClaw Cron job for daily auto-sync:

{
  "name": "Ontology Daily Sync",
  "schedule": { "kind": "cron", "expr": "0 22 * * *", "tz": "Asia/Shanghai" },
  "payload": {
    "kind": "agentTurn",
    "message": "Run ontology sync: python scripts/ontology_sync.py --days 7"
  },
  "sessionTarget": "isolated"
}

Quick Start

# Initialize ontology storage
mkdir -p memory/ontology
touch memory/ontology/graph.jsonl

# Create schema (optional but recommended)
python scripts/ontology.py schema-append --data '{
  "types": {
    "Task": { "required": ["title", "status"] },
    "Project": { "required": ["name"] },
    "Person": { "required": ["name"] }
  }
}'

# Start using
python scripts/ontology.py create --type Person --props '{"name":"Alice"}'
python scripts/ontology.py list --type Person

# Auto-sync from existing memory files
python scripts/ontology_sync.py --days 30

References

  • references/schema.md — Full type definitions and constraint patterns
  • references/queries.md — Query language and traversal examples

File Structure

ontology/
├── SKILL.md              # This file
├── scripts/
│   ├── ontology.py       # Core CLI (create/query/relate/validate)
│   └── ontology_sync.py  # Auto-sync from memory files (v2.0+)
└── references/
    ├── schema.md         # Schema reference
    └── queries.md        # Query patterns

Instruction Scope

Runtime instructions operate on local files (memory/ontology/graph.jsonl and memory/ontology/schema.yaml) and provide CLI usage for create/query/relate/validate; this is within scope. The skill reads/writes workspace files and will create the memory/ontology directory when used. Validation includes property/enum/forbidden checks, relation type/cardinality validation, acyclicity for relations marked acyclic: true, and Event end >= start checks; other higher-level constraints may still be documentation-only unless implemented in code.

安全使用建议
Review before installing if you do not want a skill to persist memory records automatically. Use dry-run first, inspect ontology_sync.py, and avoid the recommended cron setup unless you are comfortable with it reading local memory files, recording installed skill names/versions, and adding the hard-coded business/person records it contains.
能力标签
requires-sensitive-credentials
能力评估
Purpose & Capability
The core ontology CLI is coherent with the stated purpose: local create/query/link/validate operations over a graph file. However, ontology_sync.py goes beyond a generic memory sync by always seeding specific personal/company entities and extracting from hard-coded business report names, which can contaminate another user's persistent graph.
Instruction Scope
The skill discloses broad memory and cross-skill triggers, plus persistent writes, but it does not clearly separate read-only queries from mutating sync/write actions or require confirmation before long-lived memory changes.
Install Mechanism
No automatic installer, dependency fetch, or install-time execution was found. The cron job is documented as a recommended manual setup rather than silently installed.
Credentials
The scripts operate locally and show no network exfiltration, but auto-sync reads memory markdown files, fixed report files, and workspace/skills metadata; the all-skills inventory and hard-coded domain extraction are under-scoped for a generic ontology skill.
Persistence & Privilege
The skill writes append-only records to memory/ontology/graph.jsonl and can update schema.yaml. This persistence is expected for a memory tool, but the automatic sync and optional daily cron make unintended records durable.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ontology-knowledge-graph
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ontology-knowledge-graph 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v2.0.0
v2.0: Auto-sync from memory files, backup memory fallback, Technology/Skill entity types, Cron daily sync setup
元数据
Slug ontology-knowledge-graph
版本 2.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Ontology 知识图谱 是什么?

Typed knowledge graph for structured agent memory and composable skills. Create/query/link entities (Person, Project, Task, Event, Document), enforce constra... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 23 次。

如何安装 Ontology 知识图谱?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ontology-knowledge-graph」即可一键安装,无需额外配置。

Ontology 知识图谱 是免费的吗?

是的,Ontology 知识图谱 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Ontology 知识图谱 支持哪些平台?

Ontology 知识图谱 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Ontology 知识图谱?

由 paudyyin(@paudyyin)开发并维护,当前版本 v2.0.0。

💬 留言讨论