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
  • Shape recommendation — generate sh:NodeShapes for classes with no coverage, from instance data and OWL axioms, with the evidence behind every constraint; or right-click a class and accept proposed constraints one click at a time as they appear on the graph
  • OWL reasoning — HermiT, Konclude (native or WASM) or owlrl, with inferred triples overlaid on the graph, consistency checking, and a proof tree explaining any inference the in-page reasoner made
  • CI gates — competency questions as executable fences, shape-drift detection, plus ontoink-report.json and README badges written on every build
  • 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 what changed in each release

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.7.tar.gz (2.9 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.7-py3-none-any.whl (2.9 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ontoink-0.7.7.tar.gz
  • Upload date:
  • Size: 2.9 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.7.tar.gz
Algorithm Hash digest
SHA256 3d76cb71c367f2b6a3359fcad27515867ab0fcfb68d31ce58d32780f39755fd8
MD5 8cb0ed7dd7aec2e312526e79411f3d3e
BLAKE2b-256 65ff453d6d238ddbd8371d8eb361f5e154c38f9675a0cccdeb433284e3bd2c1f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ontoink-0.7.7-py3-none-any.whl
  • Upload date:
  • Size: 2.9 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 40843a75dd7eb72d390d506c8fc2f410bc8e4cfe475acec5bfda22e6802629b7
MD5 949686f927f7876056aa98182d1c7a95
BLAKE2b-256 bb9e268aac1d9115457d6304f4c63d607a869776afce134f9eb9d228947c317b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ontoink-0.7.7-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

This release

0.7.7 This release

2 files

0.7.5

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