Skip to main content

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

Project description

OrionBelt Logo

OrionBelt Ontology Builder

Build, edit, and manage OWL ontologies visually with a Streamlit web application

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

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

  1. Create New or Import - Start with a new ontology or import an existing .ttl file
  2. Define Classes - Create your class hierarchy
  3. Add Properties - Define object and data properties
  4. Create Individuals - Add instances of your classes
  5. Define Relations - Set up class/property/individual relationships
  6. Add Restrictions - Apply constraints to classes
  7. Validate - Check for issues using the validation button
  8. 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.


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-0.9.0.tar.gz (59.5 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-0.9.0-py3-none-any.whl (48.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for orionbelt_ontology_builder-0.9.0.tar.gz
Algorithm Hash digest
SHA256 7affaad44c15847b89bdc5c10464086f49644fe3f130cdccd81cac007ef79a4c
MD5 82c8fd6b97f105efd06b3282178129f1
BLAKE2b-256 bb62c3b75084f09e3eab4174073db27317812a8dbe1929e358a546be04e9e9f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for orionbelt_ontology_builder-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49fc9128831dee34b313b31213b7f31ebbec4bcc5dc8306366f5f834ba6d29ca
MD5 f53ab50b5ca73b6bf34fcd8e6bea02bb
BLAKE2b-256 b4ff441ebd58de22194f07b45d0c2d8ee084a7c559f07e227671e1f10a726d3b

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