marklogic-community / grove-react-visjs-graph

Other
1 stars 4 forks source link

Create tickets for existing and desired graph features for PRH #2

Open grtjn opened 5 years ago

grtjn commented 5 years ago

Here are some of the requirements and how they map to PRH, but also how they are generic for graph interactions:

Existing PRH Functionality

As A I need to So I can PRH Illustration Ticket Status
Viewer Show entities and links among them Understand information in context Seeing a set of Drugs along with the protiens they bind to and research articles about the drug #3 Todo
Viewer Expand the view to show more entities with links Adjust my contextual view and expand the information If you see an interesting article, you click it to see things like who wrote it (Author Entities) and the Topics mentioned. #7 Todo
Developer Label the entities in a standard way Show names of things on the graph with simple Mapping/Curate rules in DHF to populate that data uniformly All Entities in the graph are named via a “preferredName” triple.
Viewer Open an Entity in a new tab See all the details about an item of interest If you see a Drug has an article with an interesting title, you can open in another tab and read it
Viewer Hide items of an entity type Understand information in context without clutter from irrelevant items Some Genes or Drugs may have many, many publications. If you are researching gene/protein relationships, these Pubs are visual clutter, and also slow down the GUI.
Viewer (Different icons/colors per entity) Quickly see which types of data are related and how Quickly understand the big graph of stuff and understand information in context. PRH has different icons and colors for Drugs, Genes, Proteins, Publications, Authors, Topics, Diseases, Studies and Workspaces
Viewer (dynamic update)  Update the graph with sophisticated controls like facet selections or query keyword changes Refine the views as I refine my search, without having a large, complex graph completely re-render which would move existing data to unknown locations. In prh, if you apply some facet, the non-conforming data will be removed but the other data will remain on the screen and adjust dynamically.

New, Desired Functions

As A I need to So I can PRH Illustration Ticket Status
Viewer Refine the data shown for each entity type See relevant data on the graph If we search for “diabetes” drugs now, we will get drugs and also related publications. Those publications may be irrelevant, but if we facet down to the last 2 years they may then be relevant.
Viewer De-emphasize some data, likely turning from full icons to dots See the “shape” of the data rather than read every item. That is, see quickly that some entities are tightly connected to dozens or even hundreds of others, (think Kevin Bacon) where others are not. For PRH there may be so many publications or drugs targeting some gene that we get information overload. In that case, it would be useful to push the 100s of entities visually into the background as dots, and remove labels.
Viewer Adjust graph contents by increasing amount of certain entities that are shown when expanding into related entities. See more of the content I care about, and less “noise” content by casting a wide net for certain entity types and reducing the amount of content for others. If you are looking for hotbeds of activity for diabetes research, the authors and institutions are critical, but publications and drugs and studies are not.
Developer Easily configure display attributes such as color and shape of an entity on the graph Easily add a new entity type to the graph view, to match and keep up with the ease with which MarkLogic can add new entity information to the triplestore. In PRH we just added “Studies” and had to modify more files and config that is ideal.
Developer Use a supported graph toolkit Get fixes and remain compatible with new browsers or other features PRH uses vis.js, which is not actively in development anymore.
grtjn commented 5 years ago

Refactoring of this react-visjs package is ongoing in the vanilla-vis branch. Features in above table will be compared against completeness of that branch.

grtjn commented 5 years ago

Related tickets are grouped in the vanilla-vis milestone (formerly known as code-refactoring):

https://github.com/marklogic-community/grove-react-visjs-graph/milestone/1