 
 (defn ^:export start-sync
   []
-  (let [;;log (triple-logger "triple-log.edn")
+  (let [;;log (add-triple-graph-logger "triple-log.edn")
         ;;g (triple-graph (f/logged-compute-graph (f/compute-graph) log))
         g (triple-graph (f/compute-graph))
+        log (add-triple-graph-logger g #(spit "triple-log.edn" (str (pr-str %) "\n") :append true))
         toxi (:result (add-query! g :toxi ['toxi nil nil]))
         types (:result (add-query! g :types [nil 'type nil]))
         projects (:result (add-query! g :projects [nil 'type 'project]))

             [toxi knows noah]
             [geom tag clojure]
             [fabric tag clojure]])
          (loop []
            (let [res (<! ctx-chan)]
              (warn :result res)
              (when (= :converged (:type res))
                (warn :all (sort @all))
                (warn :pq @pq)
                (warn :jq @jq)
                (warn :tq @tq)
                (f/stop! ctx)
                (recur))))))

    {:g        g
     :ctx      ctx

    (assoc q-spec :qvar-result resv)))

(defn score-collect-join
  [vertex]
  (let [state @(:state vertex)]
    (if (and (seq (::f/uncollected state)) (== (count (::f/signal-map @(:state vertex))) 2)) 1 0)))

(defn add-join!
  [g qa qb]
