<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Drools_Stavanger</id>
	<title>Drools Stavanger - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Drools_Stavanger"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_Stavanger&amp;action=history"/>
	<updated>2026-04-24T10:12:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Drools_Stavanger&amp;diff=56460&amp;oldid=prev</id>
		<title>79.161.211.54: /* dsl */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Drools_Stavanger&amp;diff=56460&amp;oldid=prev"/>
		<updated>2017-06-15T12:49:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;dsl&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!--&lt;br /&gt;
[[Category:private]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=Basic=&lt;br /&gt;
==EX1==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 1&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
	$s : Salgrade()&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($s.grade + &amp;quot; &amp;quot; + $s.losal + &amp;quot; &amp;quot; + $s.hisal)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX2==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 2&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
  e : Emp(sal &amp;gt; 1000, sal &amp;lt;2000)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println(&lt;br /&gt;
       e.id + &amp;quot; &amp;quot; + &lt;br /&gt;
       e.name + &amp;quot;\t&amp;quot; + &lt;br /&gt;
       e.job + &amp;quot;   \t&amp;quot; +&lt;br /&gt;
       e.mgr  + &amp;quot;\t&amp;quot; +&lt;br /&gt;
       e.hiredate + &amp;quot; &amp;quot; + &lt;br /&gt;
       e.sal + &amp;quot; &amp;quot; + &lt;br /&gt;
       e.deptno );&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX3==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 3&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp($e.job == &amp;quot;CLERK&amp;quot;, $e.deptno  == 20)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.sal)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX4==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 4&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp($e.mgr != 0)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.sal)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX5==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 5&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp($e.job == &amp;quot;MANAGER&amp;quot;)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.sal*12)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX6==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 6&amp;quot;&lt;br /&gt;
enabled true&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp(Name matches &amp;quot;.LA.*&amp;quot;)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.id + &amp;quot; &amp;quot; + $e.name + &amp;quot; &amp;quot; + $e.job + &amp;quot; &amp;quot; + $e.sal*12)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX7==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 7&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
 $e: Emp (Name matches &amp;quot;.*T.*N&amp;quot;)&lt;br /&gt;
then&lt;br /&gt;
 System.out.println($e.name);&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX8==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 8&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
 $e : Emp((job == &amp;quot;MANAGER&amp;quot; &amp;amp;&amp;amp; deptno != 10) || (job != &amp;quot;MANAGER&amp;quot; &amp;amp;&amp;amp; deptno == 10)) &lt;br /&gt;
then    &lt;br /&gt;
  System.out.println($e.id + &amp;quot; &amp;quot; + $e.name+ &amp;quot; &amp;quot; + $e.job+ &amp;quot; &amp;quot; + $e.deptno)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Advanced=&lt;br /&gt;
==EX31==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 31&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp()&lt;br /&gt;
	$d : Dept($e.deptno == deptno)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.name + &amp;quot; &amp;quot; + $d.loc)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX32==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 32&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp()&lt;br /&gt;
	$d : Dept($e.deptno == deptno)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.name + &amp;quot; &amp;quot; + $d.dname+ &amp;quot; &amp;quot; + $d.deptno)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX33==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 33&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp()&lt;br /&gt;
	$s : Salgrade($e.sal &amp;lt;= hisal, $e.sal &amp;gt;= losal, $e.sal &amp;gt; 2000)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.name + &amp;quot; &amp;quot; + $e.sal+ &amp;quot; &amp;quot; + $s.grade)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX34==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 34&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when &lt;br /&gt;
	$e : Emp()&lt;br /&gt;
	$d : Dept($e.deptno == deptno, loc == &amp;quot;LONDON&amp;quot;)&lt;br /&gt;
then    &lt;br /&gt;
	System.out.println($e.name + &amp;quot; &amp;quot; + $d.loc)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX35==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 35&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
 d: Dept (dn: deptno, l:loc != &amp;quot;LONDON&amp;quot;)&lt;br /&gt;
 e: Emp (deptno == d.deptno, s: sal) &lt;br /&gt;
 Salgrade( losal &amp;lt;= s, hisal &amp;gt;= s, sg: grade)&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println(e.name + &amp;quot;\t&amp;quot;+ l + &amp;quot;\t&amp;quot; + sg)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX36==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 36&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when&lt;br /&gt;
 $de : Dept ()&lt;br /&gt;
 not ( Emp (deptno == $de.deptno) )&lt;br /&gt;
then&lt;br /&gt;
 System.out.println ( $de.dname )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX37==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 37&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when&lt;br /&gt;
 $e1 : Emp ( $ma : mgr)&lt;br /&gt;
 $e2 : Emp ( $ma == id )&lt;br /&gt;
then&lt;br /&gt;
 System.out.println ( $e1.name + &amp;quot;&amp;#039;s Boss is &amp;quot; + $e2.name)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX38==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 38&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when&lt;br /&gt;
 $e : Emp ( $n : name , mgr == 0 )&lt;br /&gt;
then&lt;br /&gt;
 System.out.println ( $n )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 38&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   $e :Emp()&lt;br /&gt;
   not (Emp(id == $e.mgr))&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println( $e.name)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX39==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 39&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when&lt;br /&gt;
 $e : Emp ()&lt;br /&gt;
 not ( Emp ( mgr == $e.id) )&lt;br /&gt;
then&lt;br /&gt;
 System.out.println ( $e.name )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX41==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 41&amp;quot;&lt;br /&gt;
enabled false&lt;br /&gt;
when&lt;br /&gt;
 $e1 : Emp ()&lt;br /&gt;
 $e2 : Emp ( $e1.mgr == id , $e1.hiredate &amp;lt; hiredate )&lt;br /&gt;
then&lt;br /&gt;
 System.out.println ( $e1.name + &amp;quot; was hired in &amp;quot; + $e1.hiredate + &amp;quot;, her boss &amp;quot; + $e2.name + &amp;quot; who was hired in &amp;quot; + $e2.hiredate )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX44==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 44&amp;quot;&lt;br /&gt;
&lt;br /&gt;
when&lt;br /&gt;
 $e : Emp ( deptno == 10 )&lt;br /&gt;
 not ( Emp ( deptno == 20 , job == $e.job) )&lt;br /&gt;
then&lt;br /&gt;
 System.out.println ( &amp;quot;Position in Department 10 and not in Department 20 is &amp;quot; + $e.job )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX23==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 23&amp;quot;&lt;br /&gt;
//enabled false&lt;br /&gt;
when &lt;br /&gt;
  accumulate (e :Emp(hiredate == 1981), &lt;br /&gt;
  	$avg : average(e.sal),&lt;br /&gt;
  	$min : min(e.sal),&lt;br /&gt;
  	$max : max(e.sal)&lt;br /&gt;
  	) &lt;br /&gt;
 &lt;br /&gt;
then    &lt;br /&gt;
	 System.out.println(&lt;br /&gt;
   &amp;quot;Average salary: &amp;quot; + $avg + &amp;quot;\n&amp;quot; +&lt;br /&gt;
  &amp;quot;Min salary: &amp;quot; + $min + &amp;quot;\n&amp;quot; +&lt;br /&gt;
  &amp;quot;Max salary: &amp;quot; + $max + &amp;quot;\n&amp;quot;&lt;br /&gt;
  )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX24==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 24 Adv&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
 accumulate (e: Emp(), min : min(e.sal), max : max(e.sal)) &lt;br /&gt;
then    &lt;br /&gt;
  System.out.println(&amp;quot;Difference: &amp;quot; + (max - min))&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX26==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Exercise 26&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
 accumulate ( e: Emp(job == &amp;quot;MANAGER&amp;quot;), c: count() )&lt;br /&gt;
then    &lt;br /&gt;
  System.out.println(&amp;quot;There are &amp;quot; + c + &amp;quot; Managers&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX25==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX27==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
declare SalByDept&lt;br /&gt;
   dept : int&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Exercise 27&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
   Emp(dn : deptno) and&lt;br /&gt;
   not SalByDept(dept == dn)&lt;br /&gt;
   accumulate (e :Emp(deptno ==dn), 	$avg : average(e.sal*12)  ) &lt;br /&gt;
then    &lt;br /&gt;
   System.out.println(   &amp;quot;Average salary in department &amp;quot; + dn + &amp;quot; is: &amp;quot; + $avg + &amp;quot;&amp;quot; )&lt;br /&gt;
   insert(new SalByDept(dn))&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==EX43==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX28==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX45==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX46==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX51==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==EX55==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=inserLogical=&lt;br /&gt;
==rule==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
import com.nobleprog.FactModel.*&lt;br /&gt;
dialect &amp;quot;mvel&amp;quot; &lt;br /&gt;
&lt;br /&gt;
declare AccessToSecretFile&lt;br /&gt;
    emp : Emp&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Grant access to employees of Dept. 10&amp;quot;&lt;br /&gt;
when &lt;br /&gt;
    e : Emp( deptno == 10 )&lt;br /&gt;
then    &lt;br /&gt;
    insertLogical( new AccessToSecretFile(e) )&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==jUnit==&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Emp $blair = new Emp(7698, &amp;quot;BLAIR&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839, 1981, 2850, 10);&lt;br /&gt;
FactHandle $blairFH = ksession.insert($blair);&lt;br /&gt;
&lt;br /&gt;
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger((KnowledgeRuntimeEventManager) ksession, &amp;quot;/tmp/logicalinsert_exercise&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
ksession.fireAllRules();&lt;br /&gt;
$blair.setDeptno(30);&lt;br /&gt;
ksession.update($blairFH, $blair);&lt;br /&gt;
ksession.fireAllRules();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=DSL=&lt;br /&gt;
==Exercise 1==&lt;br /&gt;
===dslr===&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
package rules1&lt;br /&gt;
import com.nobleprog.FactModel.*;&lt;br /&gt;
import java.lang.Math&lt;br /&gt;
dialect &amp;quot;mvel&amp;quot; &lt;br /&gt;
&lt;br /&gt;
expander  Exercise01.dsl&lt;br /&gt;
&lt;br /&gt;
rule &amp;quot;Rule 1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
when&lt;br /&gt;
 There are employees earning more than 2000&lt;br /&gt;
then&lt;br /&gt;
 Show name and salary&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===dsl===&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[condition][]There are employees earning more than {salary}=e:Emp(sal &amp;gt; {salary})&lt;br /&gt;
[*][]Show name and salary=System.out.println(&amp;quot;Name: &amp;quot; + e.name + &amp;quot; Salary: &amp;quot; + e.sal)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercise 2==&lt;br /&gt;
===dslr===&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Rule 2&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
 There is a department which&lt;br /&gt;
	- is located in LONDON&lt;br /&gt;
	- department number is greater than 5&lt;br /&gt;
then&lt;br /&gt;
 	Show department name&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===dsl===&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[condition][]There is a department which=d: Dept()&lt;br /&gt;
[condition][]- is located in {location}=loc == &amp;quot;{location}&amp;quot;&lt;br /&gt;
[condition][]- department number is greater than {nr}=deptno &amp;gt; {nr}&lt;br /&gt;
[consequence][]Show department name=System.out.println(d.dname)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exercise 3==&lt;br /&gt;
===dslr===&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
rule &amp;quot;Rule 3&amp;quot;&lt;br /&gt;
when&lt;br /&gt;
// Make sure that the rule will work for both cases&lt;br /&gt;
 There are departments where:&lt;br /&gt;
//  There is a department where:&lt;br /&gt;
	there are managers working in &lt;br /&gt;
	//also there is an anlyst working in it&lt;br /&gt;
then&lt;br /&gt;
 Show department name&lt;br /&gt;
 &lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===dsl===&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[Condition][]There are departments where:= d: Dept()&lt;br /&gt;
[Condition][]There is a department where:= d: Dept()&lt;br /&gt;
[Condition][]there are {job}s working in = Emp (job == &amp;quot;{job!uc}&amp;quot;, deptno==d.deptno)&lt;br /&gt;
[Condition][]also there is an {job} working in it = Emp (job == &amp;quot;{job!uc}&amp;quot;, deptno==d.deptno)&lt;br /&gt;
[Consequence][]Show department name= System.out.println(d.dname)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>79.161.211.54</name></author>
	</entry>
</feed>