SkillAgentSearch skills...

Open Ontologies

AI-native ontology engine: a Rust MCP server with tools for building, validating, querying, and reasoning over RDF/OWL ontologies. In-memory Oxigraph triple store, native OWL2-DL tableaux reasoner, SHACL validation, SPARQL, versioning. Single binary, no JVM.

Install / Use

/learn @fabio-rovai/Open Ontologies

README

<!-- mcp-name: io.github.fabio-rovai/open-ontologies --> <p align="center"> <img src="docs/assets/logo.png" alt="Open Ontologies" width="300"> </p> <h1 align="center">Open Ontologies</h1> <p align="center"> <strong>A Terraforming MCP for Knowledge Graphs</strong><br> Validate, classify, and govern AI-generated ontologies. Written in Rust. Ships as a single binary. </p> <p align="center"> <a href="https://github.com/fabio-rovai/open-ontologies/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/fabio-rovai/open-ontologies/ci.yml?branch=main&style=for-the-badge" alt="CI"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge" alt="MIT"></a> <a href="https://openmcp.org/servers/open-ontologies"><img src="https://img.shields.io/badge/Open_MCP-open--ontologies-blue?style=for-the-badge" alt="Open MCP"></a> <a href="https://www.pitchhut.com/project/open-ontologies-mcp"><img src="https://img.shields.io/badge/PitchHut-open--ontologies-orange?style=for-the-badge" alt="PitchHut"></a> <a href="https://clawhub.ai/fabio-rovai/open-ontologies"><img src="https://img.shields.io/badge/ClawHub-open--ontologies-7c3aed?style=for-the-badge" alt="ClawHub"></a> </p> <p align="center"> <a href="#quick-start-mcp--cli">Quick Start</a> · <a href="#studio-desktop-app">Studio</a> · <a href="#benchmarks">Benchmarks</a> · <a href="#tools">Tools</a> · <a href="#architecture">Architecture</a> · <a href="#documentation">Docs</a> </p>

Open Ontologies is a Rust MCP server and desktop Studio for AI-native ontology engineering. It exposes 48 tools that let Claude build, validate, query, diff, lint, version, reason over, align, and persist RDF/OWL ontologies using an in-memory Oxigraph triple store — with Terraform-style lifecycle management, a marketplace of 29 standard ontologies, clinical crosswalks, semantic embeddings, and a full lineage audit trail.

The Studio wraps the engine in a visual desktop environment: 3D force-directed graph, AI chat panel, Protégé-style property inspector, and lineage viewer.

No JVM. No Protégé. No GUI required.


Screenshots

| Full UI | 3D Graph | |---|---| | Studio overview — 3D graph, property inspector, and AI chat panel | Close-up of the 3D force-directed Forest ontology graph |

Tissue ontology built in natural language. Gold edges show object property relationships (domain → range) connecting clusters; grey edges show subClassOf hierarchy. Spring-based force layout keeps related classes close.


Quick Start (MCP / CLI)

Install

Pre-built binaries:

# macOS (Apple Silicon)
curl -LO https://github.com/fabio-rovai/open-ontologies/releases/latest/download/open-ontologies-aarch64-apple-darwin
chmod +x open-ontologies-aarch64-apple-darwin && mv open-ontologies-aarch64-apple-darwin /usr/local/bin/open-ontologies

# macOS (Intel)
curl -LO https://github.com/fabio-rovai/open-ontologies/releases/latest/download/open-ontologies-x86_64-apple-darwin
chmod +x open-ontologies-x86_64-apple-darwin && mv open-ontologies-x86_64-apple-darwin /usr/local/bin/open-ontologies

# Linux (x86_64)
curl -LO https://github.com/fabio-rovai/open-ontologies/releases/latest/download/open-ontologies-x86_64-unknown-linux-gnu
chmod +x open-ontologies-x86_64-unknown-linux-gnu && mv open-ontologies-x86_64-unknown-linux-gnu /usr/local/bin/open-ontologies

Docker:

docker pull ghcr.io/fabio-rovai/open-ontologies:latest
docker run -i ghcr.io/fabio-rovai/open-ontologies serve

From source (Rust 1.85+):

git clone https://github.com/fabio-rovai/open-ontologies.git
cd open-ontologies && cargo build --release
./target/release/open-ontologies init

Connect to your MCP client

<details> <summary><strong>Claude Code</strong></summary>

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "open-ontologies": {
      "command": "/path/to/open-ontologies/target/release/open-ontologies",
      "args": ["serve"]
    }
  }
}

Restart Claude Code. The onto_* tools are now available.

</details> <details> <summary><strong>Claude Desktop</strong></summary>

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "open-ontologies": {
      "command": "/path/to/open-ontologies/target/release/open-ontologies",
      "args": ["serve"]
    }
  }
}
</details> <details> <summary><strong>Cursor / Windsurf / any MCP-compatible IDE</strong></summary>

Add to .cursor/mcp.json or equivalent:

{
  "mcpServers": {
    "open-ontologies": {
      "command": "/path/to/open-ontologies/target/release/open-ontologies",
      "args": ["serve"]
    }
  }
}
</details> <details> <summary><strong>Docker</strong></summary>
{
  "mcpServers": {
    "open-ontologies": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/fabio-rovai/open-ontologies", "serve"]
    }
  }
}
</details>

Build your first ontology

Build me a Pizza ontology following the Manchester University tutorial.
Include all 49 toppings, 22 named pizzas, spiciness value partition,
and defined classes (VegetarianPizza, MeatyPizza, SpicyPizza).
Validate it, load it, and show me the stats.

Claude generates Turtle, then runs the full pipeline automatically:

onto_validateonto_loadonto_statsonto_reasononto_statsonto_lintonto_enforceonto_queryonto_saveonto_version

Every build includes OWL reasoning (materializes inferred triples), design pattern enforcement, and automatic versioning.


Studio (Desktop App)

The Studio lives in studio/ — a Tauri 2 desktop app that provides a visual interface on top of the same engine.

Prerequisites: Rust + Cargo · Node.js 18+

# 1. Build the engine binary (from repo root)
cargo build --release

# 2. Install JS dependencies
cd studio && npm install

# 3. Run
PATH=/opt/homebrew/bin:~/.cargo/bin:$PATH npm run tauri dev

Studio Features

| Feature | Description | | --- | --- | | 3D Graph Canvas | Spring-based force-directed OWL graph (Three.js / WebGL). Grey edges = subClassOf hierarchy, gold edges = object property domain/range links. Drag to orbit, scroll to zoom, click to inspect, right-click to add, Delete to remove. | | AI Agent Chat | Natural language ontology engineering via Claude Opus 4.6 + Agent SDK. Type instructions — Claude calls the right tools automatically. | | Property Inspector | Protégé-style inline triple editor. Click to edit, hover to delete, + Add for new triples. | | Lineage Panel | Full audit trail from SQLite: plan · apply · enforce · drift · monitor · align, grouped by session. | | Named Save | ⌘S to save as ~/.open-ontologies/<name>.ttl. Auto-saves to studio-live.ttl after every mutation. |

Keyboard shortcuts: ⌘J chat · ⌘I inspector · ⌘S save · Delete remove node


Benchmarks

OntoAxiom — LLM Axiom Identification

OntoAxiom tests axiom identification across 9 ontologies and 3,042 ground truth axioms.

| Approach | F1 | vs o1 (paper best) | | --- | --- | --- | | o1 (paper's best) | 0.197 | — | | Bare Claude Opus | 0.431 | +119% | | MCP extraction | 0.717 | +264% |

Pizza Ontology — Manchester Tutorial

One sentence input: "Build a Pizza ontology following the Manchester tutorial specification."

| Metric | Reference (Protégé, ~4 hours) | AI-Generated (~5 min) | Coverage | | --- | --- | --- | --- | | Classes | 99 | 95 | 96% | | Properties | 8 | 8 | 100% | | Toppings | 49 | 49 | 100% | | Named Pizzas | 24 | 24 | 100% |

Mushroom Classification — OWL Reasoning vs Expert Labels

Dataset: UCI Mushroom Dataset — 8,124 specimens classified by mycology experts.

| Metric | Result | | --- | --- | | Accuracy | 98.33% | | Recall (poisonous) | 100% — zero toxic mushrooms missed | | False negatives | 0 | | Classification rules | 6 OWL axioms |

Ontology Marketplace — 29 Standard Ontologies

All 29 marketplace ontologies fetched, owl:imports resolved, loaded, and reasoned over with both RDFS and OWL-RL profiles:

| Ontology | Classes | Properties | Triples | + RDFS | + OWL-RL | Fetch | RDFS | OWL-RL | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | OWL 2 | 32 | 4 | 537 | +230 | +230 | 681ms | 6ms | 3ms | | RDF Schema | 6 | 0 | 87 | +35 | +35 | 522ms | 2ms | 1ms | | RDF Concepts | 7 | 0 | 127 | +31 | +31 | 545ms | 2ms | 2ms | | BFO (ISO 21838) | 35 | 0 | 1,221 | +186 | +186 | 1,141ms | 5ms | 4ms | | DOLCE/DUL | 93 | 118 | 1,917 | +666 | +692 | 2,208ms | 13ms | 12ms | | Schema.org | 1,009 | 0 | 17,823 | +4,031 | +13,670 | 558ms | 57ms | 117ms | | FOAF | 28 | 60 | 631 | +4 | +31 | 940ms | 3ms | 2ms | | SKOS | 5 | 18 | 252 | +55 | +55 | 218ms | 2ms | 1ms | | Dublin Core Elements | 0 | 0 | 107 | +0 | +0 | 371ms | 2ms | 1ms | | Dublin Core Terms | 22 | 0 | 700 | +256 | +261 | 259ms | 4ms | 3ms | | DCAT | 58 | 89 | 2,841 | +223 | +254 | 975ms | 15ms | 11ms | | VoID | 8 | 8 | 216 | +0 | +0 | 531ms | 2ms | 2ms | | DOAP | 17 | 0 | 741 | +0 | +0 | 727ms | 2ms | 2ms | | PROV-O | 39 | 50 | 1,146 | +202 | +203 | 472ms | 5ms | 4ms | | OWL-Time | 23 | 58 | 1,296 | +165 | +165 | 256ms | 5ms | 4ms | | W3C Organization | 22 | 33 | 748 | +9 | +21 | 639ms | 4ms | 3ms | | SSN | 35 | 38 | 1,815 | +84 | +84 | 519ms | 6ms | 4ms | | SOSA | 29 | 23 | 396 | +0 | +0 | 1,264ms | 3ms | 2ms | | GeoSPARQL | 12 | 54 | 796 | +4 | +12 | 733ms | 3ms | 3ms | | LOCN | 2 | 0 | 206 | +0 | +0 | 1,031ms | 2ms | 1ms | | SHACL | 40 | 0 | 1,128 | +268 | +268 | 662ms | 5ms | 3ms | | vCard | 75 | 84 | 882 | +0 | +46 | 854ms | 3ms | 3ms | | ODRL | 71 | 50 | 2,157 | +73 | +76 | 798ms | 6ms | 5ms | | Creative Commons | 6 | 0 | 115 | +0 | +49 |

View on GitHub
GitHub Stars41
CategoryDevelopment
Updated2h ago
Forks5

Languages

Rust

Security Score

95/100

Audited on Mar 23, 2026

No findings