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 OntologiesQuality Score
Category
Development & EngineeringSupported Platforms
README
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 |
|---|---|
|
|
|
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.
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_validate → onto_load → onto_stats → onto_reason → onto_stats → onto_lint → onto_enforce → onto_query → onto_save → onto_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 |
