       (warn "attempting to remove unknown triple:" t)))
   (register-query!
     [_ q] (swap! queries assoc (raw-pattern q) q) q)
+  (unregister-query!
+    [_ q] (swap! queries dissoc (raw-pattern q) nil))
   (query-for-pattern
     [_ pattern] (@queries pattern)))
 

                 ::f/score-collect-fn (score-collect-min-signal-vals 3)})
          [s p o] pattern
          this (assoc _ :acc acc :result res)]
      (f/add-edge! g subj acc signal-index-select [0 s])
      (f/add-edge! g pred acc signal-index-select [1 p])
      (f/add-edge! g obj  acc signal-index-select [2 o])

  (add-triple! [_ t])
  (remove-triple! [_ t])
  (register-query! [_ q])
  (unregister-query! [_ q])
  (query-for-pattern [_ pattern]))

(defprotocol ITripleQuery
