!!! Tutorial Printer Problem - DiaFlux

DiaFlux models are an intuitive implementation of flowchart knowledge. 
That way, the dialog behavior as well as the derivation behavior is modeled as a flowchart, where nodes correspond to questions to be asked and solutions to be derived. 
Edges between two nodes describe a dependency, e.g., the subsequent questioning in a dialog or the subsequent derivation of a solution.
DiaFlux models are usually partitioned in small models that can call each other in order to describe a complex model.

!! Handling Connection Problems

A new DiaFlux model is created by inserting the following (empty) markup into the wiki article.

{{{
%%DiaFlux   
%
}}}

After saving the article, KnowWE provides a link to visually edit the empty model.
When clicking the link, a new window with a visual editor is opened.
In the editor, you can drag an drop questions from the left menu pane into the editor panel. 
Please insert a start and a stop node (from the toolbar) into the flowchart first.
Then we open the hierarchy ''Connection Questions'' from the entry ''Tutorial Printer Problems'' in the left menu.
We drag the questions from the left hierarchy into the editor pane and connect the nodes.
Please insert ''Connection Flow'' into the text field as the name of the flowchart. 
After saving the editor the flowchart looks as depicted in the image below.

[{Image src='DiaFlux Printer Connection.png' width='800' align='left' caption='The DiaFlux flow implementing possible connection problems of a printer.' }]
\\
\\

Below, the original DiaFlux knowledge is shown.

%%DiaFlux
<flowchart fcid="flow_2ef698e4" name="Connection Flow" icon="sanduhr.gif" width="750" height="500" autostart="false" idCounter="24">

	<!-- nodes of the flowchart -->
	<node fcid="#node_2">
		<position left="144" top="13"></position>
		<start>Start</start>
	</node>

	<node fcid="#node_3">
		<position left="601" top="470"></position>
		<exit>Exit</exit>
	</node>

	<node fcid="#node_4">
		<position left="74" top="95"></position>
		<action markup="KnOffice">Please check the power supply of the printer</action>
	</node>

	<node fcid="#node_5">
		<position left="74" top="181"></position>
		<action markup="KnOffice">How is the printer connected to your computer</action>
	</node>

	<node fcid="#node_6">
		<position left="570" top="107"></position>
		<action markup="KnOffice">"No power supply" = P7</action>
	</node>

	<node fcid="#node_10">
		<position left="74" top="269"></position>
		<action markup="KnOffice">Is the cable plugged into the printer and the computer</action>
	</node>

	<node fcid="#node_12">
		<position left="74" top="357"></position>
		<action markup="KnOffice">Please exchange the cable and try to print again</action>
	</node>

	<node fcid="#node_14">
		<position left="436" top="368"></position>
		<action markup="KnOffice">"Broken cable" = P7</action>
	</node>

	<node fcid="#node_17">
		<position left="429" top="273"></position>
		<action markup="KnOffice">"Cable not connected" = P7</action>
	</node>

	<node fcid="#node_20">
		<position left="429" top="188"></position>
		<action markup="KnOffice">"No solution found" = P7</action>
	</node>


	<!-- rules of the flowchart -->
	<edge fcid="#rule_7">
		<origin>#node_4</origin>
		<target>#node_6</target>
		<guard markup="KnOffice">"Please check the power supply of the printer" = "Printer is not connected or power is off"</guard>
	</edge>

	<edge fcid="#rule_8">
		<origin>#node_6</origin>
		<target>#node_3</target>
		<routingPoint x="0" y="0.9778481012658228" />
	</edge>

	<edge fcid="#rule_9">
		<origin>#node_4</origin>
		<target>#node_5</target>
		<guard markup="KnOffice">"Please check the power supply of the printer" = "Printer is connected and power is on"</guard>
	</edge>

	<edge fcid="#rule_11">
		<origin>#node_5</origin>
		<target>#node_10</target>
		<guard markup="KnOffice">"How is the printer connected to your computer" = "Connected by cable"</guard>
	</edge>

	<edge fcid="#rule_13">
		<origin>#node_10</origin>
		<target>#node_12</target>
		<guard markup="KnOffice">"Is the cable plugged into the printer and the computer" = "Yes"</guard>
	</edge>

	<edge fcid="#rule_15">
		<origin>#node_12</origin>
		<target>#node_14</target>
		<guard markup="KnOffice">"Please exchange the cable and try to print again" = "Now it works"</guard>
	</edge>

	<edge fcid="#rule_16">
		<origin>#node_14</origin>
		<target>#node_3</target>
	</edge>

	<edge fcid="#rule_18">
		<origin>#node_10</origin>
		<target>#node_17</target>
		<guard markup="KnOffice">"Is the cable plugged into the printer and the computer" = "No"</guard>
	</edge>

	<edge fcid="#rule_19">
		<origin>#node_17</origin>
		<target>#node_3</target>
		<routingPoint x="0.7307692307692307" y="0.489247311827957" />
	</edge>

	<edge fcid="#rule_21">
		<origin>#node_5</origin>
		<target>#node_20</target>
		<guard markup="KnOffice">"How is the printer connected to your computer" = "Connected by Wifi"</guard>
	</edge>

	<edge fcid="#rule_22">
		<origin>#node_20</origin>
		<target>#node_3</target>
		<routingPoint x="10" y="0.6531365313653137" />
	</edge>

	<edge fcid="#rule_23">
		<origin>#node_12</origin>
		<target>#node_3</target>
		<guard markup="KnOffice">"Please exchange the cable and try to print again" = "Stil not printing"</guard>
		<routingPoint x="-7" y="1" />
	</edge>

	<edge fcid="#rule_24">
		<origin>#node_2</origin>
		<target>#node_4</target>
	</edge>

</flowchart>
 
  
%


!! Handling Quality Problems

%%todo DiaFlux for printer problems tutorial @user: joba

!! Defining the Initial Questionnaire

We define the entry of the knowledge base, where the user is asked about the general problem with the printer.
A new DiaFlux model is created by inserting the following (empty) markup into the wiki article.

{{{
%%DiaFlux 
  
%
}}}

As depicted in the image below, we also marked this DiaFlux model as the ''Autostart'' mode, i.e., the model started at the beginning of a user dialog.


[{Image src='DiaFlux Printer Entry.png' width='800' align='left' caption='Definition of the entry flowchart of the Printer Problems knowledge base.' }]

We see, that the question ''Please specify your problem'' is asked at the beginning. 
Then, the questionnaire ''Connection Questions'' and ''Quality Questions'' is 


%%DiaFlux
<flowchart fcid="flow_b77240b2" name="Printer Problem Entry" icon="sanduhr.gif" width="750" height="541" autostart="true" idCounter="14">

	<!-- nodes of the flowchart -->
	<node fcid="#node_2">
		<position left="326" top="58"></position>
		<action markup="KnOffice">Please specify your problem</action>
	</node>

	<node fcid="#node_3">
		<position left="393" top="11"></position>
		<start>Start</start>
	</node>

	<node fcid="#node_5">
		<position left="82" top="179"></position>
		<action markup="KnOffice">Connection Questions</action>
	</node>

	<node fcid="#node_7">
		<position left="335" top="179"></position>
		<action markup="KnOffice">Quality Questions</action>
	</node>

	<node fcid="#node_9">
		<position left="540" top="179"></position>
		<action markup="KnOffice">"No solution found" = P7</action>
	</node>

	<node fcid="#node_11">
		<position left="369" top="304"></position>
		<exit>Exit</exit>
	</node>


	<!-- rules of the flowchart -->
	<edge fcid="#rule_4">
		<origin>#node_3</origin>
		<target>#node_2</target>
	</edge>

	<edge fcid="#rule_6">
		<origin>#node_2</origin>
		<target>#node_5</target>
		<guard markup="KnOffice">"Please specify your problem" = "Printer does not print"</guard>
		<routingPoint x="1" y="-11" />
		<routingPoint x="1" y="0" />
	</edge>

	<edge fcid="#rule_8">
		<origin>#node_2</origin>
		<target>#node_7</target>
		<guard markup="KnOffice">"Please specify your problem" = "Printing with bad quality"</guard>
		<routingPoint x="0.9446640316205533" y="0" />
	</edge>

	<edge fcid="#rule_10">
		<origin>#node_2</origin>
		<target>#node_9</target>
		<guard markup="KnOffice">"Please specify your problem" = "No else"</guard>
		<routingPoint x="62" y="0" />
	</edge>

	<edge fcid="#rule_12">
		<origin>#node_7</origin>
		<target>#node_11</target>
	</edge>

	<edge fcid="#rule_13">
		<origin>#node_9</origin>
		<target>#node_11</target>
	</edge>

	<edge fcid="#rule_14">
		<origin>#node_5</origin>
		<target>#node_11</target>
		<routingPoint x="0" y="0.8514851485148515" />
	</edge>

</flowchart>
 
  
%

%%Package Printer_Demo