open-ontologies
Open Ontologies is a Rust MCP server and desktop Studio for AI-native ontology engineering. It exposes 43 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 32 standard ontologies, clinical crosswalks, semantic embeddings, and a full lineage audit trail.
The Studio wraps the engine in a visual desktop environment: virtualized ontology tree with hierarchy lines, breadcrumb navigation, and connection explorer; AI chat panel with /build (IES-level deep) and /sketch (quick prototype) commands; Protégé-style property inspector; and lineage viewer.
No JVM. No Protégé.
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-ontologiesDocker:
docker pull ghcr.io/fabio-rovai/open-ontologies:latest
docker run -i ghcr.io/fabio-rovai/open-ontologies serveFrom source (Rust 1.85+):
git clone https://github.com/fabio-rovai/open-ontologies.git
cd open-ontologies && cargo build --release
./target/release/open-ontologies initConnect to your MCP client
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"]
}
}
}Add to .cursor/mcp.json or equivalent:
{
"mcpServers": {
"open-ontologies": {
"command": "/path/to/open-ontologies/target/release/open-ontologies",
"args": ["serve"]
}
}
}{
"mcpServers": {
"open-ontologies": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/fabio-rovai/open-ontologies", "serve"]
}
}
}Build your first ontology
Build me a Pizza ontology following the Manchester University tutorial.
Include all 49 toppings, 24 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.
Related MCP server: Universal Ontology MCP
Studio (Desktop App)
The Studio is a native desktop application that wraps the same engine in a visual environment — no browser, no server to manage. It runs entirely on your machine: the engine sidecar handles RDF/OWL operations while the UI renders the graph in real time.
Think of it as Protege meets an AI copilot. Type "build ontology about cats" and watch a 1,400-class ontology appear in the tree — classes, properties, individuals, and axioms built automatically across 13 pipeline steps. Click any node to inspect its triples, trace connections via clickable pills, and follow every change through the lineage panel.
Why virtualized tree (not 3D graph)
Prior to v0.1.12, the Studio used a D3.js horizontal tree and a 3D force-directed graph (Three.js / WebGL). Both worked for small ontologies (~100 classes) but became unusable at IES-level depth: the D3 tree couldn't handle 500+ nodes without layout thrashing, and the 3D graph froze the WebKit webview above 1,000 nodes.
The v2 deep builder changed the equation — a single /build command now produces 1,400+ classes. We replaced both views with a virtualized DOM tree: only visible rows exist in the DOM (constant memory regardless of ontology size), with hierarchy connector lines, type-filtered legend, search, breadcrumb navigation, and a connections panel. This handles the full IES Common (511 classes) and deep-built ontologies (1,400+ classes) without lag.
How it works
The Studio launches three processes that communicate locally:
Tauri 2 shell — native window (macOS/Linux/Windows) with a WebKit webview
Engine sidecar — the same Rust binary, running as an HTTP MCP server on
localhost:8080Agent sidecar — Node.js process running Claude via the Agent SDK, connected to the engine over MCP
When you type in the chat panel, your message goes to the Agent sidecar, which sends it to Claude. Claude decides which onto_* tools to call, the engine executes them, and the UI refreshes the graph. The entire loop — prompt to visual update — takes seconds.
Install and run
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 devThe first launch compiles the Tauri shell (~2 min). Subsequent launches start in seconds.
Features
Feature | Description |
Virtualized Tree | Ontology explorer that handles 1,500+ classes without lag. Hierarchy connector lines, collapsible branches, type-filtered legend (Class/Property/Individual), search with auto-expand, breadcrumb path navigation, and a connections panel showing domain/range relationships as clickable pills. Only visible rows are in the DOM — constant memory regardless of ontology size. |
AI Agent Chat | Natural language ontology engineering via Claude Opus 4.6 + Agent SDK. Two build modes: |
Property Inspector | Protege-style inline triple editor. Click any node to see its |
Lineage Panel | Full audit trail from SQLite: every plan, apply, enforce, drift, monitor, and align event, grouped by session with timestamps. See exactly what Claude did and in what order. |
Named Save |
|
Keyboard shortcuts
Shortcut | Action |
| Toggle AI chat panel |
| Toggle property inspector |
| Save ontology |
| Fit graph to viewport (tree view) |
| Reset zoom (tree view) |
| Deselect node |
| Collapse/expand branch (tree view) |
| Zoom in/out |
| Pan |
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% |
/sketch vs /build — Two Build Modes
The Studio provides two build commands for different use cases. Both take the same input — "build ontology about cats" — but produce very different results:
Metric |
|
| IES Common (reference) |
Classes | 95 | 1,433 | 511 |
Object properties | 15 | 218 | 162 |
Datatype properties | 5 | 101 | 44 |
Individuals | 3 | 358 | 21 |
Disjoints | 6 | 60+ | — |
Max hierarchy depth | 5 | 11 | 8 |
Build time | ~2 min | ~15 min | — (hand-built) |
/sketch runs 3 steps: classes + properties in one Turtle block, axioms + individuals, then save. Good for quick domain exploration or demo prototyping. Produces a complete ontology with hierarchy, properties, and individuals — but at a fraction of the depth.
/build runs a 13-step pipeline within a single persistent Claude session: foundation classes → per-branch deepening (4 passes) → gap filling → object properties (2 batches) → datatype properties → disjoints → individuals → reason → save. Each step focuses on one aspect of the ontology, staying within output token limits while building on the previous step's context. The result exceeds IES Common on every metric.
/sketch is comparable to the Pizza benchmark (95 classes, 8 properties). /build produces IES-level ontologies — deep enough for production use.
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 — 32 Standard Ontologies
All 32 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 | 184ms | 1ms | 1ms |
SIOC | 14 | 83 | 615 | +0 | +2 | 863ms | 3ms | 2ms |
ADMS | 4 | 13 | 151 | +0 | +0 | 747ms | 3ms | 1ms |
GoodRelations | 98 | 102 | 1,834 | +15 | +42 | 2,299ms | 6ms | 6ms |
FIBO (metadata) | 0 | 0 | 45 | +0 | +0 | 1,524ms | 3ms | 1ms |
QUDT | 73 | 175 | 2,434 | +1,574 | +1,581 | 2,934ms | 14ms | 9ms |
Total | 1,863 | 1,060 | 42,964 | +8,111 | +17,994 | — | — | — |
32/32 ontologies loaded, imports resolved, and reasoned. RDFS adds 18% more triples. OWL-RL adds 41% — transitive/symmetric/inverse properties and equivalentClass expansion discover significantly more implicit knowledge. Schema.org jumps from +4,031 (RDFS) to +13,670 (OWL-RL) inferred triples in 117ms.
Reasoning Performance — vs HermiT
LUBM Scaling (load + reason cycle)
Axioms | Open Ontologies | HermiT | Speedup |
1,000 | 15ms | 112ms | 7.5× |
5,000 | 14ms | 410ms | 29× |
10,000 | 14ms | 1,200ms | 86× |
50,000 | 15ms | 24,490ms | 1,633× |
Full benchmark writeup: docs/benchmarks.md
OAEI Ontology Alignment — Anatomy Track
OAEI is the standard benchmark for ontology alignment systems. The Anatomy track aligns 2,737 mouse anatomy classes to 3,304 human anatomy classes against 1,516 reference mappings.
System | Precision | Recall | F1 |
AML | 0.950 | 0.922 | 0.936 |
BERTMap | 0.940 | 0.910 | 0.924 |
LogMap | 0.930 | 0.890 | 0.912 |
OLaLa | 0.900 | 0.880 | 0.890 |
Open Ontologies | 0.963 | 0.733 | 0.832 |
Open Ontologies uses 7 weighted signals (label similarity, property/parent/instance/restriction/neighbourhood overlap, embedding similarity), stable 1-to-1 matching, and a label penalty when no structural evidence is available. No external background knowledge (UMLS, BioPortal) is used. See issues #8, #9, #10 for planned improvements.
IES Support
IES (Information Exchange Standard) is the UK National Digital Twin Programme's core ontology framework. It uses a 4D extensionalist (BORO) approach for modelling entities, events, states, and relationships. Open Ontologies supports the full IES stack — all three layers, SHACL shapes, and example datasets from the IES-Org GitHub repositories.
The IES Layers
The marketplace includes all three tiers of the IES framework:
onto_marketplace install ies-top # ToLO — BORO foundations (~22 classes)
onto_marketplace install ies-core # Core — persons, states, events (~131 classes)
onto_marketplace install ies # Common — full ontology (511 classes, 206 properties)Benchmark
Metric | IES Common |
Classes | 511 |
Object properties | 162 |
Datatype properties | 44 |
Total properties | 206 |
Triples loaded | 4,041 |
+ RDFS inferred | +3,094 (+77%) |
Fetch time | 911ms |
RDFS reasoning | 63ms |
Lint issues | 0 |
IES is the second-largest ontology in the marketplace by class count (after Schema.org). RDFS reasoning produces the richest inference gain of any non-general ontology — State, ClassOfEntity, and Event subclasses all generating deep transitive chains.
Example Data
Load IES example datasets directly from the official repositories:
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/examples/sample-data/event-participation.ttl
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/examples/sample-data/hospital.ttl
onto_pull https://raw.githubusercontent.com/telicent-oss/ies-examples/main/additional_examples/ship_movement.ttlSHACL Validation
onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/specification/ies-common.shacl
onto_shaclData Mapping: EPC → IES
The repo includes a sample of real UK Energy Performance Certificates (benchmark/epc/epc-sample.csv) with a mapping config that transforms tabular EPC data into IES-shaped RDF:
onto_load benchmark/generated/ies-building-extension.ttl
onto_ingest benchmark/epc/epc-sample.csv --mapping benchmark/epc/epc-ies-mapping.json
onto_reason --profile rdfsThis mirrors NDTP's actual pipeline: CSV → IES RDF → validate → reason → query.
IES Building Extension — Comparison with NDTP/IRIS
The repo includes an IES Building Extension built from the UK EPC data schema and building science fundamentals, using IES 4D patterns. It was built independently — without reference to any existing implementation — then compared against the NDTP/IRIS production building ontology used in government data pipelines.
Metric | NDTP/IRIS (hand-built) | Open Ontologies (AI-built) |
Schema | ||
Classes | 244 | 525 |
Properties | 34 | 104 |
Triples (raw) | 1,346 | 3,229 |
Lint issues | 2 | 0 |
Reasoning | ||
RDFS inferred | 621 | 662 |
Triples after RDFS | 1,967 | 3,891 |
Max hierarchy depth | 7 | 10 |
Avg hierarchy depth | 2.89 | 2.02 |
EPC Coverage | ||
EPC columns covered | 18/36 (50%) | 36/36 (100%) |
4D Pattern | ||
Complete triads (Entity+State+ClassOf) | 14 | 129 |
Enumerated individuals | 2 | 214 |
Built blind from the 105-column EPC schema, SAP methodology, and BORO 4D extensionalism — zero reference to the IRIS implementation. The two ontologies make different trade-offs: IRIS is more tightly curated with higher average hierarchy depth (2.89 vs 2.02), reflecting deliberate grouping by domain experts. Open Ontologies covers more of the EPC data schema and applies the BORO 4D pattern more systematically across the domain.
How the hierarchy emerges from building science
The ontology's depth (max 10 levels) is not hand-tuned — it follows the natural classification that building scientists use. The EPC data schema describes heating systems as flat text fields ("Condensing gas boiler with radiators"), but the underlying domain has layered structure:
graph TD
HS[Heating System] --> CH[Central Heating]
HS --> NC[Non-Central / Room Heating]
CH --> WET[Wet Central Heating<br/><i>hydronic distribution</i>]
CH --> WA[Warm Air Central Heating<br/><i>ducted air</i>]
CH --> EC[Electric Central Heating<br/><i>storage / underfloor</i>]
WET --> BB[Boiler-Based]
WET --> HP[Heat Pump]
WET --> DH[Community / District]
BB --> CB[Combustion Boiler]
BB --> CHP[Micro-CHP]
CB --> GAS["Gas boiler"]
CB --> OIL["Oil boiler"]
CB --> LPG["LPG boiler"]
CB --> COND["Condensing boiler"]
CB --> COMBI["Combi boiler"]
CB --> BACK["Back boiler"]
HP --> ASHP["Air source"]
HP --> GSHP["Ground source"]
HP --> WSHP["Water source"]
EC --> STOR["Storage heaters"]
EC --> PNL["Panel heaters"]
EC --> UF["Underfloor electric"]
NC --> FIX[Fixed Room Heater]
NC --> PORT[Portable Heater]
FIX --> GROOM["Gas room heater"]
FIX --> EROOM["Electric room heater"]
FIX --> SFROOM["Solid fuel room heater"]
style HS fill:#1a1a2e,color:#fff
style CH fill:#16213e,color:#fff
style NC fill:#16213e,color:#fff
style WET fill:#0f3460,color:#fff
style WA fill:#0f3460,color:#fff
style EC fill:#0f3460,color:#fff
style BB fill:#533483,color:#fff
style HP fill:#533483,color:#fff
style DH fill:#533483,color:#fff
style CB fill:#e94560,color:#fff
style CHP fill:#e94560,color:#fffThe same pattern applies to the building fabric — heat transfer physics dictates the grouping:
graph TD
TE[Building Thermal Envelope] --> OP[Opaque Elements<br/><i>conduction-dominated</i>]
TE --> TR[Transparent Elements<br/><i>radiation + conduction</i>]
OP --> WALL[Walls]
OP --> ROOF[Roofs]
OP --> FLOOR[Floors]
TR --> WIN[Windows]
TR --> DOOR[Doors]
WALL --> MAS[Masonry Walls<br/><i>thermal mass</i>]
WALL --> FRM[Framed Walls<br/><i>stud bridges</i>]
MAS --> CAV["Cavity wall"]
MAS --> SOL["Solid brick"]
MAS --> SND["Sandstone"]
MAS --> GRN["Granite"]
MAS --> COB["Cob"]
FRM --> TF["Timber frame"]
FRM --> SYS["System-built"]
FRM --> PH["Park home"]
ROOF --> PIT[Pitched Roof]
ROOF --> FLT[Flat Roof]
PIT --> COLD["Cold roof<br/><i>insulation at ceiling</i>"]
PIT --> WARM["Warm roof<br/><i>insulation at rafter</i>"]
PIT --> THATCH["Thatched"]
WIN --> SGL["Single glazed"]
WIN --> DBL["Double glazed"]
WIN --> TPL["Triple glazed"]
WIN --> SEC["Secondary glazing"]
style TE fill:#1a1a2e,color:#fff
style OP fill:#16213e,color:#fff
style TR fill:#16213e,color:#fff
style WALL fill:#0f3460,color:#fff
style ROOF fill:#0f3460,color:#fff
style FLOOR fill:#0f3460,color:#fff
style WIN fill:#0f3460,color:#fff
style DOOR fill:#0f3460,color:#fff
style MAS fill:#533483,color:#fff
style FRM fill:#533483,color:#fff
style PIT fill:#533483,color:#fff
style FLT fill:#533483,color:#fffEach level in the tree is a real building science distinction — central vs room heating, hydronic vs warm air, combustion vs electric, masonry vs framed, cavity vs solid. An independent building scientist, given the same EPC data values, produces these same intermediate groupings (verified by clean-room reproduction). RDFS reasoning traverses these chains transitively, which is why a 10-level hierarchy generates 662 inferred triples from 3,229 raw.
EPC Column Coverage Benchmark
Both ontologies tested against 36 key EPC data columns — can each ontology receive and represent the data from that column?
Metric | NDTP/IRIS | Open Ontologies |
EPC columns covered | 18/36 (50%) | 36/36 (100%) |
Triples | 1,346 | 3,229 |
Queries derived from published DESNZ/ONS EPC statistical reports — not from either ontology's class structure. Full benchmark: benchmark/epc/
Use onto_align to map it to other domain ontologies:
onto_load benchmark/generated/ies-building-extension.ttl
onto_align <other-ontology.ttl>Hierarchy Enforcement — Automated Inference Improvement
The hierarchy enforce pack detects flat spots in any ontology and suggests intermediate grouping classes. This is the same process used to deepen the building extension — now codified as a repeatable tool:
onto_load my-ontology.ttl
onto_enforce --pack hierarchy
# → flags classes with >5 direct children
# → reports max depth, avg depth, hierarchy densityTested on IES Common (511 classes), the tool found 24 flat spots. A clean-room agent — with no prior context — proposed 38 intermediate grouping classes based solely on the domain meaning of the flagged children:
graph LR
subgraph Before["IES Common — before"]
EP1[EventParticipant] --> P1["Prosecutor"]
EP1 --> P2["Observer"]
EP1 --> P3["Driver"]
EP1 --> P4["Supplier"]
EP1 --> P5["WeaponLocation"]
EP1 --> P6["...52 direct children"]
end
subgraph After["IES Common — after hierarchy enforce"]
EP2[EventParticipant] --> R[RoleInEvent]
EP2 --> L[LocationInEvent]
EP2 --> A[AssetInEvent]
R --> LR2[LegalRole]
R --> IR[InvestigativeRole]
R --> CR[CommercialRole]
LR2 --> Q1["Prosecutor"]
LR2 --> Q2["Signatory"]
IR --> Q3["Observer"]
IR --> Q4["Investigator"]
CR --> Q5["Supplier"]
CR --> Q6["Negotiator"]
L --> Q7["WeaponLocation"]
L --> Q8["TargetLocation"]
A --> Q9["VehicleUsed"]
end
style EP1 fill:#e94560,color:#fff
style EP2 fill:#1a1a2e,color:#fff
style R fill:#16213e,color:#fff
style L fill:#16213e,color:#fff
style A fill:#16213e,color:#fff
style LR2 fill:#0f3460,color:#fff
style IR fill:#0f3460,color:#fff
style CR fill:#0f3460,color:#fffMetric | Before | After | Change |
Classes | 511 | 549 | +38 |
RDFS inferred | 3,094 | 3,422 | +328 (+10.6%) |
The same tool, applied to any ontology, produces the same kind of improvement. The intermediate classes emerge from domain knowledge — not from reference to any other implementation.
Further Reading
Topic | Link |
IES Ecosystem Demo | |
SPARQL Examples | |
Building Alignment |
Tools
43 tools organized by function — available as MCP tools (prefixed onto_) and CLI subcommands:
Category | Tools | Purpose |
Core |
| RDF/OWL validation, querying, and management |
Repository |
| Browse and load ontologies from configured |
Cache |
| On-disk N-Triples compile cache, idle-TTL eviction, per-name management (details) |
Marketplace |
| Browse and install 32 standard W3C/ISO/industry ontologies |
Remote |
| Fetch/push ontologies, resolve owl:imports |
Schema |
| PostgreSQL → OWL conversion |
Data |
| Structured data → RDF pipeline |
Versioning |
| Named snapshots and rollback |
Lifecycle |
| Terraform-style change management with webhook alerts and OpenCheir governance integration |
Alignment |
| Cross-ontology class matching with self-calibrating confidence |
Clinical |
| ICD-10 / SNOMED / MeSH crosswalks (93-row sample ships in |
Feedback |
| Self-calibrating suppression |
Embeddings |
| Dual-space semantic search (text + Poincaré structural) |
Reasoning |
| Native OWL2-DL SHOIQ tableaux reasoner |
Architecture
Engine
flowchart TD
subgraph Clients["Clients"]
Claude["Claude / LLM\nMCP stdio"]
CLI["CLI\nonto_* subcommands"]
Studio["Studio\nHTTP REST"]
end
subgraph Server["Open Ontologies Server"]
direction TB
subgraph Transport["Transport Layer"]
MCP_HTTP["MCP Streamable HTTP\n/mcp"]
REST["REST API\n/api/query · /api/update\n/api/save · /api/load · /api/lineage"]
end
subgraph ToolGroups["43 Tools"]
direction LR
Core["Core\nvalidate · load · save · clear\nstats · query · diff · lint\nconvert · status"]
DataPipe["Data Pipeline\nmap · ingest · shacl\nreason · extend · import-schema"]
Lifecycle["Lifecycle\nplan · apply · lock · drift\nenforce · monitor · lineage"]
Advanced["Alignment + Clinical\nalign · crosswalk · enrich\nenrich · embed · search · similarity\ndl_explain · dl_check"]
Version["Versioning\nversion · history · rollback"]
end
subgraph Core2["Core Engine"]
GraphStore["Oxigraph Triple Store\nRDF/OWL in-memory\nSPARQL 1.1"]
SQLite["SQLite\nlineage events\nversion snapshots\nlint/enforce feedback\nembedding vectors"]
Reasoner["OWL2-DL Reasoner\nSHOIQ tableaux\nRDFS · OWL-RL"]
Embedder["Embedding Engine\ntract-onnx (ONNX)\ntext + Poincaré structural"]
end
end
subgraph External["External Sources"]
PG["PostgreSQL\nschema import"]
SPARQL["Remote SPARQL\nendpoints"]
OWL["OWL URLs\nowl:imports chains"]
Parquet["Parquet / Arrow\nclinical crosswalks\nICD-10 · SNOMED · MeSH"]
Files["Files\nCSV · JSON · XML\nYAML · XLSX · Parquet"]
end
Claude -->|"MCP stdio"| MCP_HTTP
CLI -->|"subcommands"| MCP_HTTP
Studio -->|"sessionless"| REST
MCP_HTTP --> ToolGroups
REST --> ToolGroups
ToolGroups --> GraphStore
ToolGroups --> SQLite
ToolGroups --> Reasoner
ToolGroups --> Embedder
Reasoner --> GraphStore
Embedder --> SQLite
DataPipe --> Files
Advanced --> Parquet
Core --> OWL
Core --> SPARQL
DataPipe --> PGStudio
flowchart TD
subgraph UI["React UI (Vite + Tailwind CSS)"]
Graph["Virtualized Tree\nDOM + virtual scroll"]
Chat["AI Chat Panel\nZustand store"]
Inspector["Property Inspector\nInline SPARQL edit"]
Lineage["Lineage Panel\nAudit trail"]
Save["Named Save\n⌘S → ~/.open-ontologies/"]
end
subgraph Tauri["Tauri 2 Shell (Rust)"]
IPC["Tauri IPC\ninvoke / event"]
ChatState["ChatState\nstdin/stdout pipe"]
end
subgraph Engine["Engine Sidecar (Rust / Axum)"]
MCP["/mcp — MCP Streamable HTTP\n43 onto_* tools"]
REST2["/api/query · /api/update\n/api/save · /api/load-turtle\n/api/stats · /api/lineage"]
Store["Arc<GraphStore>\nOxigraph"]
DB["SQLite"]
end
subgraph Agent["Agent Sidecar (Node.js)"]
SDK["Claude Opus 4.6\nAgent SDK"]
Proto["stdin/stdout JSON protocol"]
end
Graph -->|"SPARQL SELECT/UPDATE · REST"| REST2
Inspector -->|"SPARQL UPDATE · REST"| REST2
Lineage -->|"GET /api/lineage"| REST2
Save -->|"POST /api/save"| REST2
Chat -->|"invoke send_chat_message"| IPC
IPC --> ChatState
ChatState -->|"stdin { type: chat }"| Proto
Proto --> SDK
SDK -->|"MCP tools/call"| MCP
SDK -->|"stdout { type: text/tool_call/done }"| Proto
Proto -->|"Tauri emit agent-message"| Chat
MCP --> Store
REST2 --> Store
Store --> DBDesign decisions
Decision | Reason |
UI reads use sessionless REST | No MCP session management needed for SPARQL queries or stats |
UI writes use REST | Avoids session lifecycle issues in the Tauri WebKit webview |
Agent writes go through MCP | The Agent SDK manages its own MCP session; Claude needs the full tool set |
Shared | All MCP sessions and REST handlers share the same in-memory triple store |
Agent sidecar over stdin/stdout | Keeps Node.js isolated; Tauri manages the full lifecycle |
Stack
Layer | Tech |
Engine language | Rust (edition 2024) — single binary, no JVM |
Triple store | Oxigraph 0.4 — pure Rust RDF/SPARQL 1.1 engine |
MCP protocol | rmcp — Streamable HTTP transport |
State / lineage / feedback | SQLite (rusqlite) |
Clinical crosswalks | Apache Arrow / Parquet |
Embeddings runtime | tract-onnx — pure Rust ONNX (optional) |
Desktop shell | Tauri 2 |
Frontend | React 19, Vite 7, TypeScript 5.8, Tailwind CSS 4 |
Tree view | Virtualized DOM tree with virtual scroll (no canvas/WebGL dependencies) |
UI state | Zustand 5 |
AI agent | Claude Opus 4.6 via Agent SDK (Node.js sidecar) |
Documentation
Topic | Link |
Quickstart | |
Data Pipeline | |
Ontology Lifecycle | |
Schema Alignment | |
OWL2-DL Reasoning | |
Semantic Embeddings | |
Clinical Crosswalks | |
IES Ecosystem | |
IES SPARQL Examples | |
IES:Building Alignment | |
Benchmarks | |
Contributing | |
Changelog |
License
MIT
Available Tools
42 toolsonto_alignB
Detect alignment candidates (owl:equivalentClass, skos:exactMatch, rdfs:subClassOf) between two ontologies using label similarity, property overlap, parent overlap, instance overlap, restriction patterns, and graph neighborhood. Auto-applies high-confidence matches above threshold.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Source ontology: inline Turtle content or file path | |
| target | No | Target ontology: inline Turtle content or file path. If omitted, aligns against loaded store | |
| dry_run | No | If true, return candidates only without inserting triples (default false) | |
| min_confidence | No | Minimum confidence threshold for auto-apply (default 0.85) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions auto-applying high-confidence matches and dry_run, but does not disclose permanence of changes, reversibility, authorization needs, or whether the tool is destructive. The write operation (inserting triples) is only implied via dry_run parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and avoids redundancy. It is efficient but could be slightly more structured (e.g., separating detection from auto-application). Minor improvement possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's complexity and no output schema or annotations, the description omits return value details, side effects (permanent ontology modification), and guidance on interpreting dry_run results. Missing critical context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter already described. The description adds context about how min_confidence is used for auto-apply and the purpose of dry_run, but does not significantly extend beyond schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects alignment candidates using specific ontology relations (owl:equivalentClass, skos:exactMatch, rdfs:subClassOf) and multiple methods (label similarity, property overlap, etc.), distinguishing it from siblings like onto_map or onto_similarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for automatic alignment detection and application, but does not explicitly state when to use it versus alternatives like onto_map (manual mapping) or onto_similarity (similarity computation). No when-not-to-use or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_align_feedbackA
Accept or reject an alignment candidate to improve future confidence scoring. Stores feedback in align_feedback table for self-calibrating weights.
| Name | Required | Description | Default |
|---|---|---|---|
| accepted | Yes | Whether the alignment candidate was correct | |
| source_iri | Yes | Source class IRI from the alignment candidate | |
| target_iri | Yes | Target class IRI from the alignment candidate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description adequately discloses that feedback is stored in the align_feedback table for self-calibrating weights, indicating a persistent write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple feedback storage tool with full parameter coverage and no output schema, the description sufficiently explains the action and effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions in the schema (100% coverage). The description adds no new meaning beyond purpose, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool accepts or rejects alignment candidates to improve confidence scoring, distinguishing it from siblings like 'onto_align' (generates alignments) and 'onto_lint_feedback' (lint feedback).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use after generating alignment candidates, but lacks explicit guidance on when to use vs. alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_applyA
Apply the last plan. Modes: 'safe' (clear+reload, checks monitor), 'force' (ignores monitor), 'migrate' (adds owl:equivalentClass/Property bridges for renames).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Apply mode: "safe" (default), "force" (ignores monitor), "migrate" (adds bridges) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses mode behaviors (clear+reload, monitor checks, bridge additions) but fails to mention potential side effects, prerequisites (e.g., existing plan), or error conditions. Without annotations, this coverage is moderate but has gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous information. The description is front-loaded with the action and immediately provides mode details, making it efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter set and no output schema, the description covers the tool's core functionality and modes. However, it omits mentions of dependencies (e.g., requires a plan created by onto_plan) and return behavior. Overall sufficient for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the 'mode' parameter with descriptions, but the tool description adds meaningful context by explaining what each mode does operationally. This enriches the schema, moving above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies the last plan and details three distinct modes ('safe', 'force', 'migrate') with specific behaviors. It distinguishes itself from siblings by focusing on execution of a plan rather than creation or analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the modes but does not specify when to use this tool versus alternatives like onto_plan or onto_rollback. No explicit conditions or exclusions are provided, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_clearA
Clear all triples from the in-memory ontology store
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It clearly states the destructive action of clearing all triples, which implies irreversibility. However, it does not explicitly mention that the action is irreversible or whether it requires special permissions, leaving some behavioral context unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no superfluous information. Every word contributes meaning, meeting the conciseness standard.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and the action is straightforward, the description fully explains what the tool does. No additional context is necessary for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is 100%. According to guidelines, zero parameters baseline is 4. No additional parameter info is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'clear' and resource 'all triples from the in-memory ontology store', clearly distinguishing it from sibling tools like onto_validate or onto_query. There is no ambiguity or tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as onto_rollback or onto_history, nor does it mention any prerequisites or exclusions. Given the many sibling tools, explicit usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_convertB
Convert an RDF file between formats: turtle, ntriples, rdfxml, nquads, trig
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target format: turtle, ntriples, rdfxml, nquads, trig | |
| path | Yes | Path to source RDF file | |
| output | No | Optional output file path (if omitted, returns content) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It does not disclose side effects (e.g., whether source file is modified, overwriting behavior), required permissions, or error handling. Minimal behavioral context beyond the stated conversion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, direct, no redundant words. Essential information is front-loaded. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool with no output schema, the description covers the basic purpose and formats. However, it omits details like error conditions, behavior when output file exists, or performance implications. Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description essentially repeats the parameter descriptions (e.g., list of formats matches 'to' schema description). Adds negligible additional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Convert' and specific resource 'RDF file between formats' with explicit list of supported formats. Well distinguishes from sibling tools like onto_align, onto_validate, etc. which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Lacks explicit context for selection criteria, such as when format conversion is needed vs other RDF operations like validation or reasoning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_crosswalkB
Look up clinical crosswalk mappings for a code and system (ICD10, SNOMED, MeSH). Requires data/crosswalks.parquet.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Clinical code to look up (e.g. "I10") | |
| source_system | Yes | Source system (e.g. "ICD10", "SNOMED", "MeSH") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only mentions a data file requirement, but does not disclose whether the operation is read-only, has side effects, rate limits, or other behavioral traits. The lookup nature is implied but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence front-loads the purpose, and the second adds a key prerequisite. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema. The description fails to explain what the tool returns (e.g., list of mappings, target codes). For a lookup tool, this is a critical missing detail. Also error handling is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds some context by listing supported systems, but the schema already provides examples for code and source_system. The added value is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('look up'), resource ('clinical crosswalk mappings'), and scope ('for a code and system' with specific examples like ICD10, SNOMED, MeSH). It distinguishes this tool from many siblings by focusing on crosswalk mappings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., onto_map, onto_align). Only a prerequisite is mentioned (data/crosswalks.parquet), but no when-not or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_diffB
Compare two ontology files and show added/removed triples
| Name | Required | Description | Default |
|---|---|---|---|
| new_path | Yes | Path to the new/modified ontology file | |
| old_path | Yes | Path to the old/original ontology file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the basic comparison action without revealing side effects, prerequisites, or whether the tool is read-only (expected for a diff). The agent lacks information on error handling, performance, or requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. It is appropriately concise for a simple tool, though it could benefit from a slight expansion on output or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, no output schema), the description is minimally adequate. However, it lacks details such as the format of the diff output (e.g., plain triples, formatted table) and any constraints like file format requirements. This leaves gaps for an agent interpreting the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters (new_path, old_path) with 100% coverage. The description adds no new semantic meaning beyond 'ontology files' which is implied by the tool name. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'compare' and the resource 'ontology files', and specifies the output 'show added/removed triples'. This distinguishes it from siblings like onto_align, onto_drift, or onto_history, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when comparing two ontology versions) but provides no explicit guidance on when not to use it or alternatives. For example, it does not explain how it differs from onto_drift or onto_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_dl_checkA
Check if one class is subsumed by another using DL tableaux reasoning. Returns whether sub_class is a subclass of super_class, with justification.
| Name | Required | Description | Default |
|---|---|---|---|
| sub_class | Yes | IRI of the sub-class (the more specific class) | |
| super_class | Yes | IRI of the super-class (the more general class) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the reasoning method (DL tableaux) and output format (boolean with justification), suggesting a read-only operation. However, it does not explicitly state that it is non-destructive, requires no special permissions, or any potential side effects like loading reasoners.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence immediately states the core purpose, and the second clarifies the return value. Every word is functional, and there is no redundancy. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (two parameters, no output schema), the description is complete. It explains what the tool does, the reasoning method, and what it returns (boolean with justification). No additional information is necessary for an AI agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description text for parameters is identical to the schema descriptions, adding no new meaning beyond what the schema already provides. Thus, the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking if one class (sub_class) is subsumed by another (super_class) using DL tableaux reasoning. It specifies what it returns (boolean with justification) and the verb 'Check' precisely indicates the action. The sibling tools like onto_reason, onto_diff are distinct, so this tool's niche is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for subsumption checking, but it does not explicitly state when to use this tool over alternatives (e.g., onto_reason for general reasoning) or when not to use it. No usage context or prerequisites are mentioned, leaving some ambiguity for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_dl_explainA
Explain why a class is unsatisfiable using DL tableaux reasoning. Returns an explanation trace showing the logical contradictions that make the class impossible to instantiate.
| Name | Required | Description | Default |
|---|---|---|---|
| class_iri | Yes | IRI of the class to explain unsatisfiability for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states that the tool returns an explanation trace, but it does not mention whether the tool is read-only, requires authentication, or has any side effects. The description is minimal and lacks details about error handling or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences that front-load the core purpose and output. Every word adds value, and there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple single-parameter interface with no output schema. The description covers the core functionality and output, but it does not mention that the class must be unsatisfiable for the tool to produce meaningful output, nor does it explain error scenarios. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'class_iri', already describing it as 'IRI of the class to explain unsatisfiability for.' The description adds no additional semantic value beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Explain why a class is unsatisfiable using DL tableaux reasoning.' It also describes the output as 'an explanation trace showing the logical contradictions.' This clearly distinguishes it from siblings like onto_dl_check, which likely checks satisfiability without explanation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool (to explain unsatisfiability) but does not provide guidance on when not to use it or what alternatives exist. For instance, if the class is satisfiable, this tool may not be applicable, but that is not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_driftB
Detect drift between two ontology versions. Returns added/removed terms, likely renames with confidence scores, and drift velocity.
| Name | Required | Description | Default |
|---|---|---|---|
| version_a | Yes | First version as inline Turtle | |
| version_b | Yes | Second version as inline Turtle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the tool returns added/removed terms, renames with confidence, and drift velocity, implying a read-only analysis. However, it does not confirm lack of side effects or mention any permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads purpose and return details. Every word contributes value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters with good schema descriptions, and the return behavior is summarized. However, it lacks context on input format constraints, size limits, or examples, which would be useful for a detection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptions for both parameters specifying they are Turtle strings. The description adds no further meaning beyond the schema, meeting the baseline for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Detect' and resource 'drift between two ontology versions', and lists return types. It distinguishes from siblings like onto_diff by focusing on drift (including renames and velocity), but does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like onto_diff or onto_align. The description omits context such as prerequisites or constraints on input size or validity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_embedB
Generate text + structural Poincaré embeddings for all classes in the loaded ontology. Requires the embedding model (run open-ontologies init to download). Embeddings enable semantic search via onto_search and improve alignment accuracy.
| Name | Required | Description | Default |
|---|---|---|---|
| struct_dim | No | Structural embedding dimension. Default: 32 | |
| struct_epochs | No | Structural training epochs. Default: 100 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'generate' without stating whether this is idempotent, destructive, or requires permissions. It does not mention what happens to existing embeddings or if there are side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence states the main function, and the second adds a prerequisite and links to related tools, avoiding unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should hint at return values or side effects. It mentions enabling onto_search and alignment but does not clarify what the tool returns or if it modifies the ontology state. This leaves some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (struct_dim, struct_epochs). The description does not add any additional parameter semantics beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('generate') and the specific resource ('text + structural Poincaré embeddings for all classes in the loaded ontology'), distinguishing it from sibling tools like onto_search (which uses embeddings) and onto_align (which improves alignment).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The only prerequisite mentioned is needing the embedding model, but no when-to-use or when-not-to-use context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_enforceA
Enforce design patterns on the loaded ontology. Built-in packs: 'generic' (orphan classes, missing domain/range/label), 'boro' (BORO 4D patterns), 'value_partition' (disjoint/covering checks). Also runs any custom rules stored for the pack.
| Name | Required | Description | Default |
|---|---|---|---|
| rule_pack | Yes | Rule pack to enforce: "generic", "boro", "value_partition", or custom pack name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions running packs and custom rules but fails to disclose whether the tool is read-only or modifies the ontology, nor does it discuss prerequisites, side effects, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose, no redundancy, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and no output schema, the description covers basic usage but omits what the tool returns or whether it mutates the ontology, leaving important gaps for an enforcement tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema by detailing what each built-in pack checks (e.g., orphan classes for generic, BORO patterns for boro, disjoint/covering for value_partition), which is not in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it enforces design patterns on the loaded ontology, listing specific built-in packs and custom rules. It distinguishes from siblings by focusing on enforcement rather than validation or linting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one wants to enforce patterns, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_enforce_feedbackA
Accept or dismiss an enforce violation to improve future enforce runs. Dismissed violations are suppressed after 3 dismissals. Stores feedback for self-calibrating compliance.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | The entity IRI that triggered the violation | |
| rule_id | Yes | The enforce rule ID (e.g. "orphan_class", "missing_domain", "missing_range", "missing_label", or custom rule ID) | |
| accepted | Yes | true = this is a real violation, false = dismiss/override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors: dismissals are suppressed after 3 occurrences, and feedback is stored for self-calibration. With no annotations provided, this adequately informs the agent about side effects and persistence, though acceptance behavior could be more detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, using three short sentences to convey purpose, behavior, and storage effects. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers core purpose and behavior, it lacks mention of return values (no output schema) and omits comparisons to similar feedback tools among siblings. For a simple feedback tool, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully described in the input schema (100% coverage). The description adds no new meaning beyond the schema, placing it at the baseline score for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool accepts or dismisses enforce violations to improve future enforce runs. It uniquely identifies the resource as 'enforce violation', distinguishing it from sibling tools like onto_lint_feedback or onto_align_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the name and action, but there is no explicit guidance on when to use this tool versus alternatives like onto_enforce or other feedback tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_enrichB
Enrich an ontology class with a SKOS mapping triple from the clinical crosswalks.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Clinical code to map to | |
| system | Yes | Code system (e.g. "ICD10") | |
| class_iri | Yes | IRI of the ontology class to enrich |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the action (adds a triple) but does not disclose whether it is destructive, idempotent, requires prior steps, or what the effect on existing data is. Behavioral traits like side effects are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that efficiently conveys the core action. No extraneous words, but could possibly add more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse. It lacks explanation of the return value, what a 'SKOS mapping triple' is, and how the enrichment affects the ontology. For a tool with three required parameters, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The tool description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Enrich', a specific resource 'ontology class', and what is added 'SKOS mapping triple from the clinical crosswalks'. This provides a distinct purpose that differentiates it from sibling tools like onto_map or onto_align.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or when not to use this tool. It does not mention alternatives or prerequisites, leaving the agent to infer usage without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_extendA
Convenience pipeline: ingest data → validate with SHACL → run OWL reasoning, all in one call. Combines onto_ingest + onto_shacl + onto_reason.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Data format (auto-detected if omitted) | |
| shapes | No | Path to SHACL shapes file or inline Turtle | |
| mapping | No | Mapping config (inline JSON or file path) | |
| base_iri | No | Base IRI for generated instances | |
| data_path | Yes | Path to the data file | |
| inline_shapes | No | If true, treat shapes as inline Turtle | |
| inline_mapping | No | If true, treat mapping as inline JSON | |
| reason_profile | No | Reasoning profile (rdfs, owl-rl). Omit to skip reasoning. | |
| stop_on_violations | No | If true (default), stop pipeline on SHACL violations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the pipeline sequence but does not disclose behavioral traits such as atomicity, rollback behavior, side effects on data state, permissions required, or any constraints beyond the parameter schema. The 'stop_on_violations' parameter is not explained in the description, leaving the agent unaware of default behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy: first sentence explains the pipeline purpose and sequence, second lists the component tools. Every word earns its place. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal; for a tool with 9 parameters and no output schema, it could provide more context about the pipeline's behavior (e.g., whether it's atomic, what happens on violation beyond the parameter, default reasoning profile). However, it gives a clear overview of the combined steps, which may be sufficient if the agent is familiar with the individual tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 9 parameters have descriptions), so baseline is 3. The description adds no additional meaning beyond the schema; it does not explain parameter interplay or typical values. The description is generic and does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a convenience pipeline combining ingest, SHACL validation, and OWL reasoning in one call. It explicitly names the three sub-tools (onto_ingest, onto_shacl, onto_reason), distinguishing it from sibling tools that perform these steps individually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a 'convenience pipeline' for combining steps, but does not explicitly state when to prefer it over individual tools, nor does it provide guidance on when not to use it (e.g., when fine-grained control is needed). The guidance is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_historyA
List all saved ontology version snapshots
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details such as authentication requirements, destructive potential, pagination, or any effect of the operation. With no annotations to supplement, the agent must infer safety and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core function without any unnecessary words. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is clear but incomplete: it does not specify what information is returned (e.g., snapshot names, dates). This could leave an AI agent without expectations for the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the tool has no parameters, the input schema alone covers 100% of parameter information. The description does not need to add parameter semantics, and the baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'saved ontology version snapshots', effectively differentiating it from sibling tools like onto_save (which creates snapshots) and onto_load (which loads snapshots).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as onto_version or onto_status. The description merely states what the tool does without any exclusions or contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_importB
Resolve and load all owl:imports from the currently loaded ontology
| Name | Required | Description | Default |
|---|---|---|---|
| max_depth | No | Resolve and load all owl:imports from the currently loaded ontology |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the basic action without disclosing side effects (e.g., whether it modifies the ontology, requires network access, or can fail). With no annotations, the agent lacks behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fails to explain the effect of the operation (e.g., whether imports are added to the current ontology) or the return value. This leaves a significant gap for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (parameter description identical to tool description). The description adds no extra meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Resolve and load all owl:imports from the currently loaded ontology'. It specifies the verb (resolve and load) and the resource (owl:imports), and distinguishes it from siblings like onto_import_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like onto_load or onto_ingest. The description does not mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_import_schemaA
Import a PostgreSQL database schema as an OWL ontology. Introspects tables, columns, primary keys, and foreign keys, then generates OWL classes, datatype/object properties, and cardinality restrictions.
| Name | Required | Description | Default |
|---|---|---|---|
| base_iri | No | Base IRI for generated classes (default: http://example.org/db/) | |
| connection | Yes | Database connection string (e.g. postgres://user:pass@host/db) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It indicates a read (introspect DB) and write (generate OWL) operation, but does not mention whether the database is modified, permissions required, or if the ontology overwrites existing data. Some transparency but gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey the tool's purpose and capabilities. However, it omits essential info like output format or return value, which could be added without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters and no output schema, the description should explain the output (e.g., ontology IRI) and prerequisites (e.g., DB access). It lacks this context, making it incomplete for an import tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions (base_iri, connection). The tool description reinforces the PostgreSQL context but adds no extra meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool imports a PostgreSQL database schema as an OWL ontology, listing specific introspection details (tables, columns, PKs, FKs) and generated OWL constructs (classes, properties, cardinality restrictions). This clearly differentiates it from generic siblings like onto_import or onto_convert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a PostgreSQL database schema needs conversion to OWL, but lacks explicit when-not-to-use guidance or alternatives among siblings. No exclusions or comparison to onto_import or onto_ingest is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_ingestB
Parse a structured data file (CSV, JSON, NDJSON, XML, YAML, XLSX, Parquet) into RDF triples and load into the ontology store. Optionally uses a mapping config to control field-to-predicate mapping.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the data file (CSV, JSON, NDJSON, XML, YAML, XLSX, Parquet) | |
| format | No | Data format (auto-detected from extension if omitted): csv, json, ndjson, xml, yaml, xlsx, parquet | |
| mapping | No | Mapping config as JSON string or path to mapping JSON file | |
| base_iri | No | Base IRI for generated instances (default: http://example.org/data/) | |
| inline_mapping | No | If true, treat mapping as inline JSON (default: false = file path) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It states parsing and loading but does not address whether existing data is overwritten, transactional behavior, error handling, or authorization needs. Incomplete for a data ingestion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, highly efficient. Front-loaded with core purpose, followed by optional capability. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 5 parameters (1 required), the description covers main functionality but lacks details on return behavior, persistence, or integration with ontology store lifecycle. Adequate but could be more complete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal context beyond schema (e.g., 'mapping config controls field-to-predicate mapping'), which aligns with schema descriptions. No significant new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (parse and load) and resource (structured data file into RDF triples in ontology store). It distinguishes from siblings like onto_import (which likely imports ontologies) and onto_load (loading existing triples) by specifying parsing from multiple formats and optional mapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like onto_import, onto_load, or onto_convert. The description does not mention when not to use it or provide explicit context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_lineageA
Get the compact lineage log for the current or specified session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | Session ID to query (omit for current session) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description implies read-only ('Get'), but without annotations this is insufficient. No mention of side effects or state changes, which is acceptable for a simple retrieval but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that clearly conveys the tool's purpose without any unnecessary words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description provides enough information for an agent to use it correctly, though it could mention that it does not modify data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description for session_id is sufficient; the description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Get' and clear resource 'compact lineage log for the current or specified session', distinguishing it from sibling tools like onto_align, onto_apply, etc., which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly guides when to use (when lineage log is needed) and how to specify session, but lacks explicit alternatives or exclusions. Still clear for a straightforward read tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_lintA
Check an ontology for quality issues: missing labels, comments, domains, ranges
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Path to RDF file to lint, OR inline Turtle content | |
| inline | No | If true, treat input as inline content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While 'check' implies a non-destructive read operation, the description does not explicitly state that no modifications are made, nor does it mention any authentication or performance considerations. With no annotations, the description provides minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundant information. It is front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description tells what the tool checks but does not describe the output format or whether it modifies the ontology. Given no output schema, some information about return values would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description adds general context about the tool's purpose (what issues it checks) but does not enhance the semantics of individual parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Check') and resource ('ontology for quality issues'), listing specific issues (missing labels, comments, domains, ranges). This distinguishes it from sibling tools like onto_align or onto_convert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as onto_lint_feedback. The description does not mention any prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_lint_feedbackA
Accept or dismiss a lint issue to improve future lint runs. Dismissed issues are suppressed after 3 dismissals. Stores feedback for self-calibrating severity.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | The entity IRI that triggered the lint issue | |
| rule_id | Yes | The lint rule ID (e.g. "missing_label", "missing_comment", "missing_domain", "missing_range") | |
| accepted | Yes | true = this is a real issue, false = dismiss/ignore |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals that dismissals are suppressed after 3 occurrences and that feedback is used for self-calibrating severity. This goes beyond basic action but omits details like persistence or immediate effect of acceptance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, then behavioral detail. No unnecessary words; highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple feedback tool, the description explains behavior (suppression threshold, self-calibration). However, it lacks mention of return value or confirmation, which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds no new meaning about parameters, merely aligning with 'accepted' via 'Accept or dismiss'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Accept or dismiss a lint issue to improve future lint runs.' It specifies the action (accept/dismiss) and resource (lint issue), distinguishing it from sibling 'onto_lint' which runs lint checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (providing feedback for calibration) but does not explicitly state when to use this versus alternatives like 'onto_enforce_feedback'. No when-not or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_loadC
Load an RDF file into the in-memory ontology store for querying
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to RDF file to load into the in-memory store |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose side effects (e.g., overwriting existing data), memory implications, or access requirements. Minimal behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous text. It is concise, though it could benefit from additional structure (e.g., separated usage notes).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (single param, no output schema) and the presence of many sibling tools, the description is incomplete. It lacks behavioral context (e.g., destructive behavior, memory limits) that is critical given no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the 'path' parameter described as 'Path to RDF file...' in both schema and description. The description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool loads an RDF file into the in-memory store for querying. However, it does not differentiate from siblings like onto_import or onto_ingest, which may perform similar actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description implies usage for loading files into memory but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_lockA
Lock IRIs to prevent removal during plan/apply. Locked IRIs will show as violations in plan output.
| Name | Required | Description | Default |
|---|---|---|---|
| iris | Yes | IRIs to lock (prevent removal) | |
| reason | No | Reason for locking |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that locked IRIs prevent removal and appear as violations in plan output. Missing information on reversibility or side effects, but the main effect is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with front-loaded purpose. No redundant words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain return values but does not. Captures key behavioral aspect (violations) but lacks details on reversibility, permissions, or what the function returns. Sibling context is clear but tool could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with descriptions (100% coverage). Description adds context about purpose and outcome, but does not significantly enhance parameter understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states action ('Lock IRIs'), purpose ('prevent removal during plan/apply'), and describes output behavior ('show as violations in plan output'). Distinguishes from siblings like onto_plan and onto_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage before plan/apply, but no explicit when-to-use or when-not-to-use. No mention of alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_mapA
Generate a mapping config by inspecting a data file's schema against the currently loaded ontology. Returns a JSON mapping that can be reviewed and passed to onto_ingest.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Data format (auto-detected if omitted) | |
| data_path | Yes | Path to sample data file to generate mapping for | |
| save_path | No | Optional path to save the generated mapping config |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behaviors. It mentions returning a JSON mapping but does not disclose if it modifies state (e.g., saving to disk), prerequisites (ontology must be loaded), or side effects. Partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. First sentence describes action and process; second sentence explains output and recommended next step. Highly efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately explains the tool's purpose and place in a workflow (generate mapping, then ingest). Lacks details about the output JSON structure, but given the tool's simplicity and schema coverage, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds marginal value (e.g., workflow hint about onto_ingest) but does not significantly enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Generate', resource 'mapping config', and process 'inspecting a data file's schema against the currently loaded ontology'. Distinguishes from siblings like onto_ingest and onto_align.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage: when you need a mapping config for data ingestion. Mentions output can be passed to onto_ingest, providing workflow context. Lacks explicit when-not-to-use or comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_monitorA
Run active monitoring watchers. Optionally add new watchers via inline JSON. Returns ok/alert/blocked status with details.
| Name | Required | Description | Default |
|---|---|---|---|
| watchers | No | Inline JSON array of watchers to add, or omit to just run existing watchers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description reveals the return status ('ok/alert/blocked') and the ability to add watchers. However, it does not disclose behavioral aspects like side effects, destructive nature, or authentication requirements, which are important given the absence of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three short sentences that front-load the core purpose. Every sentence adds value with no redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description covers the main functionality and return type. It lacks details on JSON formatting for new watchers and precise return fields, but is otherwise complete enough for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters and already explains the 'watchers' parameter. The description merely echoes the schema's information without adding new semantic meaning, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('run active monitoring watchers') and the resource, with optional adding of new watchers. It distinguishes itself from siblings like onto_monitor_clear by focusing on running and adding watchers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., onto_monitor_clear). There is no mention of prerequisites or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_monitor_clearA
Clear the monitor blocked flag, allowing apply operations to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the action (clearing a flag) and its effect (enabling apply operations), but lacks details on side effects, reversibility, or permission requirements. Without annotations, more behavioral context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence that is front-loaded with the verb and resource. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description adequately explains the core function and its immediate effect. However, it could be more complete by defining the 'monitor blocked flag' or prerequisites. Overall, it's sufficient for a simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% trivially. The description adds semantic value by naming the 'monitor blocked flag', but does not elaborate on the flag's nature or scope. A baseline of 4 is appropriate given no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Clear the monitor blocked flag') and the consequence ('allowing apply operations to proceed'). It distinguishes itself from sibling tools like 'onto_monitor' and 'onto_clear' by specifying the particular flag being cleared.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool should be used when the monitor is blocked and apply operations are hindered. However, it does not explicitly mention when not to use it or compare with alternatives like 'onto_clear' or 'onto_monitor'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_planA
Terraform-style plan: diff current store against proposed Turtle. Shows added/removed classes/properties, blast radius, risk score, and locked IRI violations.
| Name | Required | Description | Default |
|---|---|---|---|
| new_turtle | Yes | New ontology as inline Turtle content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains the tool's purpose and outputs but does not disclose whether it is read-only or modifies state, nor does it mention authentication or rate limits. The 'blast radius' and 'risk score' hint at analysis without side effects, but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys purpose, key outputs, and analogy. No wasted words. Front-loaded with the 'Terraform-style plan' concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema or annotations, the description adequately covers tool behavior and outputs (added/removed classes, blast radius, risk score, IRI violations). Missing details about output format or connection requirements, but sufficient for a plan tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (new_turtle) with 100% schema coverage. Description mentions 'proposed Turtle' but adds no new meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it performs a Terraform-style plan diffing the current store against proposed Turtle. It lists specific outputs: added/removed classes/properties, blast radius, risk score, and locked IRI violations. This differentiates it from siblings like onto_diff or onto_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for planning before applying changes, but does not explicitly state when to use over alternatives or provide exclusion criteria. No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_pullB
Fetch an ontology from a remote URL or SPARQL endpoint and load it into the store
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Remote URL or SPARQL endpoint to fetch ontology from | |
| query | No | Optional SPARQL CONSTRUCT query (required if sparql=true) | |
| sparql | No | If true, treat url as a SPARQL endpoint and run a CONSTRUCT query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full burden. It mentions fetching and loading, but does not disclose side effects like overwriting, merging, or required permissions. Lacks transparency on destructive potential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence and front-loaded, but it is too brief given the tool has 3 parameters and multiple modes. More detail would improve usability without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing important context such as what 'load into the store' entails (replace, merge?), error conditions, and relation to other tools. No output schema, so return values are unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The tool description adds no value beyond the schema, merely restating the purpose. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'ontology', and specifies two modes (remote URL or SPARQL endpoint). It distinguishes from sibling tools like onto_import or onto_query by mentioning loading into the store.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as onto_import or onto_query. No mention of when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_pushC
Push the current ontology store to a remote SPARQL endpoint
| Name | Required | Description | Default |
|---|---|---|---|
| graph | No | Optional named graph IRI | |
| endpoint | Yes | Remote SPARQL endpoint URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, this description carries full responsibility for behavioral disclosure. It only says 'Push', implying a write operation, but provides no details on safety, authentication requirements, or whether data is replaced/merged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is concise but could be slightly more descriptive without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about consequences, error handling, and success criteria. It is incomplete for a meaningful tool interaction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (endpoint and graph) are described in the schema with 100% coverage. The description does not add additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Push' and specifies the resource: 'current ontology store to a remote SPARQL endpoint'. It clearly states the action and target, making the tool's purpose easy to grasp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks any guidance on when to use or avoid this tool. There is no mention of alternatives like onto_pull or conditions for using onto_push, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_queryC
Run a SPARQL query against the loaded ontology store
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SPARQL query string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose key behavioral traits such as whether the query is read-only, authentication requirements, performance implications, or error handling. With no annotations provided, the description should cover these aspects, but it only states the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that communicates the core purpose efficiently. It is front-loaded and contains no unnecessary words or details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is incomplete. It does not mention the format of the returned results, potential errors, or how to handle large query outputs. An AI agent would lack context on what to expect from the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema defines the 'query' parameter with a description ('SPARQL query string'), achieving 100% coverage. The description adds no additional information beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('run a SPARQL query') and the target ('against the loaded ontology store'). It is specific and distinct from siblings that perform other operations, though it does not explicitly differentiate from similar query tools like onto_search or onto_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or contexts where this tool is inappropriate. This leaves the agent without decision criteria for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_reasonA
Run inference over the loaded ontology. Profiles: 'rdfs' (subclass, domain/range), 'owl-rl' (+ transitive/symmetric/inverse, sameAs, equivalentClass), 'owl-rl-ext' (+ someValuesFrom, allValuesFrom, hasValue, intersectionOf, unionOf), 'owl-dl' (Full OWL2-DL SHOIQ tableaux: satisfiability, classification, qualified number restrictions with node merging, inverse/symmetric roles, functional properties, parallel agent-based classification, explanation traces, ABox reasoning). Materializes inferred triples.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | No | Reasoning profile: rdfs (default), owl-rl | |
| materialize | No | If true (default), add inferred triples to the store. If false, dry-run only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It describes that inferred triples are materialized by default and dry-run option, but does not detail performance implications or side effects like locking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and front-loaded with purpose, but slightly verbose in listing profiles; every sentence adds value, though could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the primary outcome (materialized triples). It covers profiles and dry-run, but could mention prerequisites like an already loaded ontology.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters (100% coverage), and description adds extra meaning by explaining the default for materialize and detailing the capabilities of each profile beyond the schema's minimal description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run inference over the loaded ontology' and enumerates specific reasoning profiles, distinguishing it from sibling tools like onto_query or onto_validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for each profile (rdfs, owl-rl, etc.) and the materialize option, but does not explicitly state when not to use this tool or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_rollbackB
Restore the ontology store to a previously saved version
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Version label to restore |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'Restore' implying a mutation, but it does not explain whether it overwrites current state, requires authorization, or is reversible. The description is too brief to provide adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it sacrifices important context. While it is front-loaded, it lacks depth needed for a mutation tool. It earns a 3 as it is not overly verbose but could be more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (restoring ontology store), the description is incomplete. It does not specify behavior like overwriting versus merging, success/failure conditions, or output. The single param 'label' is described in schema, but no return value or side effects are mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter ('label'). The description adds no additional meaning beyond the schema's existing description of 'Version label to restore', so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Restore' and the resource 'ontology store', and specifies it restores to a previously saved version. This distinguishes it from sibling tools like onto_save (save) and onto_version (view versions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., existing saved versions), the need for a lock, or situations where restoration may be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_saveC
Save the current ontology store to a file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Output file path | |
| format | No | Format: turtle, ntriples, rdfxml, nquads, trig |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only states 'save', but does not disclose whether the operation is destructive, if it overwrites existing files, or any side effects on the ontology store. Minimal behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. However, it could be expanded with more context while remaining concise. No structure issues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and the description is very minimal. It does not mention return values, error conditions, or if the file is created/overwritten. Given the lack of annotations, more detail is needed for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both parameters (format and path), so schema already provides meaning. The description adds 'current ontology store' context but no additional semantics beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it saves the current ontology store to a file, using specific verb and resource. However, it does not differentiate from sibling tools like onto_export or onto_convert, which might have similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like onto_load or onto_export. There is no mention of prerequisites, constraints, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_searchA
Semantic search over the loaded ontology using natural language. Returns the most similar classes by text meaning, structural position, or both. Requires onto_embed to have been run first.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Search mode: "text", "structure", or "product". Default: "product" | |
| alpha | No | Weight for text vs structure in product mode (0.0-1.0). Default: 0.5 | |
| query | Yes | Natural language query | |
| top_k | No | Number of results. Default: 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It discloses that it performs semantic search and returns similar classes, but does not explicitly state that it is read-only or clarify other behavioral traits like object modification or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with core purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description adequately covers tool behavior and return value ('most similar classes'), plus prerequisite. With no output schema, it provides sufficient context for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all 4 parameters. Description adds context about the embedding dependency but does not enhance parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'semantic search over the loaded ontology using natural language', specifying verb and resource. It distinguishes from sibling tools like onto_query and onto_reason by focusing on semantic similarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite 'Requires onto_embed to have been run first', providing clear usage context. However, it does not mention when not to use this tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_shaclA
Validate the loaded ontology data against SHACL shapes. Checks cardinality (minCount/maxCount), datatypes, and class constraints. Returns a conformance report with violations.
| Name | Required | Description | Default |
|---|---|---|---|
| inline | No | If true, treat shapes as inline Turtle content | |
| shapes | Yes | Path to SHACL shapes file OR inline SHACL Turtle content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It accurately discloses the validation behavior and return value (conformance report with violations). However, it does not explicitly state side effects (e.g., no data modification) or error conditions, but the read-only nature is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states purpose and scope, the second adds key details. No redundant or extraneous information. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's action, constraints checked, and return type. Since there is no output schema, mentioning the conformance report is helpful. It could mention error handling or required state (loaded ontology), but it is adequate for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; both parameters have descriptions that explain their role. The description adds general context but no additional meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Validate', the resource 'loaded ontology data against SHACL shapes', and specifies the constraints checked (cardinality, datatypes, class constraints). This provides a specific purpose that distinguishes it from generic validation tools like onto_validate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for SHACL-based validation by naming the constraint types, but it does not explicitly state when to use this tool instead of alternatives like onto_validate or onto_validate_clinical, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_similarityB
Compute embedding similarity between two IRIs — returns cosine similarity (text), Poincaré distance (structural), and product score.
| Name | Required | Description | Default |
|---|---|---|---|
| iri_a | Yes | First IRI | |
| iri_b | Yes | Second IRI |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of disclosure. It does not state whether the tool is read-only or has side effects. While it likely is a read-only computation, this is not explicitly communicated, leaving behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and return values. Every word earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description lists the three return scores, which is helpful. However, it does not explain what 'product score' means, nor does it mention prerequisites (e.g., that embeddings must exist). For a tool with no annotations and no output schema, the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters described as 'First IRI' and 'Second IRI'. The description adds no additional meaning beyond the schema, such as expected format, origin, or constraints. Baseline 3 applies as schema already does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes embedding similarity between two IRIs and specifies the return types (cosine similarity, Poincaré distance, product score). The verb 'compute' plus resource 'embedding similarity' is specific and distinguishes it from sibling tools like onto_align or onto_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives is provided. The description only states what it does, without mentioning prerequisites, when not to use it, or comparing to siblings like onto_align or onto_diff. This leaves the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_statsA
Get statistics about the loaded ontology (triple count, classes, properties, individuals)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as performance implications, side effects, or limitations. For a statistics tool, it should mention if computation is resource-intensive or if results are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loads the action and outcome. No extraneous words; each element is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple stateless retrieval with no parameters, the description is adequate. However, it does not specify the output format (e.g., JSON structure) or whether it reflects current state after recent changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, so schema coverage is 100%. The description adds value by enumerating the statistics returned (triple count, classes, etc.), which is not evident from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get statistics about the loaded ontology' and lists example metrics (triple count, classes, properties, individuals). This distinguishes it from sibling tools like onto_load or onto_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly defines when to use this tool (to obtain ontology overview). Although no explicit comparison to siblings, the zero-parameter simplicity and clear outcome make usage obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_statusA
Returns health status of the Open Ontologies server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it 'returns health status', implying a read-only operation, but does not disclose any additional behavioral traits such as response format or potential side effects. Adequate for a simple status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Efficient and front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is sufficient. Could optionally mention expected response format, but not essential for understanding the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so description adds no parameter details beyond schema. Baseline score of 4 is appropriate since there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Returns' and identifies resource 'health status of the Open Ontologies server'. Clearly distinguishes from sibling tools which focus on specific operations like align, convert, or import.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, but the purpose is self-evident as a health check with no parameters. Lacks mention of using it before other operations to confirm server status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_validateA
Validate RDF/OWL syntax. Accepts a file path or inline Turtle content.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Path to an RDF file OR inline Turtle content | |
| inline | No | If true, treat input as inline content rather than a file path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description covers input modes but omits side effects, auth needs, or return behavior. Validation is implied non-destructive but not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, 10 words, efficiently communicates purpose and input modes with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks return value specification (e.g., validation success/failure, error details). With no output schema, agents need to infer output meaning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no new meaning beyond what the schema already provides (input types).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Validate' and resource 'RDF/OWL syntax', distinguishing it from siblings like onto_lint, onto_shacl, and onto_dl_check which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when file path or inline Turtle content needs syntax validation, but does not explicitly exclude alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_validate_clinicalA
Validate all class labels in the loaded ontology against clinical crosswalk data. Shows which terms match known clinical codes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It states validation and matching display, but does not disclose whether the tool is read-only, what happens if the ontology is not loaded or crosswalk data is missing, or any side effects. The description is somewhat transparent but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. Every word adds value, clearly stating the action and outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters, the description covers the core purpose and result. However, it lacks context on prerequisites (e.g., loaded ontology and crosswalk data) and output format. Complete enough for basic use but could be more thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema coverage is trivially 100%. The description adds no parameter information, but none is needed. Per guidelines, baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Validate all class labels... against clinical crosswalk data') and the specific resource ('loaded ontology'). It also indicates what the output shows ('which terms match known clinical codes'), distinguishing it from sibling tools like onto_validate which does general validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (clinical crosswalk validation) but provides no explicit guidance on when to use this tool versus alternatives like onto_validate or onto_crosswalk. No prerequisites, exclusions, or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onto_versionB
Save a named snapshot of the current ontology store
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Version label (e.g. "v1.0", "draft-2026-03-09") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as whether existing labels are overwritten, whether the operation is reversible, or what the return value is. The agent gains minimal insight into side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter structure and lack of output schema or annotations, the description is adequate but not thorough. It does not mention the return value, potential conflicts with existing labels, or how the snapshot relates to other tools like onto_save.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter's intent is clear from the schema. The tool description adds no extra semantics beyond the schema; it only repeats the notion of a named snapshot.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves a named snapshot of the current ontology store, indicating a specific action and resource. However, it does not differentiate from sibling tools like onto_save or onto_rollback, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as onto_save, onto_load, or onto_rollback. The description lacks usage context or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
42 tool updates
v1.0.0- First observed
onto_align - First observed
onto_align_feedback - First observed
onto_apply - First observed
onto_clear - First observed
onto_convert - First observed
onto_crosswalk - First observed
onto_diff - First observed
onto_dl_check - First observed
onto_dl_explain - First observed
onto_drift - First observed
onto_embed - First observed
onto_enforce - First observed
onto_enforce_feedback - First observed
onto_enrich - First observed
onto_extend - First observed
onto_history - First observed
onto_import - First observed
onto_import_schema - First observed
onto_ingest - First observed
onto_lineage - First observed
onto_lint - First observed
onto_lint_feedback - First observed
onto_load - First observed
onto_lock - First observed
onto_map - First observed
onto_monitor - First observed
onto_monitor_clear - First observed
onto_plan - First observed
onto_pull - First observed
onto_push - First observed
onto_query - First observed
onto_reason - First observed
onto_rollback - First observed
onto_save - First observed
onto_search - First observed
onto_shacl - First observed
onto_similarity - First observed
onto_stats - First observed
onto_status - First observed
onto_validate - First observed
onto_validate_clinical - First observed
onto_version
TDQS
Scored across 42 tools
All tools have clearly distinct purposes with detailed descriptions. The variety of operations (loading, reasoning, alignment, validation, feedback) are well-separated, and even similar-sounding tools like onto_validate, onto_shacl, and onto_validate_clinical are differentiated by their specific functions.
All tools follow a consistent 'onto_' prefix with snake_case naming. Verbs are clear and descriptive (e.g., onto_load, onto_reason, onto_align_feedback). There is no mixing of conventions, making the toolset predictable and easy to navigate.
42 tools is on the high side but justified by the comprehensive scope of ontology management (loading, reasoning, alignment, validation, versioning, monitoring). Some tools could be merged (e.g., feedback variants), but overall the count reflects the server's ambitious feature set.
The toolset covers many core ontology operations (load, reason, validate, align, version) but lacks fine-grained editing capabilities such as adding/removing individual triples or listing entities directly. The presence of feedback and monitoring tools suggests a mature system, yet basic CRUD operations are missing.
Maintenance
Related MCP Connectors
Repository knowledge graph MCP server for codebase understanding and debugging.
MCP server for The Chancery Lane Project's climate-aligned contract clause knowledge graph.
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Related MCP Servers
- AlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server that connects GraphDB's SPARQL endpoints and Ollama models to Claude, enabling Claude to query and manipulate ontology data while leveraging various AI models.283MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to navigate and populate complex ontologies by transforming unstructured data into structured, SHACL-validated knowledge graphs. It features semantic hybrid search and proactive schema guidance to help users build deeply linked, reasoning-ready data.-
- FlicenseNot gradedqualityNot gradedmaintenanceA Knowledge Graph MCP server optimized for LLM context efficiency through compact JSON and SQLite persistence. It enables full graph management including node/edge CRUD operations, full-text search, and subgraph traversal.-
- AlicenseAqualityDmaintenanceAn MCP server that enables AI-powered exploration of RDF data and SPARQL querying via RDF4J. It provides tools for executing queries, searching knowledge graph resources, and retrieving schema summaries.131MIT