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)
.nt N-Triples (fastest for large files)
.rdf / .xml RDF/XML
.jsonld / .json JSON-LD
.owl OWL/XML

Large Files & Performance

For large ontologies or taxonomies (over 100k triples), ster provides several performance boosts out of the box:

  • Fast Rust Parsing: ster uses the high-performance Oxigraph engine automatically for near-instant RDF parsing.
  • N-Triples Acceleration: Reading .nt files is significantly faster than Turtle for massive datasets. Use ster convert large.ttl large.nt to switch.
  • Binary Caching: After the first successful parse, a secure binary cache is created. Subsequent loads are near-instant (typically under 2s for 150MB+ files).

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.10.0.tar.gz (961.5 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.10.0-py3-none-any.whl (410.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ster-0.10.0.tar.gz
Algorithm Hash digest
SHA256 af9d9efae348cb58e8ba2c33c3122902646769c54a42207e860acecfb25c249f
MD5 5c5f70b63b27c854f73fc0f839862ee6
BLAKE2b-256 13bd8f6ee3b82b64009c958e0a49aab5a1e2fef3db29a4a5b22eeee2887762d7

See more details on using hashes here.

Provenance

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

Publisher: publish.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.10.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for ster-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c4db546a2a3af3240feac956e360d6aecf6c8b94f44f8e6cb6fe72dece780a49
MD5 0f3a42fadb7f6cce01475be28d9cc0b7
BLAKE2b-256 44d69b4370316f770ccdaf7af22332ad565cf9287367cfa3b3e10fb14fc180a1

See more details on using hashes here.

Provenance

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

Publisher: publish.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

This release

0.10.0 This release

2 files

0.9.7

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