I have this "crazy idea" to implement simple in-node charts (mini-charts) into the workflow.
A very simple example would be a (user configurable) in-node progress bar chart for the whole workflow. If there were 100 loops and the current iteration was 50, then the node itself would be a progress bar that would display a rectangle that was 50% full. Right now I have to open up the results of the Loop Start, click on the Flow Variables tab, and quickly try and get a sense of how complete the workflow is before the next loop when the results reset and throws me back to the table view.
But another useful example would be to give me a health check on the looping workflow. Is the error that I'm trying to reduce each iteration going down? How many times did I generate an empty set of results? How are my results trending?
I can think of a couple of simple but useful mini-charts. A bar chart. A line chart. A pie chart. A gauge. A text box. A color changer. Unlike with node result tables, these mini-charts wouldn't reset each loop but would continue to show the output from the last iteration. I think the mini-charts could squeeze into the same sized square as ordinary KNIME nodes so wouldn't greatly change the overall user interface.
Has anybody else had this kind of idea?
I thought this was a great idea and I'm a little surprised nobody else has a similar requirement.
I would like to glace at the state of a long-running or finished workflow and immediately understand the health of the model and the accuracy of the results. Right now I have to hunt and peck like a chicken through each of the dozens of tables, flow variables, and views to understand whether the model was a success or failure. Mini-charts could give me the highlights and quickly point me to issues and the most interesting results.
Is this a feature that would be of interest to others? Could a humble developer like myself extend KNIME in this direction or would it first require the core team exposing a set of APIs?
You are definitely not the only one who likes to see how many iterations are done and how many there are still to go. This is something I'm absolutely supporting!
But your solution is easier said than done. You are right that it would be handy sometimes to get some information without finding the right node and then looking into the output table, or the flow variables or the view. But in most cases this is not the case. When creating a workflow I focus on having input-data, output-data, some parameters and nothing else. When I use an old workflow on new data I have the exploration nodes which I have to open anyways to get a good view of information and my test-nodes which tell me if my workflow is still applicable. And I don't know what kind of screen you have, but I can't imagine a chart, besides a progress bar, that actually fits into the size of a node.
About the progress of a workflow in form of a node. I'm quite sure that this would need a preparation in the core, but the biggest problem about it would be that nodes don't run equally fast. So all you could actually report would be "a nodes in the workflow are being executed, b are executed, c are idle, d failed, e total" or something like that. This could be an interesting little fact in the status bar I guess.
long story short: I support the wish for a progress information for loops, but the rest seems like interesting points, but rather hard to implement.
there is a loop progress information available if you go in KNIME to View -> Other and then type "Node Monitor". It will open a new sub-window in KNIME. If you then select the Loop-Start, you see what's going on.
Hope this helps,