        (.initialize))))
 
 (defn repo
+  "Given a sesame Store of some type, return a sesame SailRepository."
   ([] (repo (MemoryStore.)))
   ([store]
      (doto (SailRepository. store)
        (.initialize))))
 
-(defn load-rdf [connection file base-uri-str format]
+(defn load-rdf
+  "Loads the specified RDF file into the supplied repository.
+
+  Takes a String or File (specifying a path to an RDF file) a base-uri
+  String and an RDFFormat."
+  [connection file base-uri-str format]
   (.add connection (io/file file) base-uri-str format (into-array Resource [])))
 
 (defn- query-bindings->map [qbs]

       ;; them... otherwise.. ignore the graph param
       (pr/add this triples))))

(defn memory-store []
  (MemoryStore.))

(defn native-store
  ([datadir]
     (native-store (io/file datadir) "spoc,posc,cosp"))
  ([datadir indexes]
     (NativeStore. datadir indexes)))

(defn http-repo [repo-url]
  (doto (HTTPRepository. repo-url)
    (.initialize)))

(defn sparql-repo
  ([query-url]
     (doto (SPARQLRepository. query-url)
       (.initialize)))

                    (URIImpl. (.p is))
                    (->sesame-rdf-type (.o is)))))

(defn sesame-statement->IStatement
  "Convert a sesame Statement into a grafter Quad."
  [st]
  ;; TODO fix this to work properly with object & context.
  ;; context should return either nil or a URI
  ;; object should be converted to a clojure type.
