While sitting in a activity-pub workshop ... does anybody know a clojure based activity-pub implementation?
I looked at implementing the ld spec described algorithms in clojure at one point. The description of the algorithms were extremely imperative when I looked at them, constantly mutating maps, and pretty much assumed you were writing javascript
https://json-ld.org/spec/ED/json-ld-api/20121225/#context-processing kind of thing
@jerger_at_dda Are we talking about this? https://github.com/BasixKOR/awesome-activitypub ? I can't see how spec will help with implementing a Protocal, spec helps validate clojure data.... Skimming this https://www.w3.org/TR/activitypub/ makes me think that all this protocal is just like a recommendation on how label your data so other actors can try to read it? Which other actors? Why would i want to send them messages?
Maybe this would be better as a general #clojure or #find-my-lib q?
the reason to ask here was that I would expect spec to be the foundation. But I will try your suggestions 🙂
Yes, you found the intended activity pub :-) Activity pub's data-structures are described by linked data = LD (a global way to describe data structures // labels but also composition & validity). Spec is deep inspired by LD, so their concepts maps perfectly together. That's the reason why I expect spec will play a relevant part in a clojure adaption of activity pub. The value add of LD is to describe data in case of integration between systems. You can describe data in many other ways ... but I know no other way integrating more or better - so LDs value is that your not forced to invent an other (imperfect) way to express your integrated data structures. ActivityPub adds a way to consume and publish data in a asynchronous and only temporarily connected world. So your systems avail. is not bound strictly to the availability of the systems integrated by yours. That's not trivial to implement ...