cwrc / HuViz

LOD visualization tool for humanities datasets
8 stars 1 forks source link

Selected Activate and Label but node did not label when it was activated #350

Open SusanBrown opened 4 years ago

SusanBrown commented 4 years ago

Alpha Used Unitarian novelist dataset Set settings for boxed labels and dark theme Clicked on Mary Carpenter and dragged her in. The node activated fine but was not labelled.

https://raw.githubusercontent.com/cwrc/testData/master/sparqlOutputs/unitarian_novelist_biographies.ttl http://sparql.cwrc.ca/ontology/cwrc.ttl

smurp commented 4 years ago

If what you are saying is "The engaged verbs should be applied during a drag from the shelf" then this is not a bug but is functioning as intended. A way to achieve a similar effect is to engage two verbs: Label and Activate and then to click the node on the shelf rather than drag it in.

To achieve exactly what you're describing we'll have to do one of a couple of things:

  1. make a setting Everything in the graph should always be labelled defaulting as you wish
  2. make a setting Nodes dragged into the graph should be labelled too defaulting as you wish
  3. make a setting Dragging into graph runs these verbs: with pulldown choices Activate (current) Activate and Label (per this request)
  4. other possibilities?

Creating a feature setting is a minor operation and should be understood as a best practice for HuViz since it supports later personalization and integration-specific defaults. I would propose the criteria most-bang-for-the-buck, good-for-the-codebase and least-effort to guide us in figuring out which way to handle this.

My initial sense is that Dragging into graph runs these verbs: is by far the best bang for the buck and is also good-for-the-codebase since it might even simplify some code. Even from the least-effort perspective it might be the best of the first three options.

Thoughts? @SusanBrown @wolfmaul @antimony27

smurp commented 4 years ago

@SusanBrown @antimony27 OK I have a better grasp on this now.

Engaging the verbs Activate and Label and then clicking a node on the shelf runs Activate and Label *TheClickedNode*.

Dragging a node from the shelf into the graph does a special thing, it is a shortcut for running Activate *TheDraggedNode*

The problem is this. What you describe doing is a combination of those two things, with the result being that only one of those two things (the drag) was respected. Why? It has to do with "What is a drag?" vs "What is a click?". They both involve pressing the mouse button and then releasing the mouse button. The difference, of course, is the mouse movement which happens between the press and the release -- if the movement is greater than some tiny amount then the operations is considered a drag. That is why the HuViz interpreted your action as a Drag and didn't treat it as a Click.

At this point I believe Drag operations always ignore whatever verbs are engaged. This means we can just drag things in and out of the graph and into the discard bin willy-nilly, without regard for whatever verbs are engaged or whatever the current selection is. I think we like this.

Another way for things to work would presumably be that dragging and dropping would be a different way to run the verbs which are currently engaged. My sense is that this is more complicated because it then there is the possibility of disagreement between the verbs which are engaged and the drag and drop operations which are performed. For example, if the engaged verbs include Activate but there is an attempt to drag an activated node onto the shelf, what should happen?

SusanBrown commented 4 years ago

Thanks for figuring this out, Shawn. I think you’re right that we want to keep the ability to drag nodes around as we can now, but that we need to clarify in our thinking the relationship between the commands, clicking on nodes, and dragging, AND that we need the interface to more clearly signal what is going on, so that we don’t end up with such confusion since one can inadvertently drag rather than click.

Kim, perhaps we need to walk through this with the UX team? Should we start a running list of things we want to consult with them about?

smurp commented 4 years ago

@SusanBrown I have just exposed a hidden setting Label Graphed Nodes which is the equivalent of the proposed setting which I was suggesting be called Everything in the graph should always be labelled. I was optimizing some code for performance and found this latent gem.