mozilla / mentat

UNMAINTAINED A persistent, relational store inspired by Datomic and DataScript.
https://mozilla.github.io/mentat/
Apache License 2.0
1.65k stars 115 forks source link

lookup-ref syntax is different between Mentat and Datomic #812

Closed thomcc closed 6 years ago

thomcc commented 6 years ago

This doesn't seem to be documented anywhere (or maybe I'm misread the datomic docs?), but is probably worth mentioning somwhere.

According to https://docs.datomic.com/on-prem/identity.html and http://blog.datomic.com/2014/02/datomic-lookup-refs.html Datomic does them as [:namespace/attr value], whereas we do it as (lookup-ref :namespace/attr value).

I'm filing an issue rather than just updating https://github.com/mozilla/mentat/wiki/Differences-from-Datomic because i'm actually not 100% certain it's not me misreading the datomic docs, or failing to interpret what we do.

rnewman commented 6 years ago

666, #392. The use of (lookup-ref …) is to eliminate ambiguity, and that's discussed in those tickets. Datomic isn't very well documented, and implementing Mentat in Rust exposed a number of the ambiguities that Clojure glosses over.

thomcc commented 6 years ago

Yeah, I can see that it avoids some syntactic ambiguity. I've documented it on the wiki even though there's an issue open to fix it.