This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-07-18
Channels
- # announcements (8)
- # asami (10)
- # babashka (58)
- # beginners (20)
- # calva (4)
- # clerk (9)
- # clj-on-windows (5)
- # cljsrn (1)
- # clojure (12)
- # clojure-australia (2)
- # clojure-europe (24)
- # clojure-gamedev (1)
- # clojure-norway (14)
- # clojure-romania (1)
- # clojurescript (28)
- # conjure (2)
- # cursive (5)
- # dev-tooling (38)
- # emacs (15)
- # events (1)
- # hoplon (12)
- # hyperfiddle (41)
- # introduce-yourself (4)
- # jobs (2)
- # jobs-discuss (17)
- # malli (23)
- # matrix (5)
- # nextjournal (11)
- # pathom (19)
- # pedestal (1)
- # polylith (3)
- # reitit (3)
- # sci (7)
- # xtdb (7)
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 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
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!