Tôi cố gắng để tải các thư viện Clojure cho RDF clj-plaza trong Clojure REPL như vậy:Clojure: Không thực hiện phương pháp trong giao thức
user=> (use 'plaza.rdf.core)
nil
Tôi có một thư mục có tên plaza, và một thư mục con tên là rdf và tập tin core.clj có sẵn và theo như tôi có thể nói, Clojure REPL tải thư viện như nó cần.
Bây giờ, nếu tôi làm
user=> (alter-root-rdf-ns “http://www.example.org/”)
"http://www.example.org"
Và một lần nữa, như xa như tôi có thể nói với các thư viện core.clj được báo cáo như mong muốn. Bây giờ tôi làm
(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)
Tôi nhận được kết quả tương tự nếu tôi thử f.ex.
(make-triples [["http://triple1" "http://triple2" "http://triple3"]])
Trong mã nguồn (core.clj) có một phương pháp gọi là tải dòng trong giao thức RDFModel
(defprotocol RDFModel
"Operations for the manipulation of RDF"
....
(load-stream [model stream format] "Load triples from a stream")
....
Và tải dòng được thực hiện
(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)))
tôi có thể không thực sự dường như để xác định những gì là sai ở đây, trong mã nguồn nó tất cả dường như thêm lên.
Marczyk Tôi gặp vấn đề tương tự nhưng tôi nhận được "Không triển khai phương thức:: theo nghĩa đen của giao thức: # 'plaza.rdf.core/RDFNode được tìm thấy cho lớp: Từ khoá. Tôi yêu cầu cả hai plaza.rdf.implementations.sesame và plaza.rdf.implementations.jena. Tôi sẽ bắt đầu một câu hỏi khác nếu bạn cần thêm – aduric
@aduric: Dường như bạn đang sử dụng từ khóa ở đâu đó nơi một loại thực thi 'RDFNode' được mong đợi - có thể trong lệnh gọi đến' alter-root-model' hoặc 'with-model'? Nếu bạn có thể ' Tôi thấy một câu hỏi có vấn đề như vậy, tôi đoán một câu hỏi riêng biệt với nhiều chi tiết hơn sẽ hữu ích (NB. Tôi đã không xem clj-plaza trong một thời gian, vì vậy nếu có một số vấn đề thường gặp ở đây, tôi có thể thiếu nó.) –