Skip to content

CatholicOS/ontokit-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

301 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OntoKit API

CI PyPI Python Ruff codecov

Collaborative OWL ontology curation API built with FastAPI.

Features

  • RESTful API for managing ontologies, classes, properties, and individuals
  • Project management with public/private visibility and team collaboration
  • Git-based version control with branching, pull requests, and sync from remote (pygit2 bare repos)
  • Ontology linting with 20+ semantic validation rules
  • Semantic search powered by sentence-transformers
  • Authentication via Zitadel (OpenID Connect)
  • Real-time collaboration via WebSockets
  • Background job queue with ARQ + Redis
  • Object storage integration with MinIO for ontology files

Quick Start

Full Docker Mode

# Start all services
docker compose up -d

# Run database migrations
docker compose exec api alembic upgrade head

# Set up Zitadel authentication (creates OIDC apps, updates .env files)
./scripts/setup-zitadel.sh --update-env

# Recreate API/worker containers to pick up the new credentials
docker compose up -d --force-recreate api worker

Hybrid Mode (API on host)

# Start infrastructure
docker compose -f compose.prod.yaml up -d

# Install dependencies and pre-commit hooks (one command)
make setup

# Configure
cp .env.example .env

# Set up Zitadel authentication (creates OIDC apps, updates .env files)
./scripts/setup-zitadel.sh --update-env

# Run database migrations
alembic upgrade head

# Start server
uvicorn ontokit.main:app --reload

Note: make setup requires uv. It installs all dev dependencies and sets up pre-commit hooks (ruff + mypy) so that code quality checks run automatically on every commit.

Documentation

See the wiki for full documentation.

Tech Stack

  • Framework: FastAPI (Python 3.13)
  • Database: PostgreSQL 17 + SQLAlchemy 2.0 (async)
  • Cache/Queue: Redis 7 + ARQ
  • Object Storage: MinIO (S3-compatible)
  • Authentication: Zitadel (OIDC)
  • Git: pygit2 (bare repositories for concurrent access)
  • Ontology Processing: RDFLib, OWLReady2
  • Semantic Search: sentence-transformers

License

MIT

About

Collaborative OWL ontology curation API built with FastAPI

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages