Fork me on GitHub
#off-topic
<
2019-05-03
>
lilactown04:05:33

what’s the deal with RDF

lilactown04:05:39

why do people use it/not use it

chi06:05:04

hey, i make a hackathon for my group on game theory/coding, can i post it here?

Denis G08:05:03

Didn't read the Cassandra paper yet, but just wanna ask if anybody knows, how Cassandra routing is performed AFAIU, Cassandra is a DHT. But there are different DHT routing strategies, e.g. storing O(logN) state and achieve O(logN) hops max to reach a node In Cassandra it is not done this way, right? It is still not centralized therefore there should be routing involved. How exactly is it performed?

Denis G08:05:42

Consistent Hashing is clear. But this is about key partitioning, and is not related to routing

Denis G08:05:56

reading now the SO link

jumar08:05:04

Hash of the key determines which node it belongs to

jumar08:05:28

so it is related to routing

Denis G08:05:41

not really. E.g. hash(key) = 10 nodes = (3, 14, 33, 45) ring = 0, 63 If for the query I ask node 33 (because I only know this node, I am connected to it via driver, etc.) how does it route me to the node 14 which is responsible for the key?

Denis G08:05:17

in Chord it is done via finger table which stores the successors with exponential distance e.g. node_id + 2^i for i in range(m)

Denis G08:05:53

I see, according to SO, every node has info about every node, or almost every node

Denis G08:05:11

Any videos you would advise?

borkdude09:05:55

@lilactown RDF is used in several domains where linked data is important. It’s a standard. E.g. in medical domains it’s used a lot: https://id.nlm.nih.gov/mesh/

borkdude09:05:44

DBPedia is an example of a crowd-sourced body of linked data https://wiki.dbpedia.org/about

Daniel Hines13:05:23

https://drevidence.com/ is a Clojure project doing really cool things with NLP and RDF to help patients navigate academic research journals.

Daniel Hines13:05:45

(at least, I know part of its in Clojure)

Daniel Hines13:05:36

And many Clojure projects seem to carry on the spirit of RDF, if not the name. Datomic cites RDF as prior art.

lilactown13:05:30

neat! I have a use-case where I started researching URI/URN and all of the surrounding stuff around it, and ran across RDF which I remembered being cited by Rich/Datomic/etc.

lilactown14:05:48

my specific use case is I have a named resource that I need to resolve to an actual location, and I want that location to be configured by some other party. I was thinking I could use a URI/URN-like schema: and hand that to a service which might respond with or might respond with a next discovery://....

lilactown14:05:57

it sounds like RDF is way more dynamic than I need it to be

benoit14:05:02

I see a RDF document as a little database of facts that uses URI to identify entities. The advantage over other formats like XML is that it's a bit easier to group multiple documents together. You still have to provide a semantic mapping between the RDF classes in your different documents but once it is done, you can use the same query language to query across several documents.

lilactown14:05:33

I keep thinking that something to do with clojure.spec + nav + RDF is going to be cool, I just don't know what for 😛

benoit14:05:12

The holy-grail of distributed computing: dynamic orchestration of services 🙂 That would allow scaling without having developers wiring services manually everywhere.

benoit14:05:10

@lilactown The HTTP protocol and URIs should support your use case. I don't know the details of your scenario but you can just create URIs and return a 301, 303, 307 HTTP redirect to another URI or a URL.

lilactown14:05:14

I’m kind of going back and forth on whether to use URIs or not. URIs on their face seem so simple and easy, but I worry about the fact that it’s difficult to encode additional context in them

lilactown14:05:54

at some point it becomes an order-dependent, un keyed blob

dkrieger15:05:59

GET parameters cover the non-hierarchical parts of a URI, no? And @me1740 isn't that the goal of Kubernetes and Knative?

benoit15:05:16

I meant "semantic orchestration". Specify what services you need and have the platform dynamically find them.

Vincent Cantin15:05:27

Today I had to program in JS for the full day. It fells like breaking up with the one you love: it’s not there anymore yet still omnipresent. My muscle memory remembers Clojure at unexpected places: - I start function calls by typing ( then I pause to think. - I write my objects with :foo as json keys. - I forget the , in my array literals. - I want to add ? at the end of Array.isArray.

akiroz16:05:59

I know that feel man..... 😢

dkrieger16:05:40

I did 2/4 of those on a js code challenge yesterday. It begs the question: is there a clojure library for generating code in other languages? It seems like any lisp would be particularly well suited to the task.

Vincent Cantin16:05:34

There is the clojurescript’s compiler

dkrieger16:05:56

right but that treats the target language as an assembler, it's not really the most readable output. it would be cool to have a library where you specify maps from clojure syntax to the target language, then a macro works its magic.

dkrieger16:05:31

could be used to generate golang source for example, using go generate

lilactown16:05:31

I had this same exact experience, so I decided to try rewriting clojure.core in JS :rolling_on_the_floor_laughing:

richiardiandrea16:05:35

Oh nooo I will be doing Java for a bit and cannot really tolerate the idea yet lol

Vincent Cantin16:05:41

@lilactown let us know if you publish it

john18:05:29

Proposal: port CLJS to MAL (https://github.com/kanaka/mal) Why? Because MAL compiles to 75 backend languages, extending Clojure's reach

😮 12
john18:05:42

Not sure how hard that'd be though

john18:05:21

Plus, when those langs get ported to WASM, we'll be able to offload work to isolates hosting any of those runtimes - choosing those that best fit (semantics and libraries) for the given workload

andy.fingerhut18:05:17

Isn't MAL 75 different implementations of a subset of Lisp targeting different host languages, each with their own unique differences, intended for beginners at language implementation wanting to learn how?

hiredman18:05:00

for a lisp with a philosphy of embracing the host, targeting something that abstracts over multiple hosts, but doesn't provide much in of itself seems like maybe a misstep

john18:05:04

It certainly wouldn't be the most performant target, initially, I'm sure

hiredman18:05:58

embracing the host isn't just a performance thing

hiredman18:05:24

there is no one size fits all for interacting with the native type systems for all the mal backends

john18:05:48

right. And memory management would be drastically different

john18:05:33

MAL doesn't have much of an interop story AFAIAA, but it seems like that could be added and it seems orthogonal whether the core clojure semantics could sit within MAL's semantics. And incompatible interop between backends would be similar to the situation we have today with CLJ/CLJS

Daniel Hines19:05:01

It seems like perfecting Clojure on Graal would be a more fruitful endeavor, no? That would provide industrial-strength language interop.

Eccentric J20:05:50

Boot’s been doing some cool stuff with Graal recently, I’m really excited about that.

Eccentric J22:05:14

Any functional programming or Clojure podcasts someone could recommend? I realized I would like to be drinking more of the kool-aid.

Daniel Hines22:05:16

defn radio is fun

alexmiller22:05:34

Stuart Sierras new podcast No Manifestos is good

Eccentric J22:05:57

I’ll give each a shot, thanks