Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
sundial-org avatar

Ontology

  • 3.4k installs
  • 635 repo stars
  • Updated March 7, 2026
  • sundial-org/awesome-openclaw-skills

ontology is an agent skill for model typed knowledge graphs for agent memory linking person, project, task, event, and document entities.

About

The ontology skill Typed knowledge graph for structured agent memory and composable skills. Use when creating/querying entities (Person, Project, Task, Event, Document), linking related objects, enforcing constraints, planning multi-step actions as graph transformations, or when skills need to share state. Trigger on "remember", "what do I know about", "link X to Y", "show dependencies", entity CRUD, or cross-skill data access. A typed vocabulary + constraint system for representing knowledge as a verifiable graph. 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 } `` 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

  • "Task.assignee must exist"
  • "Created Task has status=open"
  • CREATE Event { title: "Team Sync", attendees: [p_001, p_002] }
  • RELATE Event - has_project - proj_001
  • CREATE Task { title: "Prepare agenda", assignee: p_001 }

Ontology by the numbers

  • 3,403 all-time installs (skills.sh)
  • +9 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #217 of 16,659 AI & Agent Building skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

ontology capabilities & compatibility

Capabilities
"task.assignee must exist" · "created task has status=open" · create event { title: "team sync", attendees: [p · relate event has_project proj_001 · create task { title: "prepare agenda", assignee:
Use cases
memory · planning
From the docs

What ontology says it does

A typed vocabulary + constraint system for representing knowledge as a verifiable graph.
SKILL.md
Everything is an **entity** with a **type**, **properties**, and **relations** to other entities. Every mutation is validated against type constraints before committing.
SKILL.md
Entity: { id, type, properties, relations, created, updated }
SKILL.md
npx skills add https://github.com/sundial-org/awesome-openclaw-skills --skill ontology

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3.4k
repo stars635
Security audit3 / 3 scanners passed
Last updatedMarch 7, 2026
Repositorysundial-org/awesome-openclaw-skills

How do I model typed knowledge graphs for agent memory linking person, project, task, event, and document entities with documented agent guidance?

Model typed knowledge graphs for agent memory linking Person, Project, Task, Event, and Document entities.

Who is it for?

Developers who need ai & agent building help during build work.

Skip if: Skip when the task falls outside AI & Agent Building scope described in SKILL.md.

When should I use this skill?

Model typed knowledge graphs for agent memory linking Person, Project, Task, Event, and Document entities.

What you get

Completed ai & agent building workflow aligned with SKILL.md steps and validation.

  • Filtered entity query results
  • Relation traversal output

By the numbers

  • "Task.assignee must exist"
  • "Created Task has status=open"
  • CREATE Event { title: "Team Sync", attendees: [p_001, p_002] }

Files

SKILL.mdMarkdownGitHub ↗

Ontology

A typed vocabulary + constraint system for representing knowledge as a verifiable graph.

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

TriggerAction
"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 workModel as graph transformations
Skill needs shared stateRead/write ontology objects

Core Types

# Agents & People
Person: { name, email?, phone?, notes? }
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 }

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.

Workflows

Create Entity

python3 scripts/ontology.py create --type Person --props '{"name":"Alice","email":"alice@example.com"}'

Query

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

Link Entities

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

Validate

python3 scripts/ontology.py validate  # Check all constraints

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
    })

Quick Start

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

# Create schema (optional but recommended)
cat > memory/ontology/schema.yaml << 'EOF'
types:
  Task:
    required: [title, status]
  Project:
    required: [name]
  Person:
    required: [name]
EOF

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

References

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

Related skills

Forks & variants (4)

Ontology has 4 known copies in the catalog totaling 488 installs. They canonicalize to this original listing.

How it compares

ontology is an agent skill for model typed knowledge graphs for agent memory linking person, project, task, event, and document entities, not a generic alternative.

FAQ

Who is ontology for?

Developers using AI & Agent Building workflows with agent-guided SKILL.md steps.

When should I use ontology?

Model typed knowledge graphs for agent memory linking Person, Project, Task, Event, and Document entities.

Is ontology safe to install?

Review the Security Audits panel on this page before installing in production.

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.