Below we have depicted the steps that are taken in evaluating a
goal such as the one above.
\setlength{\unitlength}{0.01cm}
\nop{
)
}
\hspace{1.0cm}
\begin{tabular}[t]{|p{ 2.3cm}|p{ 2.3cm}|p{ 2.3cm}|p{ 2.3cm}|} \hline
\begin{picture}(286,275)(0,0)
\put(132,200){\makebox(0,0)[r]{\footnotesize } }
\put(198,200){\makebox(0,0)[l]{ \footnotesize G } }
\put(132,200){\circle{10}}
\put(198,200){\circle*{10}}
\put(132, 210){\line(0,6){ 50}}
\multiput( 142,200)(10,0){ 6}{\line(6,0){5}}
\end{picture}
&
\begin{picture}(286,275)(0,0)
\put(132,200){\makebox(0,0)[r]{\footnotesize } }
\put(132,150){\makebox(0,0)[r]{\footnotesize A } }
\put(198,200){\makebox(0,0)[l]{ \footnotesize G } }
\put(132,150){\circle{10}}
\put(132,200){\circle{10}}
\put(198,200){\circle*{10}}
\put(132, 210){\line(0,6){ 50}}
\put(132, 160){\line(0,6){ 30}}
\multiput( 142,200)(10,0){ 6}{\line(6,0){5}}
\multiput(198, 140)(0, 20){ 3}{\line(0,-6){10}}
\end{picture}
&
\begin{picture}(286,275)(0,0)
\put(132,200){\makebox(0,0)[r]{\footnotesize } }
\put(132,150){\makebox(0,0)[r]{\footnotesize A } }
\put(132,75){\makebox(0,0)[r]{\footnotesize } }
\put(198,200){\makebox(0,0)[l]{ \footnotesize G } }
\put(132,75){\circle{10}}
\put(132,150){\circle{10}}
\put(132,200){\circle{10}}
\put(198,200){\circle*{10}}
\put(132, 210){\line(0,6){ 50}}
\put(132, 85){\line(0,6){ 55}}
\put(132, 160){\line(0,6){ 30}}
\multiput(198, 85)(0, 20){ 6}{\line(0,6){10}}
\multiput( 142,200)(10,0){ 6}{\line(6,0){5}}
\end{picture}
&
\begin{picture}(286,275)(0,0)
\put(132,200){\makebox(0,0)[r]{\footnotesize } }
\put(132,150){\makebox(0,0)[r]{\footnotesize A } }
\put(132,75){\makebox(0,0)[r]{\footnotesize } }
\put(198,75){\makebox(0,0)[l]{ \footnotesize } }
\put(198,200){\makebox(0,0)[l]{ \footnotesize G } }
\put(132,75){\circle{10}}
\put(132,150){\circle{10}}
\put(132,200){\circle{10}}
\put(198,75){\circle{10}}
\put(198,200){\circle*{10}}
\put(132, 210){\line(0,6){ 50}}
\put(132, 65){\line(0,-6){25}}
\put(132, 85){\line(0,6){ 55}}
\put(132, 160){\line(0,6){ 30}}
\multiput(198, 85)(0, 20){ 6}{\line(0,6){10}}
\multiput( 142,75)(10,0){ 6}{\line(6,0){5}}
\put( 152,75){\vector(-4,0){ 20}}
\multiput( 142,200)(10,0){ 6}{\line(6,0){5}}
\end{picture}
\\ \hline
\nop{
\leftcomment{goal}
Q=O!G & A & Q? \\
\leftcomment{effect}
\small \sloppy G new process is created, \n
to evaluate the method call G.
& \small \sloppy During the remote evaluation of G
the goal A is evaluated by the process itself.
& \small \sloppy The results of evaluating A and G
are merged. Backtracking over the solutions for G may occur.
\\ \hline
}
\nop{
\it definition &
\multicolumn{3}{|l|}{\x G & B :- Q = self!G, B, Q? }
\\ \hline
}
\end{tabular}
When the call is accepted, a process for evaluating G
is created. The caller may proceed with the evaluation of A,
whereafter it must wait for an answer for G.
The resumption goal succeeds when the answer is received.