ontoink
Interactive ontology visualization, SHACL validation, and live TTL editing for MkDocs.
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 tools — Playground · SHACL Editor · SPARQL Explorer · OntoSniff
- Embeddable —
ontoink.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 Norouzi — FIZ 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39bf0c1d129cc33837d7901163afea7295c0eef402ee737e8cd0cd6bca7d11bb
|
|
| MD5 |
f8542c1af50ce5eba97c351e51c866ff
|
|
| BLAKE2b-256 |
ced242de115fe543e70787faa2d746a93e63051170219fd2a0461e319d6a71f1
|
Provenance
The following attestation bundles were made for ontoink-0.7.5.tar.gz:
Publisher:
publish.yml on ISE-FIZKarlsruhe/ontoink
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ontoink-0.7.5.tar.gz -
Subject digest:
39bf0c1d129cc33837d7901163afea7295c0eef402ee737e8cd0cd6bca7d11bb - Sigstore transparency entry: 2366872869
- Sigstore integration time:
-
Permalink:
ISE-FIZKarlsruhe/ontoink@66f6ef0ca51a651c0ec132b36593697b6f1bc6b0 -
Branch / Tag:
refs/tags/v0.7.5 - Owner: https://github.com/ISE-FIZKarlsruhe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@66f6ef0ca51a651c0ec132b36593697b6f1bc6b0 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98fbb2e14f0289883dc790fb2419b039f5fb78f4a0caaf9c5403652762fbaa80
|
|
| MD5 |
d67174fa6a6988873eab3d448e529f74
|
|
| BLAKE2b-256 |
5bee5fcb8546b03adc4f8e7a7b95540b1bed789e2584d762d1cd86951e722b16
|
Provenance
The following attestation bundles were made for ontoink-0.7.5-py3-none-any.whl:
Publisher:
publish.yml on ISE-FIZKarlsruhe/ontoink
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ontoink-0.7.5-py3-none-any.whl -
Subject digest:
98fbb2e14f0289883dc790fb2419b039f5fb78f4a0caaf9c5403652762fbaa80 - Sigstore transparency entry: 2366872884
- Sigstore integration time:
-
Permalink:
ISE-FIZKarlsruhe/ontoink@66f6ef0ca51a651c0ec132b36593697b6f1bc6b0 -
Branch / Tag:
refs/tags/v0.7.5 - Owner: https://github.com/ISE-FIZKarlsruhe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@66f6ef0ca51a651c0ec132b36593697b6f1bc6b0 -
Trigger Event:
release
-
Statement type: