jupyrdf / ipyradiant

Jupyter widgets for working with RDF graphs.
BSD 3-Clause "New" or "Revised" License
5 stars 7 forks source link

Basic Cytoscape Viewing Widget #91

Closed lnijhawan closed 3 years ago

lnijhawan commented 3 years ago

Improved cytoscape viewing widget.

Features:

To test:

Binder

zwelz3 commented 3 years ago

Tracking comment:

*the edge predicates are not stored on the ipycytoscape.Edge when using the rdf to networkx method available to rdflib. Instead, we need to use ipyradiant.rdf2nx.RDF2NX class to convert only annotation properties instead. This will allow us to use the predicate iri or predicate label.

zwelz3 commented 3 years ago

Take a look at the new cytoscape.style file to see how I want to store our default style dictionaries in ipyradiant going forward.

zwelz3 commented 3 years ago

Cytoscape is still "crashing" for large graphs. Lets add a validate for the graph trait that warns the user when the length of the graph is over 50ish (not sure when it breaks down) nodes. This should include a test for increasing number of nodes to determine when cytoscape performance tanks.

I tested with the base CytoscapeWidget up to 400 nodes and 1000 (total) edges with no problem. I'm not sure why there are issues as part of the CytoscapeViewer.

image

zwelz3 commented 3 years ago

Looking at Datashader this morning for initial visualization of the large graphs. Still running into performance limitations (>30s to render), and the output of RDF2NX is crashing the graph.

Thinking that graph exploration via small starting population of nodes is still the fastest way to explore. Going to look into the node expansion problem and set up some simple examples. I think the performance issues on this PR can be solved with a warning.