Я пытаюсь загрузить библиотеку Clojure для RDF clj-plaza в REPL Clojure следующим образом:
user=> (use 'plaza.rdf.core)
nil
У меня есть папка с именем plaza и подпапка с именем rdf ифайл core.clj доступен, и, насколько я могу судить, Clojure REPL загружает библиотеку как следует.
Теперь, если я сделаю
user=> (alter-root-rdf-ns “http://www.example.org/”)
"http://www.example.org"
И снова, насколько ямогу сказать, что библиотека core.clj сообщает как следует.Теперь я делаю
(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)
Я получаю тот же результат, если я пытаюсь использовать f.ex.
(make-triples [["http://triple1" "http://triple2" "http://triple3"]])
В исходном коде (core.clj) есть метод, называемый load-stream, в протоколе RDFModel
(defprotocol RDFModel
"Operations for the manipulation of RDF"
....
(load-stream [model stream format] "Load triples from a stream")
....
И load-stream этореализовано
(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)))
Я не могу точно определить, что здесь не так, в исходном коде все это, кажется, складывается.