Workflows
Design Once, Export to Multiple Stacks
Goal: Use OWB as the single source of truth for a data model that needs to power multiple systems simultaneously — database, API layer, graph store, semantic tooling, and documentation.
Prerequisites
- A model that represents a reasonably complete domain (entity types with properties and cardinality-set relationships)
- The model should be in a state you're ready to export from (all validation issues resolved)
Steps
1. Open or create the source-of-truth model
Open the model you want to export from on the dashboard, or create a new one. This model is your single source of truth — all downstream formats are generated from it. Keep it complete and accurate before exporting.
2. Verify entity type properties are fully specified
Click through each entity type in the sidebar. For every property, confirm:
- Data type is set correctly (String, Integer, Float, Boolean, DateTime, Enum, etc.)
- Required flag is set where the field must always be present
- Enum values are defined for any
Enum-typed property - List item type is set for
List-typed properties
Incomplete properties produce warnings in exports (e.g. a property without a type may be emitted as String by default, which could be wrong for your target stack).
3. Verify relationships have cardinality set
Select each relationship in the sidebar. Every relationship should have a Cardinality value (1:1, 1:N, N:1, or N:M). Cardinality controls how ORM exports model foreign key constraints and how graph exports model edge multiplicity.
Relationships without cardinality are flagged by validation and will produce a comment in the exported output.
4. Run validation — fix all issues
Click Validate in the toolbar. The drawer lists every error, warning, and info notice across the model.
Fix all errors before exporting. Warnings are exported with inline comments (the output is still valid), but it's best practice to resolve them — they usually indicate missing information that will matter at runtime.
Once the drawer shows 0 issues, you're ready.
5. Export to Prisma
Click Export in the toolbar. Select Prisma Schema.
The output is a schema.prisma file with:
modelblocks for each non-abstract entity type@relationannotations derived from your relationships and cardinality- Prisma
enumblocks for Enum properties - Abstract entity types skipped with a comment (their fields are inherited by concrete subtypes)
Copy the output into your prisma/schema.prisma file and run prisma generate to validate it.
6. Export to GraphQL SDL
Back in the export drawer, select GraphQL SDL.
The output is a .graphql schema where:
- Abstract entity types become
interfacedefinitions - Concrete types that inherit from an abstract parent include
implements - Required properties are non-nullable (
!) - Relationships become typed fields pointing to the target entity type
Drop this file into your GraphQL server's schema directory.
7. Export to Neo4j Cypher
Select Neo4j / Cypher.
The output contains:
CREATE CONSTRAINTstatements for unique IDs on each node labelMERGEpatterns for creating nodes and edges- Edge property definitions for relationships that carry their own properties
Run the constraint statements against your Neo4j instance to initialize the schema.
8. Export to OWL/RDF
Select OWL / RDF.
The output is an OWL/XML document where:
- Entity types map to
owl:Class - Object properties (relationships) map to
owl:ObjectProperty - Data properties map to
owl:DatatypeProperty - Inheritance is expressed as
rdfs:subClassOf - Semantic annotations (disjointWith, equivalentTo, deprecated) are preserved
Open the file in Protégé or load it into Apache Jena for semantic reasoning.
9. Export to HTML Documentation
Select HTML Docs.
The output is a standalone HTML file with a complete reference for every entity type, its properties (with types and required flags), and its relationships. No external dependencies — share it directly with non-technical stakeholders, drop it in a wiki, or attach it to a ticket.
10. Take a snapshot labeled with the version
Click Version History (clock icon) and then + New snapshot. Label it something like v2.1 — exported 2025-01-15. Click Save.
This locks the exact model state that produced your exports. If a downstream system breaks after a schema change, you can return here and see precisely what the schema looked like at export time.
What happens next
- Publish and automate — publish the model so it's available via the REST API, then use the API export endpoint to pull schemas in CI without opening the workbench. See the API Endpoints reference.
- Share the documentation export — the HTML Docs file is a self-contained stakeholder artifact. Use the share link to give non-technical reviewers a live view of the published canvas.
- Track changes — subsequent edits create a new draft. Re-export after each publish to keep all target-format files in sync.
Related pages
- Exports — full list of formats and output details
- Snapshots — version history and restore points
- API Endpoints — programmatic export via REST
- Entity Types — inheritance and abstract types
- Relationships — cardinality reference