Index: /trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/CondenseSimilarTasksRuleTest.java
===================================================================
--- /trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/CondenseSimilarTasksRuleTest.java	(revision 1844)
+++ /trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/CondenseSimilarTasksRuleTest.java	(revision 1845)
@@ -30,10 +30,15 @@
             "UserSession {" +
             "  Sequence sequence1 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "    }" +
             "    Event selAction1 {}" +
             "    Event action3 {}" +
             "  }" +
             "  Sequence sequence2 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "      Event action1 {}" +
+            "    }" +
             "    Event selAction2 {}" +
             "    Event action3 {}" +
@@ -44,5 +49,7 @@
             "UserSession {" +
             "  Sequence sequence3 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "    }" +
             "    Selection sel1 {" +
             "      Event selAction1 {}" +
@@ -51,5 +58,8 @@
             "  }" +
             "  Sequence sequence3 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "      Event action1 {}" +
+            "    }" +
             "    Selection sel1 {" +
             "      Event selAction2 {}" +
@@ -335,4 +345,5 @@
             "      Event action1 {}" +
             "      Event action1 {}" +
+            "      Event action1 {}" +
             "    }" +
             "    Event action2 {}" +
@@ -351,4 +362,5 @@
             "  Sequence sequence4 {" +
             "    Iteration iter1 {" +
+            "      Event action1 {}" +
             "      Event action1 {}" +
             "      Event action1 {}" +
@@ -634,4 +646,8 @@
             "        Event action2 {}" +
             "      }" +
+            "      Sequence sequence2 {" +
+            "        Event action1 {}" +
+            "        Event action2 {}" +
+            "      }" +
             "    }" +
             "    Event action3 {}" +
@@ -657,4 +673,8 @@
             "          Event action2 {}" +
             "        }" +
+            "        Sequence sequence2 {" +
+            "          Event action1 {}" +
+            "          Event action2 {}" +
+            "        }" +
             "      }" +
             "      Event action3 {}" +
@@ -691,4 +711,8 @@
             "          Event action2 {}" +
             "        }" +
+            "        Sequence sequence2 {" +
+            "          Event action1 {}" +
+            "          Event action2 {}" +
+            "        }" +
             "      }" +
             "      Event action3 {}" +
@@ -714,4 +738,8 @@
             "      Sequence sequence1 {" +
             "        Iteration itSequence2 {" +
+            "          Sequence sequence2 {" +
+            "            Event action1 {}" +
+            "            Event action2 {}" +
+            "          }" +
             "          Sequence sequence2 {" +
             "            Event action1 {}" +
@@ -755,4 +783,8 @@
             "            Event action3 {}" +
             "          }" +
+            "          Sequence sequence3 {" +
+            "            Event action2 {}" +
+            "            Event action3 {}" +
+            "          }" +
             "        }" +
             "      }" +
@@ -784,4 +816,8 @@
             "          Event action1 {}" +
             "          Iteration itSequence3 {" +
+            "            Sequence sequence3 {" +
+            "              Event action2 {}" +
+            "              Event action3 {}" +
+            "            }" +
             "            Sequence sequence3 {" +
             "              Event action2 {}" +
@@ -1239,20 +1275,30 @@
             "UserSession {" +
             "  Sequence sequence1 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "    }" +
             "    Event selAction1 {}" +
             "    Event action2 {}" +
             "  }" +
             "  Sequence sequence2 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "      Event action1 {}" +
+            "    }" +
             "    Event selAction2 {}" +
             "    Event action2 {}" +
             "  }" +
             "  Sequence sequence3 {" +
-            "    Event action3 {}" +
+            "    Iteration it2 {" +
+            "      Event action3 {}" +
+            "      Event action3 {}" +
+            "    }" +
             "    Event selAction1 {}" +
             "    Event action4 {}" +
             "  }" +
             "  Sequence sequence4 {" +
-            "    Event action3 {}" +
+            "    Iteration it2 {" +
+            "      Event action3 {}" +
+            "    }" +
             "    Event selAction2 {}" +
             "    Event action4 {}" +
@@ -1263,5 +1309,7 @@
             "UserSession {" +
             "  Sequence sequence5 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "    }" +
             "    Selection sel1 {" +
             "      Event selAction1 {}" +
@@ -1270,5 +1318,8 @@
             "  }" +
             "  Sequence sequence5 {" +
-            "    Event action1 {}" +
+            "    Iteration it1 {" +
+            "      Event action1 {}" +
+            "      Event action1 {}" +
+            "    }" +
             "    Selection sel1 {" +
             "      Event selAction2 {}" +
@@ -1277,5 +1328,8 @@
             "  }" +
             "  Sequence sequence6 {" +
-            "    Event action3 {}" +
+            "    Iteration it2 {" +
+            "      Event action3 {}" +
+            "      Event action3 {}" +
+            "    }" +
             "    Selection sel1 {" +
             "      Event selAction1 {}" +
@@ -1284,5 +1338,7 @@
             "  }" +
             "  Sequence sequence6 {" +
-            "    Event action3 {}" +
+            "    Iteration it2 {" +
+            "      Event action3 {}" +
+            "    }" +
             "    Selection sel1 {" +
             "      Event selAction2 {}" +
@@ -1903,5 +1959,8 @@
             "  Sequence seq1 {" +
             "    Event action1 {}" +
-            "    Event action2 {}" +
+            "    Iteration it1 {" +
+            "      Event action2 {}" +
+            "      Event action2 {}" +
+            "    }" +
             "    Selection sel1 {" +
             "      Event action3 {}" +
@@ -1911,5 +1970,7 @@
             "  Sequence seq2 {" +
             "    Event action1 {}" +
-            "    Event action2 {}" +
+            "    Iteration it1 {" +
+            "      Event action2 {}" +
+            "    }" +
             "    Selection sel2 {" +
             "      Event action4 {}" +
@@ -1923,5 +1984,8 @@
             "  Sequence seq3 {" +
             "    Event action1 {}" +
-            "    Event action2 {}" +
+            "    Iteration it1 {" +
+            "      Event action2 {}" +
+            "      Event action2 {}" +
+            "    }" +
             "    Selection sel3 {" +
             "      Event action3 {}" +
@@ -1931,5 +1995,7 @@
             "  Sequence seq3 {" +
             "    Event action1 {}" +
-            "    Event action2 {}" +
+            "    Iteration it1 {" +
+            "      Event action2 {}" +
+            "    }" +
             "    Selection sel3 {" +
             "      Event action4 {}" +
Index: /trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleTest.java
===================================================================
--- /trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleTest.java	(revision 1844)
+++ /trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleTest.java	(revision 1845)
@@ -174,3 +174,388 @@
     }
 
+    /**
+     *
+     */
+    @Test
+    public void test_TaskDetection_03() throws Exception {
+        String input =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event noise1 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise2 {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event noise3 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise4 {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event noise5 {}" +
+            "}";
+
+        String output =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Sequence sequence1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event c {}" +
+            "  Event noise1 {}" +
+            "  Sequence sequence1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise2 {}" +
+            "  Sequence sequence2 {" +
+            "    Event b {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event noise3 {}" +
+            "  Sequence sequence1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise4 {}" +
+            "  Sequence sequence2 {" +
+            "    Event b {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event noise5 {}" +
+            "}";
+
+        applySessionScopeRule(SequenceForTaskDetectionRule.class, input, output);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_TaskDetection_04() throws Exception {
+        String input =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event noise1 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise2 {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event noise3 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise4 {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event noise5 {}" +
+            "}";
+
+        String output =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Sequence sequence1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event a {}" +
+            "  Event noise1 {}" +
+            "  Sequence sequence1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise2 {}" +
+            "  Sequence sequence2 {" +
+            "    Event b {}" +
+            "    Event a {}" +
+            "  }" +
+            "  Event noise3 {}" +
+            "  Sequence sequence1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise4 {}" +
+            "  Sequence sequence2 {" +
+            "    Event b {}" +
+            "    Event a {}" +
+            "  }" +
+            "  Event noise5 {}" +
+            "}";
+
+        applySessionScopeRule(SequenceForTaskDetectionRule.class, input, output);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_TaskDetection_05() throws Exception {
+        String input =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event noise1 {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise2 {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event c {}" +
+            "  Event noise2 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise3 {}" +
+            "  Event a {}" +
+            "  Event c {}" +
+            "  Event noise4 {}" +
+            "  Event a {}" +
+            "  Event c {}" +
+            "}";
+
+        String output =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Sequence 1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event a {}" +
+            "  Event noise1 {}" +
+            "  Event b {}" +
+            "  Sequence 1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise2 {}" +
+            "  Event b {}" +
+            "  Sequence 2 {" +
+            "    Event a {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event noise2 {}" +
+            "  Sequence 1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise3 {}" +
+            "  Sequence 2 {" +
+            "    Event a {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event noise4 {}" +
+            "  Sequence 2 {" +
+            "    Event a {}" +
+            "    Event c {}" +
+            "  }" +
+            "}";
+
+        applySessionScopeRule(SequenceForTaskDetectionRule.class, input, output);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_TaskDetection_06() throws Exception {
+        String input =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event noise1 {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise2 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event a {}" +
+            "}";
+
+        String output =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Sequence 1 {" +
+            "    Sequence 2 {" +
+            "      Event a {}" +
+            "      Event b {}" +
+            "    }" +
+            "    Event a {}" +
+            "  }" +
+            "  Event noise1 {}" +
+            "  Event b {}" +
+            "  Sequence 2 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise2 {}" +
+            "  Sequence 1 {" +
+            "    Sequence 2 {" +
+            "      Event a {}" +
+            "      Event b {}" +
+            "    }" +
+            "    Event a {}" +
+            "  }" +
+            "}";
+
+        applySessionScopeRule(SequenceForTaskDetectionRule.class, input, output);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_TaskDetection_07() throws Exception {
+        String input =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event noise1 {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event a {}" +
+            "  Event noise2 {}" +
+            "  Event c {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "}";
+
+        String output =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Event a {}" +
+            "  Sequence 1 {" +
+            "    Event b {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event noise1 {}" +
+            "  Sequence 1 {" +
+            "    Event b {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event a {}" +
+            "  Event noise2 {}" +
+            "  Event c {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "}";
+
+        applySessionScopeRule(SequenceForTaskDetectionRule.class, input, output);
+    }
+
+    /**
+     *
+     */
+    @Test
+    public void test_TaskDetection_08() throws Exception {
+        String input =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event noise1 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event d {}" +
+            "  Event noise2 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event e {}" +
+            "  Event noise3 {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event d {}" +
+            "  Event noise4 {}" +
+            "  Event b {}" +
+            "  Event d {}" +
+            "  Event e {}" +
+            "  Event noise5 {}" +
+            "  Event b {}" +
+            "  Event d {}" +
+            "  Event f {}" +
+            "  Event noise6 {}" +
+            "  Event a {}" +
+            "  Event b {}" +
+            "  Event noise7 {}" +
+            "  Event b {}" +
+            "  Event c {}" +
+            "  Event noise8 {}" +
+            "  Event b {}" +
+            "  Event d {}" +
+            "  Event noise9 {}" +
+            "}";
+
+        String output =
+            "UserSession {" +
+            "  Event noise0 {}" +
+            "  Sequence 1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event c {}" +
+            "  Event noise1 {}" +
+            "  Sequence 1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event d {}" +
+            "  Event noise2 {}" +
+            "  Sequence 1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event e {}" +
+            "  Event noise3 {}" +
+            "  Sequence 2 {" +
+            "    Event b {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event d {}" +
+            "  Event noise4 {}" +
+            "  Sequence 3 {" +
+            "    Event b {}" +
+            "    Event d {}" +
+            "  }" +
+            "  Event e {}" +
+            "  Event noise5 {}" +
+            "  Sequence 3 {" +
+            "    Event b {}" +
+            "    Event d {}" +
+            "  }" +
+            "  Event f {}" +
+            "  Event noise6 {}" +
+            "  Sequence 1 {" +
+            "    Event a {}" +
+            "    Event b {}" +
+            "  }" +
+            "  Event noise7 {}" +
+            "  Sequence 2 {" +
+            "    Event b {}" +
+            "    Event c {}" +
+            "  }" +
+            "  Event noise8 {}" +
+            "  Sequence 3 {" +
+            "    Event b {}" +
+            "    Event d {}" +
+            "  }" +
+            "  Event noise9 {}" +
+            "}";
+
+        applySessionScopeRule(SequenceForTaskDetectionRule.class, input, output);
+    }
 }
