Skip to main content

ontoink

Interactive ontology visualization, SHACL validation, and live TTL editing for MkDocs.

CI PyPI Python License: MIT

ontoink is a MkDocs plugin that turns RDF/Turtle files into interactive, publication-ready ontology diagrams with SHACL constraint visualization. Write a code block in your markdown and ontoink renders a fully interactive graph.

Live demo & full documentation →

Install

pip install ontoink

Use

# mkdocs.yml
plugins:
  - search
  - ontoink

markdown_extensions:
  - pymdownx.superfences:
      preserve_tabs: true
```ontoink
source: shapes/foaf-person/shape-data.ttl
shape: shapes/foaf-person/shape.ttl
height: 600px
```

Then mkdocs serve. See Getting Started for all fence options, GitHub Pages deployment and reasoner setup.

What you get

  • Interactive graphs — formal ontology notation, six layouts, pan/zoom/search, minimap, level-of-detail and clustering for large ontologies, style presets (ontoink, Chowlk, Graffoo, VOWL)
  • Editable layout — colours, shapes, edge styles, shape size and fonts; multi-select with Ctrl+click and a right-click menu for align / distribute / arrange, selection-scoped ontology actions, and undo
  • SHACL — constraint overlay on the graph, build-time validation with pySHACL, live re-validation in the inline TTL editor
  • OWL reasoning — HermiT, Konclude (native or WASM) or owlrl, with inferred triples overlaid on the graph and consistency checking
  • Analytics — ontology metrics, SHACL coverage, shortest paths, in-page SPARQL, and OntoSniff quality checks with a 0–100 score
  • Publication-ready export — PNG/SVG with legend and namespace prefixes, plus TTL download
  • Browser-only toolsPlayground · SHACL Editor · SPARQL Explorer · OntoSniff
  • Embeddableontoink.embed() mounts a graph in any page, under a strict CSP, with no CDN

Documentation

Getting Started install, configure, deploy
Embedding use ontoink outside MkDocs
Docker & self-hosting production image, reasoner backends, API mode
Architecture how it works and why
Changelog · Backlog what changed, what's next

Development

git clone https://github.com/ISE-FIZKarlsruhe/ontoink.git
cd ontoink
pip install -e ".[dev]"
pytest -v          # see TESTING.md for the full local test guide
cd demo && mkdocs serve

Contributions welcome — please open an issue first to discuss proposed changes, add tests, and make sure pytest passes.

Requirements

Python ≥ 3.9 · MkDocs ≥ 1.4 · rdflib ≥ 6.0 · pySHACL ≥ 0.25 · pymdown-extensions ≥ 10.0. Browser-side dependencies (Cytoscape.js, dagre, CodeMirror) are vendored — no npm, no CDN.

License & citation

MIT — see LICENSE. If you use ontoink in published work, please cite it via CITATION.cff; when using either Konclude backend, additionally cite Liebig et al. (2014), Konclude: System Description, Journal of Web Semantics 27-28, 78-85. See NOTICE for full attribution of the bundled reasoners.

Author

Ebrahim NorouziFIZ Karlsruhe, ISE. Developed in the context of NFDI and NFDI-MatWerk; visualization powered by Cytoscape.js.

Download files

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

Source Distribution

ontoink-0.7.5.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

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

ontoink-0.7.5-py3-none-any.whl (2.8 MB view details)

Uploaded Python 3

File details

Details for the file ontoink-0.7.5.tar.gz.

File metadata

  • Download URL: ontoink-0.7.5.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ontoink-0.7.5.tar.gz
Algorithm Hash digest
SHA256 39bf0c1d129cc33837d7901163afea7295c0eef402ee737e8cd0cd6bca7d11bb
MD5 f8542c1af50ce5eba97c351e51c866ff
BLAKE2b-256 ced242de115fe543e70787faa2d746a93e63051170219fd2a0461e319d6a71f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ontoink-0.7.5.tar.gz:

Publisher: publish.yml on ISE-FIZKarlsruhe/ontoink

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

File details

Details for the file ontoink-0.7.5-py3-none-any.whl.

File metadata

  • Download URL: ontoink-0.7.5-py3-none-any.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ontoink-0.7.5-py3-none-any.whl
Algorithm Hash digest
SHA256 98fbb2e14f0289883dc790fb2419b039f5fb78f4a0caaf9c5403652762fbaa80
MD5 d67174fa6a6988873eab3d448e529f74
BLAKE2b-256 5bee5fcb8546b03adc4f8e7a7b95540b1bed789e2584d762d1cd86951e722b16

See more details on using hashes here.

Provenance

The following attestation bundles were made for ontoink-0.7.5-py3-none-any.whl:

Publisher: publish.yml on ISE-FIZKarlsruhe/ontoink

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.7.7

2 files

This release

0.7.5 This release

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page