Fork me on GitHub
#rdf
<
2023-10-07
>
Chip13:10:34

Are there situations in which a triple store with a reasoner is a much better datastore than Datomic with transaction or batch functions?

Chip13:10:35

Helping me make this question less naïve would also be appreciated.

quoll00:10:07

I’ve seen significantly better scalability from RDF stores, particularly loading large datasets. RDF stores seem to do especially well with analytics (ie load lots of data and query it). Also: • RDF is a standard data format. This lets us load data from other places, and even move data between stores (for instance, at work we use the same data in Neptune, GraphDB, and Stardog). While it’s possible to store transaction data in EDN, I can’t just pick up someone else’s EDN file and expect that I can transact it. • New properties (from foreign sources) cannot be transacted until they have been declared for Datomic. • General data structures (like lists or trees) are quite difficult in Datomic, and require https://youtu.be/8jXEqvTnOTg?si=RnL6zgHfMQ1sMwky. • Property paths are a very nice querying feature. Sure, they’re syntactic sugar, but for exploring data they’re invaluable. • OWL is extraordinarily powerful, and extremely useful for both constraining data and expanding on it. The only way to get anything similar elsewhere is with stored procedures, or Datomic’s rules+transaction functions. But none of that is declarative.

Chip03:10:39

Thank you very much.

wikipunk01:10:40

I use both :)

gratitude-thank-you 1
wikipunk02:10:46

IMO datomic is ideal for versioning RDF graphs

gratitude-thank-you 1
curtosis20:12:48

@U23DRD8FN how do you implement this using RDF and datomic together? seems like it would be a lot of duplicative work.

wikipunk20:12:14

I want an immutable database of all of the RDF I've asserted complete with full history to be able to reconstruct and audit those graphs later on. If you are using RDF triple stores for reasoning, provenance of the inferences is difficult without an immutable transaction log. It also has proven useful in adding a level of validation and consistency with the RDF, I've caught a lot of errors by first checking if I can transact RDF under a closed world assumption, and then when the data has been validated, insert that into the triple store. I think auditable reasoning at scale in a Datomic-like database would be a VERY valuable product. Until that product is available, I enjoy putting RDF graphs sources of truth in Datomic, and using other semantic products together.

curtosis20:12:37

ah, so you’re basically doing datomic as source-of-truth, which gets rendered into RDF for the downstream semantic interface

👍 1
curtosis17:12:51

makes a lot of sense!