I am trying to build a desktop app in Python that will leverage labeled property graph model [REF1] for knowledge graph (the relationships will have label or may be shapes with label). The data will be in JSON.
different taxonomies can coexist in a single knowledge graph.
- The node and relationship shapes need to by customizable. Like square instead of eclipse. With some theme, like underline bellow heading.
- The nodes and relationships need to be click and right clickable so that i get a context menu on right click and can run operations on that node / relationship.
- would be able to zoom in and out by scrolling.
- would be able to drag and move the nodes.
- Would work with Tkinter / Kivy / PySimpleGUI
- The UI needs to be sleek and modern.
Please let me give some more context. It will be part of a note taking desktop app.
Given this, what might be the UI toolkit / GUI Frameworks and Graph visualization library most suitable for my purpose.
I have done some research like:
- tkinter + networkx_viewer
- pdPyQt5 + matplotlib + networkx
- Kivy + Matplotlib + Pandas
And also: PyVis / gravis / Visdcc in Dash / graphviz / networkx + matplotlib / Jaal
However, I would like to have some expert advise (i am sure some of you have worked for years with one or more of these libraries) because otherwise i might get stuck after a while because i am unable to implement a feature and will need a new technology stack.
Given my requirements what approach will be best suitable.
[REF1] Building Knowledge Graphs A Practitioner’s Guide by Jesús Barrasa and Jim Webber. The images are from that book.