Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/manager/TaskTreeManager.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/manager/TaskTreeManager.java	(revision 1888)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/manager/TaskTreeManager.java	(revision 1889)
@@ -154,7 +154,28 @@
         finishSession();
         
-        Console.traceln(Level.INFO, "applying temporal relationship generation rules");
+        Console.traceln
+            (Level.INFO, "applying temporal relationship generation rules for detecting tasks");
         
-        ComponentManager.getTemporalRelationshipRuleManager().applyRules(sessions);
+        ComponentManager.getTemporalRelationshipRuleManager().applyTaskDetectionRule(sessions);
+
+        return taskFactory.createTaskModel(sessions);
+    }
+
+    /**
+     * <p>
+     * merges similar tasks in the given task model and returns a condensed task model
+     * </p>
+     * 
+     * @param inputModel the model with the tasks to be merged
+     * 
+     * @return as described
+     */
+    public synchronized ITaskModel mergeSimilarTasks(ITaskModel inputModel) {
+        Console.traceln
+            (Level.INFO, "applying temporal relationship generation rules for merging tasks");
+        
+        sessions = inputModel.getUserSessions();
+        
+        ComponentManager.getTemporalRelationshipRuleManager().applyTaskMergingRule(sessions);
 
         return taskFactory.createTaskModel(sessions);
Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TemporalRelationshipRuleManager.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TemporalRelationshipRuleManager.java	(revision 1888)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TemporalRelationshipRuleManager.java	(revision 1889)
@@ -183,8 +183,42 @@
      * </p>
      * 
-     * @param taskFactory  the task factory to be used for instantiating new tasks.
+     * @param sessions  the sessions to be processed
      */
     public void applyRules(List<IUserSession> sessions) {
         applyRules(sessionScopeRules, sessions, "");
+    }
+
+    /**
+     * <p>
+     * applies only the known rules for task detection, i.e., currently only the sequence for task
+     * detection rule
+     * </p>
+     * 
+     * @param sessions  the sessions to be processed
+     */
+    public void applyTaskDetectionRule(List<IUserSession> sessions) {
+        ISessionScopeRule[] rules = new ISessionScopeRule[] {
+            new SequenceForTaskDetectionRule
+                (TaskEquality.SEMANTICALLY_EQUAL, taskFactory, taskBuilder)
+        };
+        
+        applyRules(rules, sessions, "");
+    }
+
+    /**
+     * <p>
+     * applies only the known rules for task merging, i.e., currently only the condense similar task
+     * rule
+     * </p>
+     * 
+     * @param sessions  the sessions to be processed
+     */
+    public void applyTaskMergingRule(List<IUserSession> sessions) {
+        ISessionScopeRule[] rules = new ISessionScopeRule[] {
+            new CondenseSimilarTasksRule
+                (TaskEquality.SEMANTICALLY_EQUAL, taskFactory, taskBuilder)
+        };
+        
+        applyRules(rules, sessions, "");
     }
 
