A Streamlit application for building, editing, and managing OWL ontologies
Project description
OrionBelt Ontology Builder
Build, edit, and manage OWL ontologies visually with a Streamlit web application
Try it now: orionbelt.streamlit.app
Features
Core Functionality
- Create & Edit Ontologies - Build ontologies from scratch or modify existing ones
- Import/Export - Support for Turtle (.ttl), RDF/XML (.owl), N-Triples (.nt), N3 (.n3), and JSON-LD formats
- Validation - Check for missing labels, domains, ranges, and other issues
- Reasoning - Apply RDFS and OWL-RL reasoning to infer new triples
- Undo/Redo - Full undo/redo history for all ontology modifications
- Global Search - Search across all ontology elements
- Graph Visualization - Interactive vis-network graph with class filtering and layout options
Ontology Elements
| Element | Operations |
|---|---|
| Classes | Create, edit, delete with hierarchy (subClassOf) |
| Object Properties | Domain/range, functional, transitive, symmetric, inverse |
| Data Properties | XSD datatypes (string, integer, date, boolean, etc.) |
| Individuals | Create instances, assign classes, property values |
| Restrictions | someValuesFrom, allValuesFrom, cardinality constraints |
| Annotations | RDFS labels/comments, SKOS, Dublin Core metadata |
| Relations | equivalentClass, disjointWith, sameAs, differentFrom |
Quick Start
Prerequisites
- Python 3.10+
Installation
git clone https://github.com/ralfbecher/orionbelt-ontology-builder.git
cd orionbelt-ontology-builder
pip install -r requirements.txt
Run the Application
streamlit run app.py
Open your browser at http://localhost:8501
Workflow
- Create New or Import - Start with a new ontology or import an existing .ttl file
- Define Classes - Create your class hierarchy
- Add Properties - Define object and data properties
- Create Individuals - Add instances of your classes
- Define Relations - Set up class/property/individual relationships
- Add Restrictions - Apply constraints to classes
- Validate - Check for issues using the validation button
- Export - Download your ontology as .ttl or other formats
Pages Overview
Dashboard
- Ontology metadata (title, description, version, creator)
- Base URI configuration
- Statistics overview
- Quick validation button
Classes
- View class hierarchy
- Add/edit/delete classes
- Set parent classes (subClassOf)
Properties
- Object Properties - Relations between individuals
- Characteristics: Functional, InverseFunctional, Transitive, Symmetric
- Domain and range (classes)
- Data Properties - Attributes with literal values
- XSD datatypes: string, integer, float, boolean, date, dateTime, etc.
Individuals
- Create named individuals
- Assign to classes
- Add property values (object or data)
Relations
- Class Relations: subClassOf, equivalentClass, disjointWith
- Property Relations: subPropertyOf, equivalentProperty, inverseOf
- Individual Relations: sameAs, differentFrom
Restrictions
- someValuesFrom / allValuesFrom
- hasValue
- Cardinality (min, max, exact)
- Qualified cardinality
Annotations
- RDFS: label, comment, seeAlso, isDefinedBy
- SKOS: prefLabel, altLabel, definition, example, note
- Dublin Core: title, description, creator, contributor, date
Import / Export
- Import: Upload files or paste content
- Export: Generate and download in multiple formats
- New Ontology: Create a fresh ontology with custom base URI
Validation
- Check for missing labels, domains, ranges
- Identify untyped individuals
- Apply OWL reasoning (RDFS, OWL-RL)
Visualization
- Interactive graph visualization with vis-network
- Class hierarchy tree view
- Statistics charts
- Class filter and configurable graph limits
Supported Formats
| Format | Extension | Import | Export |
|---|---|---|---|
| Turtle | .ttl | ✅ | ✅ |
| RDF/XML | .owl, .rdf | ✅ | ✅ |
| N-Triples | .nt | ✅ | ✅ |
| N3 | .n3 | ✅ | ✅ |
| JSON-LD | .jsonld | ❌ | ✅ |
Project Structure
orionbelt-ontology-builder/
├── app.py # Streamlit UI application
├── ontology_manager.py # Core OWL operations using rdflib
├── requirements.txt # Python dependencies
├── pyproject.toml # Project metadata
├── lib/ # Frontend vendor libraries
│ ├── vis-9.1.2/ # vis-network for graph visualization
│ ├── tom-select/ # Tom Select for enhanced dropdowns
│ └── bindings/ # JavaScript utility bindings
└── docs/
└── assets/ # Logo assets
Dependencies
- streamlit - Web UI framework
- rdflib - RDF/OWL parsing and serialization
- owlrl - OWL-RL reasoning
- networkx - Graph operations
- pyvis - Network visualization
OWL Concepts Reference
Class Axioms
:Person a owl:Class .
:Student rdfs:subClassOf :Person .
:Male owl:disjointWith :Female .
Property Axioms
:hasParent a owl:ObjectProperty ;
rdfs:domain :Person ;
rdfs:range :Person ;
owl:inverseOf :hasChild .
:hasAge a owl:DatatypeProperty ;
rdfs:domain :Person ;
rdfs:range xsd:integer .
Restrictions
:Parent rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty :hasChild ;
owl:someValuesFrom :Person
] .
Companion Project
OrionBelt Analytics
OrionBelt Analytics is an ontology-based MCP server that analyzes relational database schemas and generates RDF/OWL ontologies with embedded SQL mappings. It connects to PostgreSQL, Snowflake, and Dremio, providing AI assistants with deep structural and semantic understanding of your data. Together with the Ontology Builder, they form a comprehensive toolkit for ontology-driven data modeling.
License
Copyright 2025 RALFORION d.o.o.
Licensed under the Business Source License 1.1. The Licensed Work will convert to Apache License 2.0 on 2030-03-30.
By contributing to this project, you agree to the Contributor License Agreement.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orionbelt_ontology_builder-0.9.0.tar.gz.
File metadata
- Download URL: orionbelt_ontology_builder-0.9.0.tar.gz
- Upload date:
- Size: 59.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7affaad44c15847b89bdc5c10464086f49644fe3f130cdccd81cac007ef79a4c
|
|
| MD5 |
82c8fd6b97f105efd06b3282178129f1
|
|
| BLAKE2b-256 |
bb62c3b75084f09e3eab4174073db27317812a8dbe1929e358a546be04e9e9f2
|
File details
Details for the file orionbelt_ontology_builder-0.9.0-py3-none-any.whl.
File metadata
- Download URL: orionbelt_ontology_builder-0.9.0-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49fc9128831dee34b313b31213b7f31ebbec4bcc5dc8306366f5f834ba6d29ca
|
|
| MD5 |
f53ab50b5ca73b6bf34fcd8e6bea02bb
|
|
| BLAKE2b-256 |
b4ff441ebd58de22194f07b45d0c2d8ee084a7c559f07e227671e1f10a726d3b
|