Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Last active April 10, 2018 11:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kenwebb/6263d4b5aeb32186affb04e2730e7344 to your computer and use it in GitHub Desktop.
Save kenwebb/6263d4b5aeb32186affb04e2730e7344 to your computer and use it in GitHub Desktop.
Orange data science software
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Tue Apr 10 2018 07:02:51 GMT-0400 (EDT)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Orange data science software
Description:
Url: http://www.primordion.com/Xholon/gwt/
InternalName: 6263d4b5aeb32186affb04e2730e7344
Keywords:
My Notes
--------
April 9, 2018
Orange saves projects in XML format.
I can drag the saved XML content into a running Xholon app, for example "Chameleon".
One goal of this Xholon workbook is to output the resulting Xholon content as a visualization, for example Graphviz.
References
----------
(1) https://orange.biolab.si/
(2) https://github.com/biolab/orange3
Orange is a component-based data mining software.
It includes a range of data visualization, exploration, preprocessing and modeling techniques.
It can be used through a nice and intuitive user interface or, for more advanced users, as a module for the Python programming language.
(3) https://docs.python.org/3.5/library/pickle.html
The pickle module implements binary protocols for serializing and de-serializing a Python object structure.
“Pickling” is the process whereby a Python object hierarchy is converted into a byte stream,
and “unpickling” is the inverse operation, whereby a byte stream (from a binary file or bytes-like object) is converted back into an object hierarchy.
]]></Notes>
<_-.XholonClass>
<PhysicalSystem/>
<!-- Orange XML node types -->
<scheme/>
<!-- nodes and node are already defined in the gexf mechanism
<nodes/>
<node/>
-->
<links/>
<links/>
<annotations/>
<thumbnail/>
<node_properties/>
<properties superClass="Attribute_String"/>
</_-.XholonClass>
<xholonClassDetails>
<link xhType="XhtypePureActiveObject"/>
</xholonClassDetails>
<PhysicalSystem>
<!-- This is a simple project that I created using Orange. This is exactly the format that Orange saved it in. -->
<scheme description="" title="April9_02" version="2.0">
<nodes>
<node id="0" name="File" position="(150, 150)" project_name="Orange3" qualified_name="Orange.widgets.data.owfile.OWFile" title="File" version="" />
<node id="1" name="Data Table" position="(330.0, 70.0)" project_name="Orange3" qualified_name="Orange.widgets.data.owtable.OWDataTable" title="Data Table" version="" />
<node id="2" name="Data Sampler" position="(348.0, 225.0)" project_name="Orange3" qualified_name="Orange.widgets.data.owdatasampler.OWDataSampler" title="Data Sampler" version="" />
<node id="3" name="Data Table" position="(556.0, 163.0)" project_name="Orange3" qualified_name="Orange.widgets.data.owtable.OWDataTable" title="Data Table (1)" version="" />
<node id="4" name="Data Table" position="(571.0, 305.0)" project_name="Orange3" qualified_name="Orange.widgets.data.owtable.OWDataTable" title="Data Table (2)" version="" />
</nodes>
<links>
<link enabled="true" id="0" sink_channel="Data" sink_node_id="1" source_channel="Data" source_node_id="0" />
<link enabled="true" id="1" sink_channel="Data" sink_node_id="2" source_channel="Data" source_node_id="0" />
<link enabled="true" id="2" sink_channel="Data" sink_node_id="3" source_channel="Data Sample" source_node_id="2" />
<link enabled="true" id="3" sink_channel="Data" sink_node_id="4" source_channel="Remaining Data" source_node_id="2" />
</links>
<annotations />
<thumbnail />
<node_properties>
<properties format="pickle" node_id="0">gAN9cQAoWBIAAABjb250cm9sQXJlYVZpc2libGVxAYhYDAAAAHJlY2VudF9wYXRoc3ECXXEDKGNP
cmFuZ2Uud2lkZ2V0cy51dGlscy5maWxlZGlhbG9ncwpSZWNlbnRQYXRoCnEEKYFxBX1xBihYBwAA
AGFic3BhdGhxB1hKAAAAL2hvbWUva2VuL2FuYWNvbmRhMy9saWIvcHl0aG9uMy42L3NpdGUtcGFj
a2FnZXMvT3JhbmdlL2RhdGFzZXRzL2xlbnNlcy50YWJxCFgGAAAAcHJlZml4cQlYDwAAAHNhbXBs
ZS1kYXRhc2V0c3EKWAcAAAByZWxwYXRocQtYCgAAAGxlbnNlcy50YWJxDFgFAAAAdGl0bGVxDVgA
AAAAcQ5YBQAAAHNoZWV0cQ9oDlgLAAAAZmlsZV9mb3JtYXRxEE51YmgEKYFxEX1xEihoB1hIAAAA
L2hvbWUva2VuL2FuYWNvbmRhMy9saWIvcHl0aG9uMy42L3NpdGUtcGFja2FnZXMvT3JhbmdlL2Rh
dGFzZXRzL2lyaXMudGFicRNoCWgKaAtYCAAAAGlyaXMudGFicRRoDWgOaA9oDmgQTnViZVgLAAAA
cmVjZW50X3VybHNxFV1xFlgTAAAAc2F2ZWRXaWRnZXRHZW9tZXRyeXEXQzIB2dDLAAIAAAAAARQA
AAAvAAACqwAAAe4AAAEUAAAAPQAAAqsAAAHuAAAAAAAAAAADwHEYWAsAAABzaGVldF9uYW1lc3EZ
fXEaWAYAAABzb3VyY2VxG0sAWAMAAAB1cmxxHGgOWA0AAABkb21haW5fZWRpdG9ycR19cR5YCwAA
AF9fdmVyc2lvbl9fcR9LAVgQAAAAY29udGV4dF9zZXR0aW5nc3EgXXEhKGNPcmFuZ2Uud2lkZ2V0
cy5zZXR0aW5ncwpDb250ZXh0CnEiKYFxI31xJChYBAAAAHRpbWVxJUdB1rLVQN5yTFgGAAAAdmFs
dWVzcSZ9cScoWAkAAAB2YXJpYWJsZXNxKF1xKVgJAAAAeGxzX3NoZWV0cSpoDkr/////hnEraB19
cSxoKF1xLShdcS4oWAMAAABhZ2VxL2NPcmFuZ2UuZGF0YS52YXJpYWJsZQpEaXNjcmV0ZVZhcmlh
YmxlCnEwSwBYIQAAAHByZS1wcmVzYnlvcGljLCBwcmVzYnlvcGljLCB5b3VuZ3ExiWVdcTIoWAwA
AABwcmVzY3JpcHRpb25xM2gwSwBYEwAAAGh5cGVybWV0cm9wZSwgbXlvcGVxNIllXXE1KFgKAAAA
YXN0aWdtYXRpY3E2aDBLAFgHAAAAbm8sIHllc3E3iWVdcTgoWAkAAAB0ZWFyX3JhdGVxOWgwSwBY
DwAAAG5vcm1hbCwgcmVkdWNlZHE6iWVdcTsoWAYAAABsZW5zZXNxPGgwSwFYEAAAAGhhcmQsIG5v
bmUsIHNvZnRxPYllZXNoH0sBdVgKAAAAYXR0cmlidXRlc3E+KGgvXXE/KFgOAAAAcHJlLXByZXNi
eW9waWNxQFgKAAAAcHJlc2J5b3BpY3FBWAUAAAB5b3VuZ3FCZYZxQ2gzXXFEKFgMAAAAaHlwZXJt
ZXRyb3BlcUVYBQAAAG15b3BlcUZlhnFHaDZdcUgoWAIAAABub3FJWAMAAAB5ZXNxSmWGcUtoOV1x
TChYBgAAAG5vcm1hbHFNWAcAAAByZWR1Y2VkcU5lhnFPdHFQWAUAAABtZXRhc3FRKVgKAAAAY2xh
c3NfdmFyc3FSaDxdcVMoWAQAAABoYXJkcVRYBAAAAG5vbmVxVVgEAAAAc29mdHFWZYZxV4VxWFgS
AAAAbW9kaWZpZWRfdmFyaWFibGVzcVldcVp1YmgiKYFxW31xXChoJUdB1rLVPFcDGmgmfXFdKGgo
XXFeaCpoDkr/////hnFfaB19cWBoKF1xYShdcWIoWAwAAABzZXBhbCBsZW5ndGhxY2NPcmFuZ2Uu
ZGF0YS52YXJpYWJsZQpDb250aW51b3VzVmFyaWFibGUKcWRLAGgOiGVdcWUoWAsAAABzZXBhbCB3
aWR0aHFmaGRLAGgOiGVdcWcoWAwAAABwZXRhbCBsZW5ndGhxaGhkSwBoDohlXXFpKFgLAAAAcGV0
YWwgd2lkdGhxamhkSwBoDohlXXFrKFgEAAAAaXJpc3FsaDBLAVgsAAAASXJpcy1zZXRvc2EsIEly
aXMtdmVyc2ljb2xvciwgSXJpcy12aXJnaW5pY2FxbYllZXNoH0sBdWg+KFgMAAAAc2VwYWwgbGVu
Z3RocW5LAoZxb1gLAAAAc2VwYWwgd2lkdGhxcEsChnFxWAwAAABwZXRhbCBsZW5ndGhxcksChnFz
WAsAAABwZXRhbCB3aWR0aHF0SwKGcXV0cXZoUSloUlgEAAAAaXJpc3F3XXF4KFgLAAAASXJpcy1z
ZXRvc2FxeVgPAAAASXJpcy12ZXJzaWNvbG9ycXpYDgAAAElyaXMtdmlyZ2luaWNhcXtlhnF8hXF9
aFldcX51YmV1Lg==
</properties>
<properties format="pickle" node_id="1">gAN9cQAoWAsAAABhdXRvX2NvbW1pdHEBiFgOAAAAY29sb3JfYnlfY2xhc3NxAohYEgAAAGNvbnRy
b2xBcmVhVmlzaWJsZXEDiFgOAAAAZGlzdF9jb2xvcl9SR0JxBChL3EvcS9xL/3RxBVgTAAAAc2F2
ZWRXaWRnZXRHZW9tZXRyeXEGQzIB2dDLAAIAAAAAAJYAAAA4AAADFQAAAa0AAACWAAAARgAAAxUA
AAGtAAAAAAAAAAADwHEHWAsAAABzZWxlY3Rfcm93c3EIiFgVAAAAc2hvd19hdHRyaWJ1dGVfbGFi
ZWxzcQmIWBIAAABzaG93X2Rpc3RyaWJ1dGlvbnNxColYCwAAAF9fdmVyc2lvbl9fcQtLAVgQAAAA
Y29udGV4dF9zZXR0aW5nc3EMXXENY09yYW5nZS53aWRnZXRzLnNldHRpbmdzCkNvbnRleHQKcQ4p
gXEPfXEQKFgEAAAAdGltZXERR0HWstVLAA9hWAYAAAB2YWx1ZXNxEn1xEyhYDQAAAHNlbGVjdGVk
X2NvbHNxFF1xFVgNAAAAc2VsZWN0ZWRfcm93c3EWXXEXaAtLAXVYCgAAAGF0dHJpYnV0ZXNxGH1x
GShYAwAAAGFnZXEaXXEbKFgOAAAAcHJlLXByZXNieW9waWNxHFgKAAAAcHJlc2J5b3BpY3EdWAUA
AAB5b3VuZ3EeZVgMAAAAcHJlc2NyaXB0aW9ucR9dcSAoWAwAAABoeXBlcm1ldHJvcGVxIVgFAAAA
bXlvcGVxImVYCgAAAGFzdGlnbWF0aWNxI11xJChYAgAAAG5vcSVYAwAAAHllc3EmZVgJAAAAdGVh
cl9yYXRlcSddcSgoWAYAAABub3JtYWxxKVgHAAAAcmVkdWNlZHEqZVgGAAAAbGVuc2VzcStdcSwo
WAQAAABoYXJkcS1YBAAAAG5vbmVxLlgEAAAAc29mdHEvZXVYBQAAAG1ldGFzcTB9cTF1YmF1Lg==
</properties>
<properties format="literal" node_id="2">{'controlAreaVisible': True, 'number_of_folds': 2, 'replacement': False, 'sampleSizeNumber': 10, 'sampleSizePercentage': 30, 'sampleSizeSqlPercentage': 0.1, 'sampleSizeSqlTime': 1, 'sampling_type': 1, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x02\x00\x00\x00\x00\x01\x86\x00\x00\x00\x11\x00\x00\x02%\x00\x00\x01\xd4\x00\x00\x01\x86\x00\x00\x00\x1f\x00\x00\x02%\x00\x00\x01\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x03\xc0', 'selectedFold': 1, 'sql_dl': False, 'stratify': False, 'use_seed': False, '__version__': 1}</properties>
<properties format="pickle" node_id="3">gAN9cQAoWAsAAABhdXRvX2NvbW1pdHEBiFgOAAAAY29sb3JfYnlfY2xhc3NxAohYEgAAAGNvbnRy
b2xBcmVhVmlzaWJsZXEDiFgOAAAAZGlzdF9jb2xvcl9SR0JxBChL3EvcS9xL/3RxBVgTAAAAc2F2
ZWRXaWRnZXRHZW9tZXRyeXEGQzIB2dDLAAIAAAAAAJYAAAA4AAADFQAAAa0AAACWAAAARgAAAxUA
AAGtAAAAAAAAAAADwHEHWAsAAABzZWxlY3Rfcm93c3EIiFgVAAAAc2hvd19hdHRyaWJ1dGVfbGFi
ZWxzcQmIWBIAAABzaG93X2Rpc3RyaWJ1dGlvbnNxColYCwAAAF9fdmVyc2lvbl9fcQtLAVgQAAAA
Y29udGV4dF9zZXR0aW5nc3EMXXENY09yYW5nZS53aWRnZXRzLnNldHRpbmdzCkNvbnRleHQKcQ4p
gXEPfXEQKFgEAAAAdGltZXERR0HWstVgk+KZWAYAAAB2YWx1ZXNxEn1xEyhYDQAAAHNlbGVjdGVk
X2NvbHNxFF1xFVgNAAAAc2VsZWN0ZWRfcm93c3EWXXEXaAtLAXVYCgAAAGF0dHJpYnV0ZXNxGH1x
GShYAwAAAGFnZXEaXXEbKFgOAAAAcHJlLXByZXNieW9waWNxHFgKAAAAcHJlc2J5b3BpY3EdWAUA
AAB5b3VuZ3EeZVgMAAAAcHJlc2NyaXB0aW9ucR9dcSAoWAwAAABoeXBlcm1ldHJvcGVxIVgFAAAA
bXlvcGVxImVYCgAAAGFzdGlnbWF0aWNxI11xJChYAgAAAG5vcSVYAwAAAHllc3EmZVgJAAAAdGVh
cl9yYXRlcSddcSgoWAYAAABub3JtYWxxKVgHAAAAcmVkdWNlZHEqZVgGAAAAbGVuc2VzcStdcSwo
WAQAAABoYXJkcS1YBAAAAG5vbmVxLlgEAAAAc29mdHEvZXVYBQAAAG1ldGFzcTB9cTF1YmF1Lg==
</properties>
<properties format="pickle" node_id="4">gAN9cQAoWAsAAABhdXRvX2NvbW1pdHEBiFgOAAAAY29sb3JfYnlfY2xhc3NxAohYEgAAAGNvbnRy
b2xBcmVhVmlzaWJsZXEDiFgOAAAAZGlzdF9jb2xvcl9SR0JxBChL3EvcS9xL/3RxBVgTAAAAc2F2
ZWRXaWRnZXRHZW9tZXRyeXEGQzIB2dDLAAIAAAAAAJYAAAA4AAADFQAAAa0AAACWAAAARgAAAxUA
AAGtAAAAAAAAAAADwHEHWAsAAABzZWxlY3Rfcm93c3EIiFgVAAAAc2hvd19hdHRyaWJ1dGVfbGFi
ZWxzcQmIWBIAAABzaG93X2Rpc3RyaWJ1dGlvbnNxColYCwAAAF9fdmVyc2lvbl9fcQtLAVgQAAAA
Y29udGV4dF9zZXR0aW5nc3EMXXENY09yYW5nZS53aWRnZXRzLnNldHRpbmdzCkNvbnRleHQKcQ4p
gXEPfXEQKFgEAAAAdGltZXERR0HWstV1RUApWAYAAAB2YWx1ZXNxEn1xEyhYDQAAAHNlbGVjdGVk
X2NvbHNxFF1xFVgNAAAAc2VsZWN0ZWRfcm93c3EWXXEXaAtLAXVYCgAAAGF0dHJpYnV0ZXNxGH1x
GShYAwAAAGFnZXEaXXEbKFgOAAAAcHJlLXByZXNieW9waWNxHFgKAAAAcHJlc2J5b3BpY3EdWAUA
AAB5b3VuZ3EeZVgMAAAAcHJlc2NyaXB0aW9ucR9dcSAoWAwAAABoeXBlcm1ldHJvcGVxIVgFAAAA
bXlvcGVxImVYCgAAAGFzdGlnbWF0aWNxI11xJChYAgAAAG5vcSVYAwAAAHllc3EmZVgJAAAAdGVh
cl9yYXRlcSddcSgoWAYAAABub3JtYWxxKVgHAAAAcmVkdWNlZHEqZVgGAAAAbGVuc2VzcStdcSwo
WAQAAABoYXJkcS1YBAAAAG5vbmVxLlgEAAAAc29mdHEvZXVYBQAAAG1ldGFzcTB9cTF1YmF1Lg==
</properties>
</node_properties>
</scheme>
</PhysicalSystem>
<nodesbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var me, beh = {
postConfigure: function() {
me = this.cnode.parent();
this.cnode.remove();
me.nodeArr = [];
var node = me.first();
while (node) {
//$wnd.console.log(node);
node.role(node.name);
node.name = function() {return this.xhc().name() + "_" + this.id();}
me.nodeArr.push(node);
node = node.next();
}
}
}
//# sourceURL=nodesbehavior.js
]]></nodesbehavior>
<linksbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var me, beh = {
postConfigure: function() {
me = this.cnode.parent();
this.cnode.remove();
var nodes = me.prev();
var firstNode = nodes.first()
var link = me.first();
while (link) {
//$wnd.console.log(link);
if (link.enabled) {
var sourceNode = nodes.nodeArr[link.source_node_id];
var sinkNode = nodes.nodeArr[link.sink_node_id];
//$wnd.console.log(sourceNode + " > " + sinkNode);
var sourceChannel = link.source_channel.replace(" ", "");
if (!sourceNode[sourceChannel]) {
sourceNode[sourceChannel] = [];
}
sourceNode[sourceChannel].push(sinkNode);
}
link = link.next();
}
delete nodes.nodeArr;
$wnd.xh.xport("_other,ChapNetwork", nodes, '{"showNetwork":true,"showTree":false,"maxTreeLevels":1,"width":"600px","height":"600px","nameTemplate":"R^^^^^","maxChars":-1,"linksLength":100,"showPortName":true,"nodesStyle":"dot","linksStyle":"arrow-end","stabilize":"false","jsLibName":"network-min"}');
$wnd.xh.xport("Graphviz", nodes, '{"gvFileExt":".gv","gvGraph":"digraph","layout":"dot","edgeOp":"->","gvCluster":"","shouldShowStateMachineEntities":false,"filter":"--Behavior,Script","nameTemplateNodeId":"^^^^i^","nameTemplateNodeLabel":"R^^^^^","shouldQuoteLabels":true,"shouldShowLinks":true,"shouldShowLinkLabels":true,"shouldSpecifyLayout":true,"maxLabelLen":-1,"shouldColor":true,"defaultNodeColor":"#f0f8ff","bgGraphColor":"white","shouldSpecifyShape":true,"shape":"box","shouldSpecifySize":true,"size":"20","shouldSpecifyFontname":true,"fontname":"Courier","shouldSpecifyArrowhead":true,"arrowhead":"vee","shouldSpecifyStylesheet":true,"stylesheet":"Xholon.css","shouldSpecifyRankdir":true,"rankdir":"LR","shouldDisplayGraph":true,"outputFormat":"svg"}');
me.remove();
}
}
//# sourceURL=linksbehavior.js
]]></linksbehavior>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg">
<g>
<title>scheme</title>
<rect id="PhysicalSystem/scheme" fill="#98FB98" height="50" width="50" x="25" y="0"/>
<g>
<title>nodes</title>
<rect id="PhysicalSystem/scheme/nodes" fill="#6AB06A" height="50" width="10" x="80" y="0"/>
</g>
</g>
</svg>
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient>
</XholonWorkbook>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment