Skip to content

PLAN.md — OntoIndex and OntoCode

1. Executive Summary

OntoIndex and OntoCode form a two-layer product strategy for modern ontology engineering.

OntoIndex is the Rust backend: a local-first embedded ontology engine that scans a directory of OWL/RDF/Turtle/JSON-LD/OBO files, builds a semantic index, exposes ontology concepts as queryable tables, validates ontology repositories, performs semantic diffs, and powers editor integrations.

OntoCode is the VS Code extension: a full ontology engineering workbench built on top of OntoIndex. Its long-term goal is to replace Protégé for developers, data engineers, knowledge graph engineers, semantic modelers, and organizations that prefer Git-native ontology-as-code workflows.

2. Product Thesis

Protégé is excellent for traditional ontology editing, but it is not designed around the way modern software teams work:

  • Git repositories
  • pull requests
  • CI validation
  • semantic diffs
  • code review
  • local development
  • editor-native workflows
  • AI-assisted engineering
  • documentation pipelines
  • automated quality checks

OntoCode should eventually provide the authoring depth of Protégé while adding the workflow strengths of VS Code.

3. Products

3.1 OntoIndex

OntoIndex is a Rust library and CLI.

Primary capabilities:

  • Recursively scan ontology repositories
  • Parse .owl, .rdf, .ttl, .jsonld, .obo, .nt, .nq, .trig
  • Build incremental ontology catalog
  • Expose virtual tables for ontology entities
  • Run SQL-like queries over ontology structures
  • Run SPARQL over RDF triples
  • Detect errors, warnings, and quality issues
  • Generate semantic diffs
  • Generate documentation
  • Provide services for a language server

3.2 OntoCode

OntoCode is a VS Code extension.

Primary capabilities:

  • Ontology Explorer sidebar
  • Class hierarchy editor
  • Object/data/annotation property editor
  • Individual editor
  • Axiom editor
  • Imports manager
  • Query workbench
  • Reasoner integration
  • Graph visualization
  • Semantic Git diff viewer
  • Documentation generator
  • AI-assisted ontology review

4. v1.0.0 Bar

v1.0.0 should be positioned as:

A Protégé-competitive ontology workbench for OWL 2 DL and OBO maintenance inside VS Code.

Canonical checklist: PROTEGE_PARITY.md — all P0 items must be green before release.

Exit criterion:

Daily ontology engineering (OWL 2 DL + OBO maintenance) is completable in VS Code. Protégé is required only for P2 features in PROTEGE_PARITY.md.

P0 highlights (see parity matrix for full list):

5. Target Users

5.1 Primary Users

  • Ontology engineers
  • Knowledge graph engineers
  • Semantic web developers
  • Data governance engineers
  • Biomedical ontology maintainers — OBO + ROBOT pipelines (OBO_ROBOT_SPEC.md)
  • Enterprise taxonomy/modeling teams
  • Standards authors
  • AI/LLM knowledge modeling teams

5.2 Secondary Users

  • Data engineers
  • Software engineers working with RDF/OWL assets
  • Technical writers documenting domain models
  • QA teams validating semantic repositories
  • Researchers maintaining ontology datasets

6. Core Differentiators

OntoCode should not merely copy Protégé. It should beat Protégé in developer workflows.

Key differentiators:

  • Git-native semantic diffs
  • CI-friendly validation
  • VS Code-native editing
  • Hybrid authoring without leaving VS Code (forms + Manchester)
  • Queryable ontology repository model
  • Repo-wide refactoring
  • AI-friendly schema and docs generation
  • Local-first indexing
  • Workspace-aware imports
  • File-aware diagnostics
  • Documentation generation
  • Extension/plugin architecture
  • ROBOT interop for biomedical release pipelines (not reimplementation)

7. Positioning

Possible tagline:

Build, query, validate, refactor, reason over, and document OWL/RDF ontologies directly in VS Code.

Short positioning:

OntoCode is a VS Code-native ontology workbench powered by OntoIndex, a Rust ontology index and query engine.

8. Roadmap Summary

  • v0.1: OntoIndex scanner, parser, catalog, CLI
  • v0.2: OntoCode explorer and entity inspector
  • v0.3: diagnostics and validation
  • v0.4a–b: simple write-back + Horned-OWL (ontoindex-owl)
  • v0.5: query workbench + Manchester MVP
  • v0.6: reasoners + real explanations
  • v0.7a: React webview foundation (ADR-0017, OntoCode_React_UI_Integration_Plan.md)
  • v0.7: graph visualization (React panels)
  • v0.7b: OBO + ROBOT interop
  • v0.8: refactoring + full Manchester (React query/Manchester panels)
  • v0.9: semantic diff, incremental index, docs (React reasoner/diff panels)
  • v1.0: PROTEGE_PARITY.md P0 green + Marketplace + React UI hardening

9. Non-Goals for Early Releases

  • Hosted collaborative editing
  • Multi-user permissions
  • Full WebProtégé replacement
  • Cloud ontology repository hosting
  • Enterprise identity management
  • Custom visual graph database hosting
  • Reimplementing a triplestore from scratch
  • Reimplementing ROBOT (interop only — OBO_ROBOT_SPEC.md)
  • JVM reasoners (ELK, HermiT, Pellet — ADR-0014)

10. Strategic Implementation Guidance

Policy: ADR-0016 — delegate to mature crates; ontoindex-* crates are thin facades. Full inventory: DEPENDENCY_MATRIX.md.

Layer Dependency OntoIndex facade Phase
RDF / SPARQL oxigraph ontoindex-parser, ontoindex-query v0.2
SQL parse sqlparser ontoindex-query v0.2
Workspace scan ignore ontoindex-core v0.2
LSP wire lsp-server, lsp-types ontoindex-lsp v0.2
Diagnostics oxigraph + catalog rules ontoindex-diagnostics v0.3
OWL axioms / Manchester horned-owl, horned-functional ontoindex-owl v0.4b+
Reasoning OntoLogos 0.91.0 ontoindex-reasoner v0.6 / v1.0
Graph structure petgraph LSP graph export v0.7
Webview UI react, vite extension/webview-ui v0.7a+ (ADR-0017)
OBO fastobo, fastobo-owl ontoindex-parser / ontoindex-owl v0.7b
ROBOT CI ROBOT CLI ontoindex-robot v0.7b
File watch notify / ontologos-watch ontoindex-lsp v0.9
Git diff inputs git2 ontoindex-diff v0.9
Docs export pulldown-cmark, minijinja ontoindex-docs v0.9
SHACL (P1) rudof plugin / diagnostics v1.0 P1

Build on existing mature components — do not reimplement parsers, reasoners, triple stores, OBO parsers, or SHACL engines when a maintained Rust crate covers the profile.

  • Use Horned-OWL (+ horned-functional) for OWL 2 axiom modeling and write-back (ADR-0013).
  • Use Oxigraph for RDF/SPARQL (ADR-0003).
  • Use sqlparser virtual tables for SQL; extend for v1.0 joins before considering DataFusion (ADR-0011).
  • Use OntoLogos for all reasoning (ADR-0015).
  • Use React + Vite for VS Code webview panels (ADR-0017); TypeScript extension host for orchestration only.
  • Keep OntoIndex useful as a standalone CLI even without OntoCode.