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 š
Just because Git looks quiet doesnāt mean Iāve forgotten, and that I havenāt been doing anything
I'd never suspect you from doing nothing š
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
Which is why Iāve had all that activity around Raphael/Donatello
Twylite has been a bit neglected. I need to do a lot there
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.
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!
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)
As soon as I have that done, I can load/save arbitrarily large TTL files. That has me excited.