Documentation
Learn how to use OntoKit to create, edit, and collaborate on OWL ontologies.
Getting Started
OntoKit is a modern, collaborative OWL ontology curation platform designed as a replacement for Stanford WebProtege. It provides a streamlined workflow for creating, editing, and managing semantic web ontologies.
Quick Start
- Browse public projects without signing in, or sign in to create and contribute
- Create a new project or join an existing one
- Upload an ontology file (Turtle, RDF/XML, OWL/XML) or start from scratch
- Use the form-based editor to browse and modify classes, properties, and individuals
- Changes are auto-saved as drafts; navigate away to commit them to git
- Create branches and pull requests, or submit suggestions for review
Core Concepts
Projects
Projects are containers for your ontologies. Each project has its own Git repository for version control, team members, and access settings.
Branches
Work on changes in isolated branches without affecting the main ontology. Merge changes through pull requests when ready.
Pull Requests
Propose changes to the ontology through pull requests. Review semantic diffs, discuss changes, and merge when approved.
Suggestions
Suggesters can propose changes without direct edit access. Suggestions are auto-saved as you work and submitted for editor review with approve, reject, or request-changes outcomes.
Linting
Automatic validation checks your ontology for common issues, missing labels, and best practice violations.
Auto-Save
A two-tier auto-save system protects your work: edits are cached locally on blur, and committed to git when you navigate away. Draft indicators show unsaved changes on tree nodes.
Team Roles & Permissions
Each project member is assigned a role that determines what they can do. Roles are project-scoped — a user can have different roles in different projects.
| Role | Capabilities |
|---|---|
| Owner | Full control over the project. Can delete the project, transfer ownership, manage members and settings, create branches, edit the ontology, and run the health check. |
| Admin | Manage members and project settings, create branches, edit the ontology, and run the health check. Cannot delete the project. |
| Editor | Create branches, edit ontology source, and create pull requests. Review and approve/reject suggestions from suggesters. Cannot manage members, change settings, or run the health check. |
| Suggester | Propose changes via suggestion sessions that are reviewed by editors. Can browse the ontology, create and submit suggestions, and view their own suggestion history. Cannot directly edit the ontology or create branches. This is the default role for new project members. |
| Viewer | Browse the class tree, view the source in read-only mode, and view health check results. Cannot make any changes. |
Good to know
- The person who creates a project automatically becomes its Owner
- New project members are assigned the Suggester role by default
- Public projects can be viewed by anyone, but only members can edit
- Private projects are only visible to their members
Editor Modes
OntoKit offers two editing modes to suit different workflows. Your preference is saved and persists across sessions.
Standard Mode
A form-based editing experience for classes, properties, and individuals. Edit labels, comments, annotations, and relationships through structured fields. Entities are read-only by default — click "Edit Item" to start editing, with changes auto-saved as you work.
Developer Mode
Direct access to the Turtle source with full syntax highlighting, auto-completion, and inline validation in a Monaco-based editor. Ideal for power users who prefer working with raw RDF/OWL syntax.
Editor Features
Entity Tree
Navigate your ontology using hierarchical trees for classes, properties, and individuals. Entities are organized by their subclass/subproperty relationships, with lazy loading for large ontologies.
- Expand/collapse hierarchies with multi-level controls (one level, all, or none)
- View subclass counts at each level
- Search for entities by name or IRI
- Drag-and-drop reparenting with cycle detection and undo
- Right-click context menus for Add Subclass, Copy IRI, View in Source, and Delete
- Draft indicators on nodes with unsaved changes
- Language tags displayed as country flag emojis
- Keyboard navigation with arrow keys and aria-activedescendant
Detail Panel
View and edit entity metadata through structured forms. Separate panels are provided for classes, properties, and individuals, each tailored to their specific OWL constructs.
- Multi-language label and comment editing with inline annotation adder
- Superclass/subclass and equivalent/disjoint relationships
- Annotation properties with IRI-valued relationship editing
- Property assertions for individuals
- Entity history tab with revision tracking
- Similar concepts panel for discovering related entities
- Cross-references panel showing where an entity is used
- Delete impact analysis before entity removal
- Resizable panel dividers for customizing the layout
Graph Visualization
Explore ontology relationships visually with an interactive graph view powered by React Flow and ELK layout.
- Depth-2 neighbor fetching with expandable nodes
- Custom node styling for focus, parent, child, equivalent, and disjoint classes
- Color-coded edges for different relationship types with hover labels
- Root nodes highlighted with distinct amber/gold styling
Source Editor
Edit your ontology directly in Turtle syntax with full syntax highlighting, auto-completion, and inline validation. Available in Developer mode or via the Source tab.
- Turtle syntax highlighting
- Hover over IRIs to see full definitions
- Ctrl+Click to navigate to class definitions or open external IRIs in a new tab
- Real-time linting with inline error markers
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+S / Cmd+S | Save current drafts |
| Ctrl+N / Cmd+N | Create a new entity |
| ? | Show keyboard shortcuts help |
| Escape | Close overlays and dialogs |
Supported Formats
| Format | Extension | MIME Type |
|---|---|---|
| Turtle | .ttl | text/turtle |
| RDF/XML | .rdf, .xml | application/rdf+xml |
| OWL/XML | .owl | application/owl+xml |
| N-Triples | .nt | application/n-triples |
| JSON-LD | .jsonld | application/ld+json |
Import & Normalization
Canonical Turtle Format
When you import an ontology file, OntoKit normalizes it to a canonical Turtle format. This ensures consistent formatting across all edits and produces minimal, meaningful diffs in version history. The normalization happens once at import time.
What changes during normalization:
- All formats (RDF/XML, OWL/XML, N3, JSON-LD) are converted to Turtle (.ttl)
- Triples are reordered into a consistent, deterministic sequence
- Unused namespace prefixes may be removed (e.g.,
rdf:,xml:,xsd:if not explicitly used) - Whitespace and formatting are standardized
- The shorthand
ais used forrdf:type
Metadata Synchronization
When you update a project's name or description in Project Settings, OntoKit automatically syncs these changes to the ontology's RDF metadata properties.
How metadata sync works:
- Title: Updates
dc:title,dcterms:title, orrdfs:label(whichever exists) - Description: Updates
dc:description,dcterms:description, orrdfs:comment - If no metadata property exists,
dc:title/dc:descriptionis added - Changes are committed to git with a descriptive message
API Reference
OntoKit provides a comprehensive REST API for programmatic access to all platform features. Use the API to integrate OntoKit with your existing tools and workflows.
View API Documentation