Clojure: there is no method implementation in the protocol

I am trying to load the Clojure library for clf-plaza RDF into the Clojure REPL, for example:

user=> (use 'plaza.rdf.core)
nil

I have a folder named plaza and a subfolder named rdf and a core.clj file, and as far as I can tell, Clojure REPL loads the library the way it should.

Now if i do

user=> (alter-root-rdf-ns "http://www.example.org/")
"http://www.example.org"

And again, as far as I can tell, the core.clj library reports, as you would expect. Now i do

(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)

I get the same result if I try f.ex.

(make-triples [["http://triple1" "http://triple2" "http://triple3"]])

In the source code (core.clj) there is a load-stream method in the RDFModel protocol

(defprotocol RDFModel
  "Operations for the manipulation of RDF"
  ....
  (load-stream [model stream format] "Load triples from a stream")
  ....

And the download stream is implemented

(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)))

In fact, I can’t determine exactly what is wrong here, in the source code it all seems to add up.

+5
2

(defn document-to-model ...) load-stream; document-to-model, load-stream , - *rdf-model* - , RDFModel ( ).

clj-plaza RDFModel plaza.rdf.implementations.sesame (. (deftype SesameModel ..., 218 ) plaza.rdf.implementations.jena (. (deftype JenaModel ..., 167). require - , ; *rdf-model* .

+3

(require... is (init-jena-framework) (init-sesame-framework).

+1

All Articles