Skip to main content

ster

Software CI codecov Ruff PyPI License: MIT

Dependencies rdflib pyLODE semanticlint Cytoscape.js Textual

   _____ ______ ______ ____
  / ___//_  __// ____// __ \
  \__ \  / /  / __/  / /_/ /
 ___/ / / /  / /___ / _, _/
/____/ /_/  /_____//_/ |_|

  [ Breton: "Meaning" or "Sense" ]
  [  Semantic Knowledge Editor  ]

ster is a terminal editor for semantic knowledge bases. Build and explore SKOS taxonomies and OWL ontologies together in one full-screen TUI — then visualise them as interactive graphs, run SPARQL, and publish HTML documentation, all from your terminal. No database required.

ster is the Breton word for meaning, with homonyms for river and star — keep the flow, and follow your star.


The TUI

The heart of ster is a Textual terminal app that shows your SKOS taxonomy and OWL ontology in a single tree:

  • One unified tree — concept schemes, concepts, classes, named individuals, and properties side by side. Create, rename, delete, and edit any entity inline; every field is editable in a detail panel.
  • Puns (class ⇔ concept) — an entity can be both an OWL class and a SKOS concept. Promote a concept to a class or demote it back with one action.
  • Tag individuals with concepts — link named individuals to SKOS concepts (dcterms:subject), one at a time or in bulk from a checklist.
  • Live quality & coverage — a semanticlint pass colour-codes each tree node by its worst issue (🔴 error · 🟠 warning); hover for a per-entity issue count, and open the node to see the full list and its label/comment/property-fill coverage.
  • Markdown notes — attach rich notes to any entity with a full-screen editor and a live rendered preview; markdown links are URL-checked when you open or edit them.
  • Ontology overview — editable title/description; opening a pure-OWL file jumps straight to the overview.
  • Bundled demo — a mixed SKOS + OWL sandbox you can load from the file list to try everything out (it resets on each load).

Beyond the tree

Every capability below is reachable from the home menu, acting on the file you selected:

Menu action What it does
TTL Viewer-Editor The unified SKOS + OWL tree editor described above
SPARQL Query In-TUI query editor with autocomplete and a cache-warmed engine (no cold-start delay); export results to CSV
Graph Viewer Opens an interactive Cytoscape.js VOWL-style graph in the browser — classes as circles, property edges, per-class individual toggle, drag / zoom / detail panel
HTML Data Catalog Generates browsable pyLODE documentation, one page per language
Import External Ontology Fetch and cache external vocabularies, binding their namespaces for reuse
Linked Data Publish & Version Semver-tagged releases served over a local Linked-Data server

Installation

ster is a CLI app, so the cleanest install is as an isolated uv tool — no virtualenv to manage, ster goes straight on your PATH:

uv tool install ster        # install
uv tool upgrade ster        # update to the latest release
uvx ster                    # or run once, without installing

Prefer pip? That works too:

pip install ster            # install / upgrade with: pip install -U ster

That's everything — TUI editing, graph viewer, SPARQL, HTML export, and the publish server, no extras required. AI-assisted concept suggestions are available via the llm library (online models, local Ollama models, or a no-model copy-paste mode).

Quick start

ster

The home screen lists the ontology and taxonomy files in the current directory (plus a Load demo entry). Pick a file, then choose an action:

  Select a file:
    ☑  my-ontology.ttl
    🎒 Load demo ontology / taxonomy

  ▶  🖥  TTL Viewer-Editor
     🔍 SPARQL Query
     📦 Linked Data Publish & Version
     🌐 HTML Data Catalog
     ◈  Load Graph Viewer
     📥 Import External Ontology
     ✕  Quit

Arrow keys navigate; Enter confirms. Inside the tree editor, press ? for the full keymap — the essentials are + add, d delete, e edit, Enter expand/open, Esc back.


Supported formats

Extension Format
.ttl Turtle (recommended)
.rdf / .xml RDF/XML
.jsonld / .json JSON-LD
.owl OWL/XML

Key dependencies

Package Role
rdflib RDF parsing / serialisation and the SPARQL engine
Textual The terminal UI framework
Cytoscape.js Browser graph rendering (VOWL viewer)
pyLODE HTML documentation export

Development

See CONTRIBUTING.md for the full workflow.

git clone https://github.com/gbelbe/ster.git
cd ster
uv sync --extra dev
bash scripts/install-hooks.sh   # git pre-push hook (once per clone)
bash scripts/ci.sh              # full local gate: lint · types · security · tests · coverage

The local gate mirrors GitHub Actions (ruff · mypy · bandit + pip-audit · pytest on Python 3.11 / 3.12 / 3.13), and a pre-push hook blocks any push without a passing run in the last 60 minutes. Coverage is reported to Codecov.

Release notes live in the GitHub releases.

License

MIT

Download files

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

Source Distribution

ster-0.9.7.tar.gz (901.6 kB view details)

Uploaded Source

Built Distribution

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

ster-0.9.7-py3-none-any.whl (389.7 kB view details)

Uploaded Python 3

File details

Details for the file ster-0.9.7.tar.gz.

File metadata

  • Download URL: ster-0.9.7.tar.gz
  • Upload date:
  • Size: 901.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ster-0.9.7.tar.gz
Algorithm Hash digest
SHA256 3afc0f2a7f0de7b3c50b26f256b30deedc59a346b23066df7c6ed1ac93e6fb02
MD5 e28421ab221f7ce8abc31e06282401bc
BLAKE2b-256 cd538c8cb2003bb5d855643d7891a53b3794b15c6d67213867c79154c08bc9a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ster-0.9.7.tar.gz:

Publisher: ci.yml on gbelbe/ster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ster-0.9.7-py3-none-any.whl.

File metadata

  • Download URL: ster-0.9.7-py3-none-any.whl
  • Upload date:
  • Size: 389.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ster-0.9.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b48e0b037a25d8e533975cd30dd6b12d9c866ad2efe55c63fbce25e513eae902
MD5 3e614c700a78152ceb22462181167bdf
BLAKE2b-256 07ec06ff98dd1f8be4c1fea0dc6dd6cc15dacc51bb132e65c40f225cc931a986

See more details on using hashes here.

Provenance

The following attestation bundles were made for ster-0.9.7-py3-none-any.whl:

Publisher: ci.yml on gbelbe/ster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.10.0

2 files

This release

0.9.7 This release

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.6

2 files

0.4.5

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page