OBO & ROBOT Interop Specification (v1.0)¶
Status: Target design for remaining interop. Do not implement from this page as product truth.
Shipped today: OBO index + write-back, ROBOT CLI wrappers, OBO workflows — see What ships today, OBO workflows, and ROBOT interop. Historical P0 framing: PROTEGE_PARITY.md.
Strixonomy does not reimplement ROBOT or ODK — it wraps the official ROBOT CLI today and integrates external workflow plugins (such as owlmake) for future Java-free pipelines.
1. Purpose¶
Enable biomedical ontology maintainers to use Strixonomy as a primary IDE alongside standard OBO/ROBOT/ODK release pipelines.
2. Strategy summary¶
| Layer | What it does | Status |
|---|---|---|
strixonomy-robot | Thin wrapper around the official ROBOT Java CLI | Shipped (v0.7) |
| Strixonomy diagnostics | Built-in lint and parse checks | Shipped |
| owlmake (external) | Rust-native portable ROBOT/ODK-style workflows | Reference plugin (v1.0 integration target) |
| Strixonomy core | Does not reimplement ROBOT merge/template/report or ODK Makefile logic | By design |
Strixonomy should integrate with the ontology toolchain, not absorb it. See PLUGIN_SPEC.md.
3. OBO format (P0)¶
Parser / writer¶
- Read and write OBO Format 1.4 (
.obo) viafastobo+fastobo-owl(DEPENDENCY_MATRIX.md) - Validate with
fastobo-validatorwhere applicable - Map OBO ids to IRIs in catalog (
obo_id,iri,namespace) - Support
synonymtypedef,property_value,xrefin catalog annotations table
UI¶
- Explorer shows OBO shorthand ids where applicable
- Manchester / completion resolves OBO ids in biomedical workspaces
- Syntax highlighting for
.obofiles in VS Code
Milestone¶
v0.7b — OBO format support before v1.0.
4. ROBOT interop (P0) — current path¶
Thin CLI wrappers in strixonomy-robot crate (strixonomy robot subcommand):
strixonomy robot validate ./ontology
strixonomy robot merge --inputs a.owl b.owl --output merged.owl
strixonomy robot report ./ontology --report report.tsv
Requirements¶
- Detect
robotonPATH; clear error if missing with install link - Pass through exit codes for CI
- Optional
strixonomy.robotPathsetting (workspace-trusted, likelspPath)
Documentation¶
- Side-by-side: Strixonomy diagnostics vs ROBOT
validate/report - When to use Strixonomy-only CI vs ROBOT-only vs both
5. owlmake — future external integration path¶
owlmake provides Rust-native, portable ROBOT/ODK-style workflow execution. It is a reference external workflow plugin, not a core Strixonomy crate.
Strixonomy IDE
│
▼
Strixonomy (index, diagnostics, LSP)
│
├── strixonomy-robot ──► ROBOT CLI (Java) ← shipped today
│
└── owlmake plugin ──► Rust-native workflows ← v1.0 integration target
Integration goals (v1.0)¶
| Goal | Description |
|---|---|
| Import existing ODK projects | Recognize src/ontology/, catalog files, import structure |
| Run project QC | Execute QC steps; surface results as Strixonomy diagnostics |
| Run release workflows | Trigger build/release pipelines from IDE or CLI |
| Inspect build outputs | Index and browse release artifacts in Strixonomy |
| Surface workflow errors | Map owlmake/ROBOT failures to Problems panel diagnostics |
Clarifications¶
strixonomy-robotwraps the current ROBOT CLI — this remains the supported path when Java +robotare available.- owlmake may provide future Java-free workflow execution for teams that want portable Rust tooling.
- Strixonomy must not reimplement all of ROBOT/ODK internally; plugins and CLI wrappers delegate to established semantics.
- Strixonomy surfaces workflow actions; Strixonomy hosts plugin APIs; owlmake implements workflow automation.
See PLUGIN_SPEC.md for WorkflowPlugin / BuildPlugin interfaces.
6. OBO/ODK project workflow goals (v1.0)¶
| Workflow | Strixonomy / Strixonomy role |
|---|---|
| Open ODK repo | Index standard layout; show imports and modules in explorer |
Edit source .ttl / .obo | Turtle and OBO write-back (v0.12); RDF/XML read-only in VS Code |
| Run QC | strixonomy validate + ROBOT report + owlmake QC plugin |
| Run release | owlmake or ROBOT via plugin/CLI; inspect outputs in workspace |
| CI gates | strixonomy validate, strixonomy classify, strixonomy robot validate |
7. Example workspace¶
examples/obo-workflow/ — minimal mixed OBO + OWL repo demonstrating:
- Edit in Strixonomy
strixonomy validate+strixonomy robot validatein CIstrixonomy robot mergefor release
8. Non-goals¶
- Reimplementing ROBOT merge/template/report logic inside Strixonomy
- Replacing ODK Makefile or owlmake with built-in Strixonomy code
- OBO Foundry automated compliance as a core feature (P1 validator plugin)
9. Parity tracking¶
See PROTEGE_PARITY.md — OBO & biomedical section.