qpdb / mentat

A persistent, relational store inspired by Datomic and DataScript.
https://mentat.rs/
Apache License 2.0
52 stars 2 forks source link

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

Open gburd opened 4 years ago

gburd commented 4 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.

Original by @thomcc

gburd commented 4 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.

Original by @rnewman

gburd commented 4 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.

Original by @thomcc