Clojure: No implementation of method in protocol

bleakgadfly :

I am trying to load the Clojure library for RDF clj-plaza in Clojure REPL like so:

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

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.

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 is reporting as it should. 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 method called load-stream in the protocol RDFModel

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

And load-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)))

I can't really seem to pinpoint what is wrong here, in the source code it all seems to add up.

Michał Marczyk :

The (defn document-to-model ...) snippet does not implement load-stream; it implements a function called document-to-model which calls load-stream with a bunch of arguments, the first of which -- *rdf-model* -- needs to be of a type to which the RDFModel protocol has been extended (or which implements the protocol or the corresponding interface directly).

clj-plaza provides two implementations of RDFModel, in the namespaces plaza.rdf.implementations.sesame (see (deftype SesameModel ..., line 218 in the source) and plaza.rdf.implementations.jena (see (deftype JenaModel ..., line 167). require-ing them should be enough to pull in said implementations; then you can use them with *rdf-model*s of appropriate type.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

clojure: No implementation of method of protocol found for class

No implementation of method: :take! of protocol: #'clojure.core.async.impl.protocols/ReadPort found for class: clojure.core.async$chan

IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: clojure.lang.Symbol

Clojure - how to instrument another protocol in implementation

No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: java.lang.Character in leiningen project file

Is there a way to know that method is protocol implementation in Swift?

Swift protocol with generic method: invalid redeclaration of implementation

Calling protocol default implementation from regular method

method in protocol extension gets called instead of method implementation in View Controller

No implementation of method: :spec of protocol: #'schema.core/Schema

Clojure{Script} protocol naming

FIX protocol implementation

ObjC protocol Implementation in Swift

Implementation of lazy filter in clojure

Clojure - User implementation of Filter

Recursive implementation Or in Clojure

java.lang.IllegalArgumentException: No implementation of method: :route-matches of protocol: #'clout.core/Route

Always the default implementation of protocol gets called even after implementing the method in class extension in an XCTest file

which protocol defines conj in clojure?

Provide multiple implementations for a Clojure protocol

Swift - Default Implementation of protocol functions in another protocol

Swift: Providing a default protocol implementation in a protocol extension

Protocol function implementation without actually conforming to a protocol

Method implementation

override protocol extension default implementation

How to mock a generic implementation of a protocol?

The same protocol implementation in multiple classes

MANET Routing protocol implementation in INET

Proper implementation of Sequence Protocol in a Class

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  3. 3

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  4. 4

    pump.io port in URL

  5. 5

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    Do Idle Snowflake Connections Use Cloud Services Credits?

  9. 9

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

  10. 10

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  11. 11

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  12. 12

    Generate random UUIDv4 with Elm

  13. 13

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  14. 14

    Is it possible to Redo commits removed by GitHub Desktop's Undo on a Mac?

  15. 15

    flutter: dropdown item programmatically unselect problem

  16. 16

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  17. 17

    EXCEL: Find sum of values in one column with criteria from other column

  18. 18

    Pandas - check if dataframe has negative value in any column

  19. 19

    How to use merge windows unallocated space into Ubuntu using GParted?

  20. 20

    Make a B+ Tree concurrent thread safe

  21. 21

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

HotTag

Archive