 ;;  => #<Graph 6d863860-723d-1195-8101-7831c1bbb832 (1 triples)>
 ;;  => #<Graph 6d863860-723d-1195-8101-7831c1bbb832 (1 triples)>
 ;;  => #<Graph 6d863860-723d-1195-8101-7831c1bbb832 (1 triples)>
+
+(defmacro with-context [designator & body]
+  `(binding [*context* (intern-graph (graph ~designator))]
+     ~@body))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

     (-> (->Graph (uuid/the-uuid id) {} tuples)
       (add-index s p o)
       (add-index p o s)
       (add-index o s p)
       )))


(defprotocol GraphBuilder

;; specific Graph implementation.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defn supplied-constituents [g subj pred obj] 
  (vec (conj (for [c [subj pred obj]]
               (not (nil? c)))
         (class g))))

(defmulti query supplied-constituents)

