     {"1" (spout-spec reaction-spout)}
     ; Bolts:
     {"2" (bolt-spec {"1"  ["conv-id"]}
-                    rating-matrix
-                    :p 1)
+                    rating-matrix)
+     "3" (bolt-spec {"2" ["conv-id"]}
+                    ptpt-pca)
      }))
 
 

      (ack [id]))))


(defbolt rating-matrix ["conv-id" "rating-matrix"] {:prepare true}
  [conf context collector]
  (let [data (atom {})
        ; This is a function which we can call as a transaction to update our data atom
        update-data (fn [data conv-id reaction]
                      (let [rating-matrix (or (get data conv-id) (->RatingMatrix [] [] [[]]))
                            rating-matrix (update-rating-matrix rating-matrix [reaction])]
                        (assoc data conv-id rating-matrix)))]
    (bolt (execute [tuple]


(defspout reaction-spout ["conv-id" "reaction"] {:prepare true}
  [conf context collector]
  (let [n-convs 3
        start-n 3
        reaction-gen (atom (make-reaction-gen n-convs start-n))]
