Skip to main content
Glama

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-ontologies

Docker:

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

From source (Rust 1.85+):

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

Connect to your MCP client

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_validateonto_loadonto_statsonto_reasononto_statsonto_lintonto_enforceonto_queryonto_saveonto_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:

  1. Tauri 2 shell — native window (macOS/Linux/Windows) with a WebKit webview

  2. Engine sidecar — the same Rust binary, running as an HTTP MCP server on localhost:8080

  3. Agent 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 dev

The 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: /build runs a 13-step pipeline producing IES-level ontologies (500-1,500+ classes, 100-200+ properties), /sketch runs 3 steps for quick prototyping (~80 classes). Each tool call is shown in real time.

Property Inspector

Protege-style inline triple editor. Click any node to see its rdfs:subClassOf, rdfs:label, rdfs:domain, rdfs:range and all other triples. Edit in place, hover to delete, + Add for new triples. Changes are immediately reflected in the graph.

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

⌘S to save as ~/.open-ontologies/<name>.ttl. Auto-saves to studio-live.ttl after every mutation so you never lose work.

Keyboard shortcuts

Shortcut

Action

⌘J

Toggle AI chat panel

⌘I

Toggle property inspector

⌘S

Save ontology

F

Fit graph to viewport (tree view)

R

Reset zoom (tree view)

Esc

Deselect node

Shift+click

Collapse/expand branch (tree view)

Scroll

Zoom in/out

Click + drag

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

/sketch (3 steps, ~2 min)

/build (13 steps, ~15 min)

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.ttl

SHACL Validation

onto_pull https://raw.githubusercontent.com/IES-Org/ont-ies/main/docs/specification/ies-common.shacl
onto_shacl

Data 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 rdfs

This 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:#fff

The 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:#fff

Each 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 density

Tested 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:#fff

Metric

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

docs/ies-ecosystem.md

SPARQL Examples

docs/ies-examples.md

Building Alignment

docs/ies-alignment.md


Tools

43 tools organized by function — available as MCP tools (prefixed onto_) and CLI subcommands:

Category

Tools

Purpose

Core

validate load save clear stats query diff lint convert status

RDF/OWL validation, querying, and management

Repository

repo_list repo_load

Browse and load ontologies from configured [general] ontology_dirs directories

Cache

cache_status cache_list cache_remove unload recompile

On-disk N-Triples compile cache, idle-TTL eviction, per-name management (details)

Marketplace

marketplace

Browse and install 32 standard W3C/ISO/industry ontologies

Remote

pull push import

Fetch/push ontologies, resolve owl:imports

Schema

import-schema

PostgreSQL → OWL conversion

Data

map ingest shacl reason extend

Structured data → RDF pipeline

Versioning

version history rollback

Named snapshots and rollback

Lifecycle

plan apply lock drift enforce monitor monitor-clear lineage

Terraform-style change management with webhook alerts and OpenCheir governance integration

Alignment

align align-feedback

Cross-ontology class matching with self-calibrating confidence

Clinical

crosswalk enrich validate-clinical

ICD-10 / SNOMED / MeSH crosswalks (93-row sample ships in data/crosswalks.parquet; run python scripts/build_crosswalks.py to rebuild or extend)

Feedback

lint-feedback enforce-feedback

Self-calibrating suppression

Embeddings

embed search similarity

Dual-space semantic search (text + Poincaré structural)

Reasoning

reason dl_explain dl_check

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 --> PG

Studio

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&lt;GraphStore&gt;\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 --> DB

Design decisions

Decision

Reason

UI reads use sessionless REST

No MCP session management needed for SPARQL queries or stats

UI writes use REST /api/update + /api/save

Avoids session lifecycle issues in the Tauri WebKit webview

Agent writes go through MCP tools/call

The Agent SDK manages its own MCP session; Claude needs the full tool set

Shared Arc<GraphStore>

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

docs/quickstart.md

Data Pipeline

docs/data-pipeline.md

Ontology Lifecycle

docs/lifecycle.md

Schema Alignment

docs/alignment.md

OWL2-DL Reasoning

docs/reasoning.md

Semantic Embeddings

docs/embeddings.md

Clinical Crosswalks

docs/clinical.md

IES Ecosystem

docs/ies-ecosystem.md

IES SPARQL Examples

docs/ies-examples.md

IES:Building Alignment

docs/ies-alignment.md

Benchmarks

docs/benchmarks.md

Contributing

CONTRIBUTING.md

Changelog

CHANGELOG.md


License

MIT

Available Tools

42 tools
onto_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesSource ontology: inline Turtle content or file path
targetNoTarget ontology: inline Turtle content or file path. If omitted, aligns against loaded store
dry_runNoIf true, return candidates only without inserting triples (default false)
min_confidenceNoMinimum confidence threshold for auto-apply (default 0.85)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
acceptedYesWhether the alignment candidate was correct
source_iriYesSource class IRI from the alignment candidate
target_iriYesTarget class IRI from the alignment candidate

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoApply mode: "safe" (default), "force" (ignores monitor), "migrate" (adds bridges)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format: turtle, ntriples, rdfxml, nquads, trig
pathYesPath to source RDF file
outputNoOptional output file path (if omitted, returns content)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesClinical code to look up (e.g. "I10")
source_systemYesSource system (e.g. "ICD10", "SNOMED", "MeSH")

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
new_pathYesPath to the new/modified ontology file
old_pathYesPath to the old/original ontology file

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sub_classYesIRI of the sub-class (the more specific class)
super_classYesIRI of the super-class (the more general class)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_iriYesIRI of the class to explain unsatisfiability for

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
version_aYesFirst version as inline Turtle
version_bYesSecond version as inline Turtle

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
struct_dimNoStructural embedding dimension. Default: 32
struct_epochsNoStructural training epochs. Default: 100

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_packYesRule pack to enforce: "generic", "boro", "value_partition", or custom pack name

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesThe entity IRI that triggered the violation
rule_idYesThe enforce rule ID (e.g. "orphan_class", "missing_domain", "missing_range", "missing_label", or custom rule ID)
acceptedYestrue = this is a real violation, false = dismiss/override

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesClinical code to map to
systemYesCode system (e.g. "ICD10")
class_iriYesIRI of the ontology class to enrich

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoData format (auto-detected if omitted)
shapesNoPath to SHACL shapes file or inline Turtle
mappingNoMapping config (inline JSON or file path)
base_iriNoBase IRI for generated instances
data_pathYesPath to the data file
inline_shapesNoIf true, treat shapes as inline Turtle
inline_mappingNoIf true, treat mapping as inline JSON
reason_profileNoReasoning profile (rdfs, owl-rl). Omit to skip reasoning.
stop_on_violationsNoIf true (default), stop pipeline on SHACL violations

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
max_depthNoResolve and load all owl:imports from the currently loaded ontology

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_iriNoBase IRI for generated classes (default: http://example.org/db/)
connectionYesDatabase connection string (e.g. postgres://user:pass@host/db)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the data file (CSV, JSON, NDJSON, XML, YAML, XLSX, Parquet)
formatNoData format (auto-detected from extension if omitted): csv, json, ndjson, xml, yaml, xlsx, parquet
mappingNoMapping config as JSON string or path to mapping JSON file
base_iriNoBase IRI for generated instances (default: http://example.org/data/)
inline_mappingNoIf true, treat mapping as inline JSON (default: false = file path)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoSession ID to query (omit for current session)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesPath to RDF file to lint, OR inline Turtle content
inlineNoIf true, treat input as inline content

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesThe entity IRI that triggered the lint issue
rule_idYesThe lint rule ID (e.g. "missing_label", "missing_comment", "missing_domain", "missing_range")
acceptedYestrue = this is a real issue, false = dismiss/ignore

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to RDF file to load into the in-memory store

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
irisYesIRIs to lock (prevent removal)
reasonNoReason for locking

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoData format (auto-detected if omitted)
data_pathYesPath to sample data file to generate mapping for
save_pathNoOptional path to save the generated mapping config

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
watchersNoInline JSON array of watchers to add, or omit to just run existing watchers

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_turtleYesNew ontology as inline Turtle content

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesRemote URL or SPARQL endpoint to fetch ontology from
queryNoOptional SPARQL CONSTRUCT query (required if sparql=true)
sparqlNoIf true, treat url as a SPARQL endpoint and run a CONSTRUCT query

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
graphNoOptional named graph IRI
endpointYesRemote SPARQL endpoint URL

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSPARQL query string

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNoReasoning profile: rdfs (default), owl-rl
materializeNoIf true (default), add inferred triples to the store. If false, dry-run only.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYesVersion label to restore

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesOutput file path
formatNoFormat: turtle, ntriples, rdfxml, nquads, trig

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_shaclA

Validate the loaded ontology data against SHACL shapes. Checks cardinality (minCount/maxCount), datatypes, and class constraints. Returns a conformance report with violations.

ParametersJSON Schema
NameRequiredDescriptionDefault
inlineNoIf true, treat shapes as inline Turtle content
shapesYesPath to SHACL shapes file OR inline SHACL Turtle content

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
iri_aYesFirst IRI
iri_bYesSecond IRI

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesPath to an RDF file OR inline Turtle content
inlineNoIf true, treat input as inline content rather than a file path

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYesVersion label (e.g. "v1.0", "draft-2026-03-09")

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 42 tool updatesv1.0.0
    • First observedonto_align
    • First observedonto_align_feedback
    • First observedonto_apply
    • First observedonto_clear
    • First observedonto_convert
    • First observedonto_crosswalk
    • First observedonto_diff
    • First observedonto_dl_check
    • First observedonto_dl_explain
    • First observedonto_drift
    • First observedonto_embed
    • First observedonto_enforce
    • First observedonto_enforce_feedback
    • First observedonto_enrich
    • First observedonto_extend
    • First observedonto_history
    • First observedonto_import
    • First observedonto_import_schema
    • First observedonto_ingest
    • First observedonto_lineage
    • First observedonto_lint
    • First observedonto_lint_feedback
    • First observedonto_load
    • First observedonto_lock
    • First observedonto_map
    • First observedonto_monitor
    • First observedonto_monitor_clear
    • First observedonto_plan
    • First observedonto_pull
    • First observedonto_push
    • First observedonto_query
    • First observedonto_reason
    • First observedonto_rollback
    • First observedonto_save
    • First observedonto_search
    • First observedonto_shacl
    • First observedonto_similarity
    • First observedonto_stats
    • First observedonto_status
    • First observedonto_validate
    • First observedonto_validate_clinical
    • First observedonto_version

TDQS

A3.6/5.0

Scored across 42 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness3/5

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

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    A 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.
    28
    3
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables 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.
    -
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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.
    -
  • A
    license
    A
    quality
    D
    maintenance
    An 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.
    13
    1
    MIT