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

pip install 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.6.tar.gz (891.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.6-py3-none-any.whl (384.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ster-0.9.6.tar.gz
  • Upload date:
  • Size: 891.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.6.tar.gz
Algorithm Hash digest
SHA256 c4390f1538d2225bcdee90270aad870a1457d7fa77ea0630bf9f4115bad266b4
MD5 90aa946e604440763940e61bed81dc00
BLAKE2b-256 02929ca22e52f60dfad7f7d35f0d1df03d42ab421513b15413a00e82c13a88e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ster-0.9.6.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.6-py3-none-any.whl.

File metadata

  • Download URL: ster-0.9.6-py3-none-any.whl
  • Upload date:
  • Size: 384.2 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 85ffefac3dc53143ad6e6b36d9c5d373d78a3f91252e67a882aabeb33c8a2ecd
MD5 8da9f8475018d06f8317b43a39794199
BLAKE2b-256 50e6371c7d47c3ac610b1a612380eaac16bb4b9811806a5e343117ef90813a3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ster-0.9.6-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

0.9.7

2 files

This release

0.9.6 This release

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