! Definition:\\ Diaflux is a graphical workflow authoring plugin for KnowWE. It is used to model complex problems in an easy to read and understand fashion. ! Syntax and Semantic:\\ An Diaflux workflow is defined inside the markup __DiaFlux__ Example: %%DiaFlux <flowchart fcid="flow_7184e213" name="ExampleWorkFlow" icon="sanduhr.gif" width="750" height="500" autostart="false" idCounter="23"> <!-- nodes of the flowchart --> <node fcid="#node_2"> <position left="57" top="44"></position> <start>start</start> </node> <node fcid="#node_3"> <position left="591" top="379"></position> <exit>exit</exit> </node> <node fcid="#node_5"> <position left="231" top="59"></position> <decision>"ambient_temperature"</decision> </node> <node fcid="#node_6"> <position left="317" top="157"></position> <action markup="KnOffice">"warm" = P7</action> </node> <node fcid="#node_9"> <position left="196" top="157"></position> <action markup="KnOffice">"cold" = P7</action> </node> <node fcid="#node_11"> <position left="572" top="157"></position> <action markup="KnOffice">"just_fine" = P7</action> </node> <node fcid="#node_16"> <position left="473" top="368"></position> <action markup="KnOffice">"just_fine" = N7</action> </node> <node fcid="#node_18"> <position left="504" top="267"></position> <action markup="KnOffice">"warm" = N7</action> </node> <node fcid="#node_19"> <position left="619" top="268"></position> <action markup="KnOffice">"cold" = N7</action> </node> <!-- rules of the flowchart --> <edge fcid="#rule_7"> <origin>#node_2</origin> <target>#node_5</target> </edge> <edge fcid="#rule_8"> <origin>#node_5</origin> <target>#node_6</target> <guard markup="KnOffice">"ambient_temperature" > 25</guard> </edge> <edge fcid="#rule_10"> <origin>#node_5</origin> <target>#node_9</target> <guard markup="KnOffice">"ambient_temperature" < 25</guard> </edge> <edge fcid="#rule_12"> <origin>#node_5</origin> <target>#node_11</target> <guard markup="KnOffice">"ambient_temperature" = 25</guard> <routingPoint x="0.9747292418772563" y="0" /> </edge> <edge fcid="#rule_15"> <origin>#node_6</origin> <target>#node_16</target> <routingPoint x="0" y="0.86" /> </edge> <edge fcid="#rule_14"> <origin>#node_9</origin> <target>#node_16</target> <routingPoint x="0" y="1" /> </edge> <edge fcid="#rule_17"> <origin>#node_16</origin> <target>#node_3</target> </edge> <edge fcid="#rule_20"> <origin>#node_11</origin> <target>#node_18</target> </edge> <edge fcid="#rule_21"> <origin>#node_11</origin> <target>#node_19</target> </edge> <edge fcid="#rule_22"> <origin>#node_19</origin> <target>#node_3</target> </edge> <edge fcid="#rule_23"> <origin>#node_18</origin> <target>#node_3</target> </edge> </flowchart> @package: DiafluxExample % ! Diaflux elements The Diaflux workflow may be edited using the __Visual Editor__. [{Image src='visual_editor.jpg' width='222' height='99' align='left' }]\\ [{Image src='visual_editor_edit_nodes.jpg' width='540' height='303' align='left' }]\\ * Start node: entry point for a DiaFlux\\ * Exit node: exit point of a DiaFlux\\ * Action node: select a question or solution here and model an interaction with this node.\\ * Comment node: use this node to provide annotations to transitions or nodes.\\ * SnapShot node: used to inhibit the truth maintainance to reverse decisions before this snapshot. (Behaves like a diode.)\\ !Graphical tools:\\ * Increase height of diagram\\ * Decrease height of diagram\\ * Increase width of diagram\\ * Decrease width of diagram\\ !Editor tools:\\ * Save flowchart and close editor\\ * Revert changes\\ * Close editor without saving\\ * Delete flowchart\\ !! Best Practices\\ * A Diaflux shall have a unique name.\\ * One Diaflux needs to be checked for Autostart. (That is where a session workflow will start.)\\ * Do not overload a single DiaFlux. Model rather small parts and reference them in a superior DiaFlux-Diagram.\\ Rule of thumb: Not more than a monitors field of view. %%collapsebox %%knowledgebase DiafluxExample @comment: a simple example @filename: knowledgebase.d3web @version: 0.01 @uses: DiafluxExample /% %%Question input - user_inputs -- ambient_temperature [num] {DEGREES_C} @package: DiafluxExample % %%Solution output - system_output -- warm -- cold -- just_fine @package: DiafluxExample % %%