Fork me on GitHub
#asami
<
2023-07-18
>
quoll14:07:22

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 🙂

🎉 12
quoll14:07:42

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

🙌 2
Jakub Holý (HolyJak)16:07:08

I'd never suspect you from doing nothing 😅

😁 2
quoll16:07:02

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

4
quoll16:07:19

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

quoll16:07:39

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

quoll16:07:43

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.

quoll16:07:59

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!

quoll16:07:16

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)

quoll16:07:57

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

👍 2
❤️ 4