Browser-based interactive RDF/ontology knowledge graph editor with OWL 2 DL reasoning, clustering, multi-algorithm layout, and MCP support. Runs entirely client-side with MCP tool integration for graph manipulation, reasoning, metadata generation, and provenance tracking.
Ontosphere provides 7 well-named RDF/ontology tools with clear verb-noun patterns (generateDatasetMetadata, setNamespace, listAgentEdits, etc.). All tools have descriptions (avg ~180 chars, within 10-1024 baseline). Input schemas are present with type definitions and required fields declared. However, output schemas are NOT documented, critical for LLM planning. Parameter descriptions are sparse (many lack detail on format/constraints). Error handling is minimal; no recovery guidance or actionable error messages visible. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles (WRITE, REVERSIBLE). Composition is sound, tools chain well (listAgentEdits → diffAgentEdits → revertAgentBatch). Security: no secrets in params, but no audit trail or permission gates visible.
Inspect the exact triples added and removed by a recorded agent edit batch. Pass the batchId from listAgentEdits. Returns {tool, agent, timestamp, reverted, added:[{s,p,o}], removed:[{s,p,o}]}.
Generate VoID + DCAT metadata describing the current dataset (triple/class/property counts, partitions, vocabularies used) for FAIR publishing.
List recorded agent edit batches (provenance of mutations) most-recent-first. Each mutating tool call (addNode/updateNode/removeNode/addTriple/removeLink/loadRdf) is recorded as a PROV-O Activity in the urn:vg:provenance sidecar graph. Returns [{batchId, tool, agent, timestamp, addedCount, removedCount, reverted}]. Use diffAgentEdits to inspect the exact triples and revertAgentBatch to undo a batch. NOTE: the journal is in-memory and volatile — it is cleared on page reload (the store itself is also volatile). NOTE: only the most recent few thousand batches are retained (MAX_BATCHES, default 5000); older batches are evicted and can no longer be listed or reverted.
Return all registered IRI prefixes and their namespace URIs.
Unregister an IRI prefix from the namespace registry.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., what does generateDatasetMetadata return? What fields does listAgentEdits return?). Baseline: 100% of A+ tools document return types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles. setNamespace/removeNamespace are WRITE; revertAgentBatch is REVERSIBLE. LLMs cannot infer safety/idempotency without explicit hints.
Parameter descriptions lack format/constraint details. 'prefix' in setNamespace says 'Prefix without colon (e.g. "myns")' but no length limits, character restrictions, or validation rules. 'namespace' says 'Full IRI namespace ending with # or /' but no regex or format spec. LLMs cannot validate inputs without explicit constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Undo a recorded agent edit batch: re-removes the triples it added and re-adds the triples it removed, in urn:vg:data. Idempotent — reverting an already-reverted batch is a safe no-op (reported via alreadyReverted). Because the graph may have changed since the edit, the revert is best-effort: returns {success, alreadyReverted?, reverted:{addedRemoved, removedRestored}, requested:{addedToRemove, removedToRestore}}. reverted.* are the ACTUAL store deltas (quads really removed/re-added); requested.* are the batch's recorded counts. When reverted < requested the revert was PARTIAL — a later edit had already removed some added triples or re-added some removed ones. The batch is then marked reverted (prov:wasInvalidatedBy + vg:reverted true) in urn:vg:provenance. Evicted batches (older than MAX_BATCHES) report success:false (unknown batchId).
Register or update an IRI prefix (upsert). Creates the prefix if new, replaces it if already registered.
No error handling guidance. revertAgentBatch can fail (evicted batches, partial reverts) but no recovery hints. 'success:false' tells LLM nothing, should say 'Batch evicted (older than MAX_BATCHES). Call listAgentEdits to find available batches.'
listAgentEdits accepts 'limit' param but no bounds documented. Unbounded integers let LLMs pass absurd values (limit=999999) that waste memory/tokens. Should specify min/max (e.g., 1 - 5000).