Fork me on GitHub

welcome Abdullah 👋


i just know about Crux, is it supposed to be a free alternative to Datomic?


there is something i'm thinking about i would like to share here with the developers of Crux, is it possible to add sparql engine to execute sparql queries?


i guess that will be a good win for Crux


the short answer is that 'Crux is an open-source, bitemporal, unbundled database that you can query using Datalog syntax' 🙂 'bitemporal' because you've got the option to edit the past as and when new information becomes available - you can ask both 'what do we know about the status of <x> at the start of the year?' (including later updates) and 'what did we know about <x> at that time?' (excluding updates, for audit purposes) 'unbundled' because we give users the choice of what underlying technologies to use - the transaction log, for example, can live on Kafka, in a JDBC database, or in memory; the indices can live in RocksDB or other kv-stores - we take advantage of their performance and reliability characteristics. best to have a look at the architecture diagram on for this one re SPARQL - we do have some alpha-level support for SPARQL queries in the crux-rdf module, which translates a subset of SPARQL into Crux's datalog - would be interested to hear your ideas 🙂


for definition of bitemporal you mean i can use it as timeseries db ?


at the moment we support point-in-time queries, but we're looking into how best to extend this to timeseries queries


so i can only save the value with only one point-in-time ?


you can get the history of a single entity through time, certainly - what we don't yet support is being able to see the results of a query through time (without querying at each individual point in time)

🎉 1

what is possible here is : x is_a 2 at 1/1/2020 x is_a 3 at 2/1/2020 x is_a 4 at 3/1/2020


subject is x , predicate is is_a, and the object is the multiple values so what i can achieve is save multiple values of object in time


is that possible ?


but only one object value should be active, and all other will be defined as history values of x in time


yep, that's correct


@jarohen thank you so much 🙂


you're welcome 🙂