Web editor for OWL ontologies : classes, properties, individuals & SWRL rules. GUI for visual SPARQL queries.
Current version: 1.1.0 — see the CHANGELOG for the full feature list.
- Docker Desktop (Docker Compose included)
git clone https://github.com/MyShivaRepo/swowl.git
cd swowl
docker compose up --build| Service | URL |
|---|---|
| Interface | http://localhost:12345 |
| API (Swagger) | http://localhost:8001/docs |
New to SWOWL? The How to start guide walks you step by step through the two ontology wizards:
- New Ontology — start from scratch with an empty ontology.
- Import Ontology — bring in an existing
.owl/.ttl/.rdffile to visualise and edit.
- OWL 2 — classes (subClassOf, equivalent, disjoint, restrictions), object/datatype properties (domain, range, characteristics, hierarchies), individuals and assertions.
- Imports —
owl:imports: imported entities appear read-only, dimmed, with their prefix. - SWRL — visual rule editor with live preview.
- SPARQL — visual query builder.
- SKOS —
skos:annotations (prefLabel, altLabel, definition…) imported and editable. - Inference engine — transitivity, restriction inheritance, types via
domain/range, inverse, property chains, violation detection… (backend engine,
available via the REST API
/api/inferences). - Import / Export — OWL/XML, Turtle, JSON-LD, SWORD (rules import/export).
- Consistent UX — homogeneous filter+tree pickers everywhere, global search, undo/redo, USER/SYSTEM ontology registry.
Complete ontologies (OWL + SWRL) are stored as JSON files referenced in ~/.swowl/registry.json.
They are reloaded on each startup and remain on the host (outside the container).
Two Docker containers orchestrated by Compose:
| Layer | Stack |
|---|---|
| Frontend | Nginx — vanilla HTML/CSS/JS (no framework, no build) |
| Backend | Python 3.11 — FastAPI + Uvicorn, rdflib (RDF parsing/serialization), Pydantic (OWL 2 models) |
- Communication — REST API; Nginx serves the static files and proxies
/api/to the backend (Uvicorn, port 8000). - Model — OWL 2 and SWRL entities are typed with Pydantic models; an rdflib triple store handles RDF import/export.
- Inference — in-house engine (forward chaining) on the backend, available via the REST API (
/api/inferences); no dedicated UI tab.
backend/ FastAPI API, OWL models, triple store, inference/serialization engines
frontend/ index.html, js/ (editors, app, api), css/
exigences/ requirements (specs per tab)