Hm, I am looking at a number of datalog options other than Datomic and they seem to be mostly focused on the normal query syntax (not the pull syntax that is used by EQL). Is there a library or something that is capable of transforming EQL to datalog queries?
https://opencrux.com/reference/queries.html#eql-projection Maybe this can help
so crux can do it, as long as I generate the query for the root….
I think of pathom as an alternative to needing to write pull syntax queries yourself - it handles the nested traversal. If you need inspiration, here's a sample repo: https://github.com/souenzzo/graph-demo that being said, I do have a few use cases using crux where I need to use pull queries (using recursion), for that you can use client libraries like this: https://github.com/dvingo/my-clj-utils/blob/master/src/main/dv/crux_pull.clj
@danvingo the new crux alpha eql/project
is not sufficient for you?
doesn't support recursion
recursion's coming in the upcoming release :) personally I'm leery about using entities instead of logical ID values as edges, so I can't use project/pull. Not sure if that's going to pay off but keeping the data model separate from the operational model seems prima facie prudent
there's some other pull feature not available yet as well as recursion: https://github.com/juxt/crux/issues/1220 I don't understand. Where do you see entities being used as edges?
the eql join requires that the value of the attribute you're joining on is a crux.db/id of some other doc
ah I see - yes I agree. I have currently landed on using idents for all refs within crux [:user/id #uuid ".."]
but the user doc would have the crux.db/id
of just the uuid so I also can't use project because of that currently.
See #announcements for a few release-related things.
This https://github.com/replikativ/datahike-frontend reportedly combines Fulcro and Datahike but not sure how relevant it is
I’ll take a look thanks