title: Clojure: No implementation of method in protocol
body: <p>I am trying to load the Clojure library for RDF <a href="http://github.com/antoniogarrote/clj-plaza/" rel="noreferrer">clj-plaza</a> in Clojure REPL like so:</p>
  
  <pre><code>user=&gt; (use 'plaza.rdf.core)
  nil
  </code></pre>
  
  <p>I have a folder named plaza, and a subfolder named rdf and the file core.clj available and as far as I can tell, Clojure REPL loads the library as it should.</p>
  
  <p>Now, if I do</p>
  
  <pre><code>user=&gt; (alter-root-rdf-ns “http://www.example.org/”)
  "http://www.example.org"
  </code></pre>
  
  <p>And again, as far as I can tell the core.clj library is reporting as it should.
  Now I do</p>
  
  <pre><code>(def e (document-to-model “http://www.snee.com/rdf/elvisimp.rdf” :xml))
  java.lang.IllegalArgumentException: No implementation of method: :load-stream of protocol: #’plaza.rdf.core/RDFModel found for class: nil (NO_SOURCE_FILE:2)
  </code></pre>
  
  <p>I get the same result if I try f.ex. </p>
  
  <pre><code>(make-triples [["http://triple1" "http://triple2" "http://triple3"]])
  </code></pre>
  
  <p>In the source code <a href="http://github.com/antoniogarrote/clj-plaza/blob/master/src/plaza/rdf/core.clj" rel="noreferrer">(core.clj)</a> there is a method called load-stream in the protocol RDFModel</p>
  
  <pre><code>(defprotocol RDFModel
    "Operations for the manipulation of RDF"
    ....
    (load-stream [model stream format] "Load triples from a stream")
    ....
  </code></pre>
  
  <p>And load-stream is implemented</p>
  
  <pre><code>(defn document-to-model
    "Adds a set of triples read from a serialized document into a model"
    ([stream format]
      (load-stream *rdf-model* stream format)))
  </code></pre>
  
  <p>I can't really seem to pinpoint what is wrong here, in the source code it all seems to add up.</p>