Workflows
Ontology Authoring and OWL Round-Trip
Goal: Import a Protégé-generated OWL ontology into OWB, edit and extend it, then export back to OWL/XML and verify round-trip fidelity.
Prerequisites
- An OWL/XML file exported from Protégé (or any OWL-compatible tool)
- An OWB account and workspace
Steps
1. Create a new model and import the OWL file
From the dashboard, click New model and choose Import from file.
Select OWL/XML as the format. Click Choose file and select your .owl or .xml file.
The importer previews what will be created:
- Entity types from
owl:Classdeclarations - Relationships from
owl:ObjectPropertyassertions - Data properties from
owl:DatatypePropertyannotations
Review any warnings — common ones include:
| Warning | Meaning |
|---|---|
| Unsupported construct | A complex OWL axiom (e.g. cardinality restrictions, property chains) that OWB simplifies |
| Blank node skipped | Anonymous class expressions are not imported |
| Equivalent class simplified | owl:equivalentClass with a complex expression is recorded as a semantic annotation only |
Click Import to proceed.
2. Review the import summary
After import, the sidebar lists every entity type created. The workbench shows the full class hierarchy.
Check the import results:
- Class count matches your Protégé class count (minus unsupported constructs)
- Subclass relationships appear as parent/child links in the entity type tree
- Object properties appear as relationships in the sidebar
If the count is lower than expected, an import warning explains which classes were skipped and why.
3. Navigate the entity type tree and verify structure
Click through the hierarchy in the sidebar. For each entity type, verify:
- Name — matches the
rdfs:labelfrom the source ontology (or the IRI local name if no label was set) - Description — populated from
rdfs:comment - isAbstract — set for classes that were declared abstract or that only appear as superclasses
- Semantic Annotations — open the Advanced section in the panel to see
disjointWith,equivalentTo, anddeprecatedvalues imported from the source
Object properties become relationships. Check that rdfs:domain and rdfs:range are correctly reflected as the relationship's source and target entity types.
4. Edit and extend the ontology
Make your changes in the workbench:
Add new classes: Click + Add entity type. Set a description, mark as abstract if appropriate, and set a parent if the new class is a subclass.
Add subclasses of existing classes: Add an entity type and set its Parent to an existing class. This emits rdfs:subClassOf in the OWL export.
Add object properties: Select the source entity type, go to Relationships, click + Add from [name], and set the target.
Add semantic annotations: Open the Advanced section of an entity type panel to set disjointWith (comma-separated class names), equivalentTo (a single class name or IRI), or mark the class as deprecated.
Add data properties: Select an entity type and use the Properties section to add fields. These export as owl:DatatypeProperty assertions.
5. Check for ontology-level issues
Click Validate in the toolbar. Beyond the standard checks, look for:
- Impossible inheritance — a class that inherits from two disjoint classes (OWB flags this as an error)
- Missing domain/range — a relationship with no source or target entity type
- Circular inheritance — detected and reported with the cycle path
Resolve all errors before exporting. Warnings (e.g. a relationship without cardinality) are acceptable for ontology work where cardinality is often expressed as OWL restrictions rather than a simple 1:N label.
6. Export to OWL/XML
Click Export in the toolbar and select OWL / RDF.
The output contains:
owl:Classdeclarations for all entity typesrdfs:subClassOfaxioms for the class hierarchyowl:ObjectPropertydeclarations withrdfs:domainandrdfs:rangeowl:DatatypePropertydeclarations for data propertiesowl:disjointWith,owl:equivalentClass, andowl:deprecatedfrom semantic annotations- Standard OWL header with
owl:Ontologydeclaration
Download the file. Open it in Protégé:
- In Protégé, go to File → Open and select the exported file
- Check the Classes tab — your class hierarchy should appear intact
- Check the Object properties tab — relationships should appear with domain and range
- Check the Data properties tab — scalar properties should appear
- Run the built-in reasoner (Reasoner → Start reasoner) to verify consistency
Any constructs OWB couldn't represent (e.g. property chains, qualified cardinality restrictions from the original file) will be absent — this is expected. The export faithfully represents what OWB models, not constructs it doesn't support.
7. Publish the model and share the read-only link
Click Publish in the toolbar. Click Share to generate a read-only link.
Send the link to domain experts or compliance reviewers. They can browse the full class hierarchy and property definitions without logging in or needing Protégé.
What happens next
- Automate OWL export via API — use
GET /api/v1/models/{modelId}/export/owlto pull the ontology programmatically for compliance pipelines. See the API Endpoints reference. - Track versions — click + New snapshot before each major edit session to maintain a history of ontology states.
- Cross-export for downstream use — from the same model, export to GraphQL SDL or HTML Docs to serve the ontology to teams that don't use OWL tooling. See the Multi-Stack Export workflow.
Related pages
- Exports — OWL/RDF output format details
- Entity Types — semantic annotations, abstract types, inheritance
- Import and Extend workflow — general import walkthrough for JSON Schema and OpenAPI
- Multi-Stack Export workflow — exporting to multiple targets simultaneously
- API Endpoints — programmatic export