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.5.tar.gz (891.0 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.5-py3-none-any.whl (384.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ster-0.9.5.tar.gz
  • Upload date:
  • Size: 891.0 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.5.tar.gz
Algorithm Hash digest
SHA256 55a1bc57bc0ef63059baaa46537afc425e60c35493dda52b58f5428df0de537c
MD5 0fc9a541056ad4ee57cea07b082c0650
BLAKE2b-256 1d1fcb0af21ce94cb773d2bacde6a8bb94b9f718912d19cd24491a7a276b25b3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ster-0.9.5-py3-none-any.whl
  • Upload date:
  • Size: 384.0 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f172af87880f07863b5c65e398a02e5e0398d8322178a5469c7bf48d93057db4
MD5 f564d150714e33dda6ba33f82b77ff8f
BLAKE2b-256 710ceba7cd891c10ff83bf2f88dac724dd6ab55d38d8c54c14f53c6fe2cc5bf5

See more details on using hashes here.

Provenance

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

0.9.6

2 files

This release

0.9.5 This release

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