Skip to main content

A Streamlit application for building, editing, and managing OWL ontologies

Project description

OrionBelt Logo

OrionBelt Ontology Builder

A browser-based ontology workbench built with Streamlit and rdflib

GitHub stars Version 1.2.1 Python 3.10+ License: BSL 1.1 Streamlit rdflib OWL-RL vis-network

Try it now: orionbelt.streamlit.app

OrionBelt Ontology Builder Screenshot


What is this?

OrionBelt lets you build, edit, and maintain OWL ontologies and SKOS vocabularies in your browser. No Java, no desktop install - just pip install and go.

It works with OWL ontologies (classes as owl:Class, properties as owl:ObjectProperty / owl:DatatypeProperty). Pure RDFS vocabularies like Schema.org that use rdfs:Class and rdf:Property are not supported.

It's not trying to be Protégé. It's meant for people who want something lighter: a workbench that's easy to pick up, hard to break things with, and good enough for real ontology work.

What it's good at

Not losing your work. Every change creates an undo checkpoint. Deletes show you what will break before you confirm. Imports show a diff so you can review before applying.

Keeping your ontology clean. Validation catches orphan classes, duplicate labels, domain/range mismatches, missing annotations, and SKOS-specific issues like broader/narrower cycles. Not just "you have warnings" but "here's what's wrong and where."

Moving fast in large ontologies. Global search across everything. Usage/backlink views for any resource. Click a node in the graph and jump straight to the editor. Bulk add/edit/delete so you're not filling out forms one entity at a time.

Working with others. Merge-aware imports with three strategies (replace, merge, merge-overwrite). Conflict detection. Prefix reconciliation. Change reports you can download. You can actually review what an import would do before committing it.


Features

Ontology editing

Full CRUD for classes, object/data properties, individuals, restrictions, relations, and annotations. Hierarchy management, rename with reference updates, and tabbed editing per entity type.

Bulk operations

Every entity page has a Bulk Operations tab:

  • Add - paste names (one per line) or CSV with headers like Name, Label, Parent
  • Edit - spreadsheet view of all entities with editable labels, comments, parents
  • Delete - multi-select and remove in one go

Annotations have their own bulk editor with per-row add/delete actions.

SKOS vocabularies

A dedicated page for building controlled vocabularies:

  • Concept schemes with concept counts
  • Concepts with prefLabel, definition, broader/narrower (inverses auto-managed)
  • Hierarchy tree view, filterable by scheme
  • Full SKOS relation support (broader, narrower, related, all match types)
  • SKOS validation: missing prefLabels, orphans, duplicate labels, cycles

Templates

Five starter templates you can merge into or replace your current ontology: Organization, Product Catalog, Event, Person/Contact, and SKOS Thesaurus. Each is a valid Turtle snippet with a preview before you apply it.

Upper Ontologies

Start from a professionally built upper ontology instead of redefining foundational concepts for every project. Currently ships with gist by Semantic Arts — a minimalist upper ontology covering ~100 classes (Event, Person, Organization, Agreement, Specification, etc.) and ~100 properties. Select which modules to load (Core, RDFS Annotations, SubClass Assertions, Media Types) and merge or replace your current ontology.

Import & export

Format Extension Import Export
Turtle .ttl
RDF/XML .owl, .rdf
N-Triples .nt
N3 .n3
JSON-LD .jsonld

Imports on an empty ontology go straight through. Otherwise you get a review panel: diff summary, conflict table, prefix changes, import mode selector, and a downloadable change report.

Validation & reasoning

  • Missing labels, domains, ranges
  • Orphan classes, duplicate labels, domain/range mismatches
  • Untyped individuals
  • SKOS checks (see above)
  • RDFS and OWL-RL reasoning via owlrl

Visualization

Interactive vis-network graph with class filtering, configurable node limits, click-to-navigate into the editor, hierarchy tree view, and statistics charts.

Safety

  • Full undo/redo with labeled checkpoints
  • Delete impact analysis before confirmation
  • Bulk operations create a single undo point
  • Namespace prefix management from the Dashboard

Quick Start

# Clone and install
git clone https://github.com/ralfbecher/orionbelt-ontology-builder.git
cd orionbelt-ontology-builder
pip install -r requirements.txt

# Or install from PyPI
pip install orionbelt-ontology-builder

# Run
streamlit run app.py

Open http://localhost:8501


Pages

Page What it does
Dashboard Metadata, base URI, statistics, prefix management, validation
Classes Class hierarchy, CRUD, bulk operations
Properties Object & data properties, CRUD, bulk operations
Individuals Instance management, property assertions, bulk operations
Relations Class, property, and individual relations
Restrictions OWL restrictions and cardinality constraints
Advanced Advanced OWL features
Annotations RDFS, SKOS, Dublin Core annotations with bulk editing
SKOS Vocabulary Concept schemes, concepts, hierarchy, SKOS validation
Import / Export File import with merge review, export, new ontology, templates
Source Live Turtle source view of the ontology
Validation Ontology validation and OWL reasoning
Visualization Interactive graph (OWL + SKOS), hierarchy tree, statistics

Project structure

orionbelt-ontology-builder/
├── app.py                 # Streamlit UI
├── ontology_manager.py    # Core OWL/SKOS engine (rdflib)
├── templates.py           # Built-in ontology templates
├── pyproject.toml         # Project metadata
├── lib/                   # Frontend libraries (vis-network, Tom Select)
├── tests/                 # 168 pytest tests
└── docs/assets/           # Logos

Dependencies: streamlit, rdflib, owlrl, networkx, pyvis.


Companion Project

OrionBelt Analytics

An ontology-based MCP server that analyzes relational database schemas (PostgreSQL, Snowflake, Dremio) and generates RDF/OWL ontologies with embedded SQL mappings. Together with the Ontology Builder, they form a 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.


RALFORION d.o.o.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orionbelt_ontology_builder-1.2.1.tar.gz (83.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

orionbelt_ontology_builder-1.2.1-py3-none-any.whl (66.9 kB view details)

Uploaded Python 3

File details

Details for the file orionbelt_ontology_builder-1.2.1.tar.gz.

File metadata

File hashes

Hashes for orionbelt_ontology_builder-1.2.1.tar.gz
Algorithm Hash digest
SHA256 41dc47a9df4c06c725312ae4fe71ce1123214080dcc6d9d544a5c40a154e3765
MD5 edd079b3bab3ca89ed95cdd9808f1e63
BLAKE2b-256 2587f616185b7ac4ffaf621fd8fdec977a238b1a1905f6a9648b41110ccf2d49

See more details on using hashes here.

File details

Details for the file orionbelt_ontology_builder-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for orionbelt_ontology_builder-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1ea16f276a26a11b0560666f3728891eeac94fdbba6521b17f2ccbbd877e351d
MD5 c403ebb47a493721881e580eb8c5b30a
BLAKE2b-256 e46b262ac09376372a5867e1b11cbe35040e25c8437021b2fe52769c95f0dc03

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page