felixhayashi / TW5-TiddlyMap

Map drawing and topic visualization for your wiki

Home Page:http://tiddlymap.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Request that live view maintain node positions and structure

gtothill opened this issue · comments

As per initial discussion in #345 here is a use case and suggestion for additional features.

Use case: TiddlyWiki in combination with TiddlyMap represents a near perfect solution for deploying medical algorithms in a lightweight, responsive and, most importantly, instinctive way.

One method of doing this is by building the algorithm in TiddlyMap with yes / no edges that represents decision points and downstream nodes that represent further branch or endpoints. Nodes can appear in the stream as they are clicked in the map or the pathway can be navigated by links in the nodes themselves with the may displaying tw-body:link 's.

If a static map (with filters) is used this works ok, but a better solution would be that the user is only shown downstream nodes and edges as they work through the algorithm. This means that the user gains a real perspective on where they are in the process and the consequences of their next choice.

Implementation: This is almost all possible to do with the current build by using Live view and setting neighborhood traversal to 1 step and outgoing, but there is a problem. Each time the node focus changes, Live view refreshes (necessarily) and all the nodes and edges rearrange themselves - sometimes fairly chaotically. This is incompatible with the progressive, branching nature of most medical algorithms and is very disorientating for the user, so much so that the map is largely ignored when used in this way.

Request: That Live View can be configured so that it responds to the neighborhood traversal / step / incoming or outgoing directives but also retains the original structure of the tree, simply hiding nodes 'upstream' , re-centering on the node in focus and showing downstream edges and nodes.

I have attached the example of the static COVID-19 algorithm as an example of what the modified Live view could look like.

Thanks again Felix for this outstanding piece of software and for considering this request.

Regards,

Geoff.

2020-05-06_23-35-51

Hi @gtothill many thanks for creating a dedicated ticket for this feature request (related to #345 (comment)) and for providing further details.

I am still checking how to modify the "live view" in a way that it organizes new nodes in a less chaotic way and keeps the node positions of previously added nodes. The problem here is that due to the link-complexity of topics there are typical cases where other TiddlyMap users may not have acyclic graphs as it is the case with the decision tree in your example therefore the algorithm fails to position the nodes in a static and meaningful way and it looks rather chaotic.

As a workaround, I experimented with another approach where you first position the nodes in a dedicated map and then "hide" the nodes (i.e. the nodes are removed from the map but their postion-metadata still remains; this feature is not published yet) and then set neighborhood traversal to 1 step. The result is a drilldown path where the positions of newly "unfolded" nodes are deterministic as defined in advanced. Here is a short video showing the effect:

video: https://youtu.be/HPUi7U1_ZHY

(of course this requires the work of positioning the nodes in advance, but maybe I can get the algorithm to render nodes in a hierarchical structure automatically.)

Note: what is shown in the video is not possible yet, it is just a preview.

Thanks Felix! That look very impressive and was almost exactly what I had imagined. In this iteration it would work much better than a static map and the video shows an easily interpreted 'step wise' progression through the algorithm. The only remaining pieces would be to have the option of hiding previous steps and re-centering the map -on the active node, but in truth, that's me just being a UI purist - your demonstration video is very clear.
Thanks again for looking at this - I hope it has been interesting. If you have a chance to implement some or all of this it would be much appreciated - I'd love to try it out in a real world environment with some nurses.

Regards,

Geoff.

The only remaining pieces would be to have the option of hiding previous steps and re-centering the map -on the active node

I already expected that this is a requirement since you want this "decision tree" to be used by others, implying that you also want to empower them to "reset" the map to the initial state 😉 it makes sense and I will see what I can do.

If everything goes smooth I think I can release a new version this weekend.

Excellent - thanks for implementing this, I think it will be a very powerful feature. I look forward to seeing the result. Thanks again, Geoff.

Hi @gtothill please have a look if release v0.17.1 suits your needs.

it introduces the "tracing" functionality that allows you to temporarily add nodes to your graph by clicking on the neighbouring nodes.

Tracing can also be enabled for the "live view", however in your case I suggest that you create dedicated maps for your decision trees.

More information and videos here:

I also newly added the "hierarchical layout" feature that allows you to automatically render the acyclic graph hierarchically, so less manual work here (compare video at second 32 https://youtu.be/hge3PGnJM_A?t=32)...

The only remaining pieces would be to have the option of hiding previous steps and re-centering the map -on the active node

In the editor's menu bar in the "tracing menu" you will find a "restart" button.
Cheers