Oops, I’ve been neglecting this blog badly, but of course there is a reason. During my holiday last two weeks, I’ve been writing a paper about misuse of pesticides (Pestizide und ihre negativen Auswirkungen — natur- und gesellschaftswissenschaftlich betrachtet, I’ll publish it after it’s graded), and that took a great part of my free time. Then, I still needed to keep Anarchaia running.
Now that I’ve almost finished that paper, hacking can go on. There will be further work on
since I want to use it as a runtime system for a new relational
processing language called Brne I’ve been designing the last few
weeks. Everything still is pretty much in flux, but the core idea is
that Brne will be to relational databases what APL is to matrix
operations. (If you speak a bit german, you now may notice the really
bad pun in the name.)
Brne is strongly inspired by the relational logic core of Alloy, but also by APL, K and Q. I already have a basic parser written in Ruby and parts of the data storage. A prototype of the execution model exists too, I think it is related to Comprehending Queries, but I need to dig deeper into the work of Torsten Grust to show the exact bearing.
That said, it will be very interesting to compare Brne to Vlerq, especially since it’s core recently has been rewritten and is much more understandable now (but also Tcl specific at the moment); both projects have similar intent. The probably biggest difference is that Brne doesn’t specifically know about tables, there only are relations that contain mappings of keys to values (think “a hash”, but they may be stored efficiently on disk). However, since joins are very convenient to do, the relational model can make use of its whole power that’s usually hidden by a mess of SQL.
For example, to compute the complete revenue you had from this years new customers, you could query like this:
sum (customers.since < 2006)'.orders.products.prices
More details to come really soon now.
NP: The Smiths—Wonderful Woman