asami

quoll 2023-07-18T14:39:22.038289Z

OK, I have finally removed all lookahead from Raphael parsing. So I should have it in Asami soon. Between that, Donatello, and (hopefully soon) Twylite, it should be a full SPARQL database šŸ™‚

šŸŽ‰ 6
quoll 2023-07-18T14:39:42.723839Z

Just because Git looks quiet doesn’t mean I’ve forgotten, and that I haven’t been doing anything

šŸ™Œ 1
Jakub Holý (HolyJak) 2023-07-18T16:50:08.284209Z

I'd never suspect you from doing nothing šŸ˜…

😁 1
quoll 2023-07-18T16:51:02.091739Z

I want to do SO MUCH with this database. But right now, I think the best way to get there is to start using it at work. And that means RDF/SPARQL

🤩 2
quoll 2023-07-18T16:51:19.531349Z

Which is why I’ve had all that activity around Raphael/Donatello

quoll 2023-07-18T16:51:39.328759Z

Twylite has been a bit neglected. I need to do a lot there

quoll 2023-07-18T16:52:43.243329Z

But Raphael (the TTL parser) was originally written to parse strings. Sure, I can slurp in several GB and process that in memory, but that’s really not adequate. I need to process a stream.

quoll 2023-07-18T16:55:59.421229Z

But Raphael was cheating… it was passing along a string and offset to parse from. But occasionally, it would do a subs at that offset to do lookahead. Worse, I used a re-find on a substring to read numbers. There’s no way I can do that with a stream. So, I had to update the code to NOT any lookahead at all. And I had to start parsing numbers (and language codes) manually. It turns out that you need a lot of Clojure to do what a regex can do in a few characters!

quoll 2023-07-18T16:58:16.935309Z

But that’s all done now. So now I need to wrap my string/offset pairs in a record, and wrap them up in a protocol that can also wrap a Reader class. (Yes, I know about StringReader but I want to have a ClojureScript option)

quoll 2023-07-18T16:58:57.121259Z

As soon as I have that done, I can load/save arbitrarily large TTL files. That has me excited.

šŸ‘ 1
ā¤ļø 2