@quoll With regards to Raphael: a few weeks ago I mentioned to you that some tools aren't as strict with the grammar. One notable tool is TopBraid Composer (for SHACL), which seems to blank nodes like this:
[
sh:path ex:name ;
sh:datatype xsd:int ; # <- this semicolon is invalid and Raphael rightfully chokes on it
]
Even though Raphael is more correct, is it possible to configure it to be lenient with regards to this? Given how many parsers allow it, and some tools export their Turtle like this? Do you think that would be a worthy pragmatic addition to the library?Yup, it would be. It’s actually easier, because it’s not based on a compiler generator. I was wondering about things like that, but for now I’ve opted to be “correct”. Could you maybe add the ticket please? 🙂
Right now I’m filling in a test suite for Donatello 1.0.0. I’ll pick this up as soon as I’m done
Really happy about the way that’s come together. Having the pair of these projects together will be nice
Reeaally cool! 😄 What's next, a linter called Splinter? 😉
I see where you’re going, but I’m trying to stick to Turtle names (ideally from stories): So far I have: Myrtle, Yertle, Donatello, Raphael, Michelangelo, Leonardo, and A’Tuin
Haha I noticed that. I wasn't being serious, just couldn't resist 😄
It would have to be a really big project if I were to adopt the name “A’Tuin”. That’s a name that says, “This project is a big deal”
I like the challenge of starting with the name, only to come up with an ambitious enough project to label it with
The illegal character flexibility is now checked in and released 🙂
welp, I think I’m talking myself into adapting @eric.d.scott’s ont-app for #xtdb 😛
Cool! Let me know if I can clarify anything. I will be travelling this week, so I might be out off line for hours at a time.
It’s not on my critical path, so it may be a slow trickle. OTOH, it’s intentionally datomic-similar in syntax so there’s a lot there to borrow from.
Sadly it's been a while since I've looked in on the datalog-based implemenations. Now I have an incentive to bump that up in my to-do's
though to be fair I’m also thinking about an asami Storage adapter … many roads to :Rome, as they say.
Asami is on my to-do list as well.
Always happy to discuss it with people
It’s not perfect, but it has a lot of room for growth
I recently discovered Redis persistence, and that has increased my need to create that adapter
OSS Redis persistence options are of limited use for primary storage (without a WAL somewhere else), but AWS look to have done a really nice job on durability for https://aws.amazon.com/memorydb/ which is RESP-compatible with a multi-AZ transaction log - I haven't tried it personally yet though.
I just started using dragonfly as a drop in for a project I inherited. Haven’t played with the persistence options yet.
> OSS Redis persistence options are of limited use for primary storage (without a WAL somewhere else) I really don’t think that would matter for Asami
Basically, because there is no “update in place”, and it handles its own synching
Ah sorry I meant more fundamentally that OSS Redis' out-of-the-box persistence is not particularly suitable for primary storage of data (e.g. with strong durability and synchronous HA replicas). That's my impression having read around it before and looking again through https://stackoverflow.com/questions/71196514/redis-ha-setup-aof-issue-with-replicas / https://stackoverflow.com/questions/57349100/redis-synchronous-replication-failure-scenarios / https://redis.io/docs/management/persistence/#:~:text=With%20the%20default%20policy%20of%20fsync%20every%20second%2C%20write%20performance%20is%20still%20great.%20fsync%20is%20performed%20using%20a%20background%20thread%20and%20the%20main%20thread%20will%20try%20hard%20to%20perform%20writes%20when%20no%20fsync%20is%20in%20progress%2C%20so%20you%20can%20only%20lose%20one%20second%20worth%20of%20writes.