INCATools / INCATools/ontology-access-kit

Add a mermaid and d2lang output for ontology trees and graphs

Open
#363 0 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
198
Forks
35
Avg merge
3d 4h
Merged PRs (30d)
1

Description

Currently there is one way to visualize ontology graphs, via graphviz.

This involves

1. subgraph operation -> obo json [oak]
2. obo json to dot (mediated by stylesheet following kgviz schema) [obographviz]
3. dot to png [graphviz]

This has a lot of advantages - in particular high configurability of the graph display via stylesheets. But it's a bit of a clunky install, and the graphviz is often non aesthetic

We should also export to

- mermaid
- [d2lang](https://d2lang.com/tour/intro/)

Mermaid is attractive as it can be pasted into github issues and incorporated into mkdocs/sphinx directly. However, it is less configurable.

d2 is less mature but very promising, and highly configurable

If we prioritize this, there are two options

- extend obographviz
- write native python, perhaps make a general purpose framework for modeling a graph then adding renderers

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by tracing the existing OAK to obo JSON, obographviz, and Graphviz flow, then compare extending obographviz with a native Python renderer framework. Done should include agreed support for Mermaid and d2lang output, but the issue does not define the API or implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.