Skip to content

OntoCore architecture

Which architecture doc?

Read this When
Platform architecture Canonical ecosystem overview for evaluators
Implementation architecture Crate layout and internal modules for contributors
This page Short OntoCore stack summary only

Status: OntoCore is the platform identity for the Rust engine shipped since v0.2. See ADR-0018.

High-level diagram

+---------------------------+
|        OntoCode UI        |
| VS Code trees + commands  |
| React webviews            |
+-------------+-------------+
              |
              v
+---------------------------+
|   OntoCore LSP            |
|   (ontocore-lsp)         |
+-------------+-------------+
              |
              v
+---------------------------+
|       OntoCore            |
| ontocore façade + crates  |
| catalog/query/diagnostics |
| refactor/reasoner/robot   |
+-------------+-------------+
              |
      +-------+-------+-------+
      v       v               v
+-----------+ +-----------+ +------------------+
| Oxigraph  | | HornedOWL | | OntoLogos        |
| RDF/SPARQL| | OWL axioms| | reasoners        |
+-----+-----+ +-----+-----+ +--------+---------+
      |               |              |
      +───────┬───────┘              |
              v                      |
+---------------------------+        |
|     Workspace Files       |◄───────┘
| owl/rdf/ttl/jsonld/obo    |
+---------------------------+

Responsibility split

Owner Responsibilities
OntoCore Workspace discovery, indexing, RDF/OWL/OBO parsing, entity catalog, symbol graph, import graph, SQL/SPARQL, diagnostics, refactoring, reasoning integration, patch write-back, CLI, LSP, plugin hosting (build/validation/doc/workflow plugins), future Python/TypeScript bindings, future MCP server
OntoCode VS Code activity bar, explorer UI, React webviews, inspector, Query Workbench UI, Manchester editor UI, graph panels, extension commands, marketplace packaging, user onboarding, toolchain workflow UI (owlmake and plugin actions)
OntoLogos OWL reasoning, classification, consistency, explanations, inference profiles
External plugins (e.g. owlmake) ROBOT/ODK-style build, validation, release, and documentation workflows — integrate via OntoCore plugin APIs; not core dependencies

Façade and implementation

Layer Crates
Public façade ontocore — re-exports and Workspace API
Core types ontocore-core
Parsing ontocore-parser, ontocore-owl
Catalog ontocore-catalog
Query ontocore-query
Diagnostics ontocore-diagnostics
Reasoning ontocore-reasoner → OntoLogos
Refactoring ontocore-refactor
ROBOT ontocore-robot (external Java CLI)
CLI ontocore-cli
LSP ontocore-lsp

See crate map for details.

Key design rules

  • Dual stack (ADR-0013): Catalog entities/axioms from Horned-OWL; triple counts and SPARQL from Oxigraph.
  • Reasoner adapters (ADR-0008, ADR-0015): OntoCore delegates reasoning to OntoLogos; no JVM reasoners.
  • Local-first (ADR-0005): Indexing and queries run on the user's machine by default.
  • LSP boundary (ADR-0007): OntoCode extension talks to OntoCore only via LSP — no Rust logic in TypeScript.

Implementation architecture (crate tables, dependency rules): design/ARCHITECTURE.md.