Orange Forum • View topic - saving widget parameters when saving canvas workspace

saving widget parameters when saving canvas workspace

A place to ask questions about methods in Orange and how they are used and other general support.

saving widget parameters when saving canvas workspace

Postby johnz » Wed Sep 11, 2013 20:33

I am using the Orange GUI (2.7) for the Mac.

When I save the canvas GUI workspace, File -> Save As.., a description of the workspace is saved as an .ows file.

I can load the .ows file, File -> Open FIle, and the layout of the workspace is reconstructed.
All the widget icons are in the right position with the right labels, and right connectors.
But the parameters in the widgets are missing.

I looked in the .ows file and there is a place to put widget parameters, but the user inputed values did not get saved. I have specifically verified the missing parameters for the widgets OWSelectData, OWScatterPlot, OWFeatureConstructor.

1) Is there a way save the widget parameters along with their canvas position?
2) Is this a feature/bug of these specific widgets?
3) or is there a design issue, since the possible values of the selectors in these widgets depend on the attributes found in the upstream data, which will not be known until the file widget reinserts the data into the processing pipeline?

Re: saving widget parameters when saving canvas workspace

Postby johnz » Thu Sep 12, 2013 17:23

The inability to save widget parameters seems to be part of a much bigger problem with the design of widgets and "signal propagation" between them.

The current scheme works if you add widgets down stream of a processing chain of widgets
Widgets uses the input data to populate their selectors which is pretty cool.

But if upstream widgets change the form of the data table, then the downstream widget parameter selections are lost. This was pointed out over a year ago as "fragile widget settings" viewtopic.php?f=4&t=1572

Another thread on this problem is canvas support for "batch processing", which also has problems with data changes. viewtopic.php?f=4&t=1891&p=5499&hilit=batch#p5499

In which, Ales said "I think it would be better to design and add proper support for batch processing to the signal propagation code"

So the saving parameters problem seems to be interacting with other issues associated with batch processing.

The canvas is such a neat concept, but I need to be able to save the analysis and reuse it on another data set.

What is the process of getting canvas support for repeatable or batch processing added to the Road Map? There are some long outstanding bugs concerning this issue, such as http://orange.biolab.si/trac/ticket/634

Re: saving widget parameters when saving canvas workspace

Postby Ales » Fri Sep 13, 2013 11:31

johnz wrote:I looked in the .ows file and there is a place to put widget parameters, but the user inputed values did not get saved. I have specifically verified the missing parameters for the widgets OWSelectData, OWScatterPlot, OWFeatureConstructor.

1) Is there a way save the widget parameters along with their canvas position?
2) Is this a feature/bug of these specific widgets?
3) or is there a design issue, since the possible values of the selectors in these widgets depend on the attributes found in the upstream data, which will not be known until the file widget reinserts the data into the processing pipeline?
Can you make sure you are using the latest version of Orange (go to menu Orange->About Orange, the version should be 2.7.2-...). If not please download the latest release from the Downloads page.

In the initial 2.7 releases some of the session settings were not stored in the .ows files, and I suspect this is the cause of your problems. In the current version the settings for the mentioned widgets should be restored on a reload (if not this should be considered a bug).

Re: saving widget parameters when saving canvas workspace

Postby johnz » Fri Sep 20, 2013 16:32

Thanks. Upgrading to 2.7.2 worked!
Workspaces can be saved and loaded.
When the workspace is loaded, the upstream prototype CSV module must press "send" to recalculate all the downstream modules.

Module parameters are still sensitive to upstream manipulation, but that is a topic for a different thread.


Return to Questions & Support



cron