Top
Best
New

Posted by remywang 3 days ago

Show HN: Prela – Purely Algebraic Relation Combinators(github.com)
Prela is an embedded query language based on Tarski's Algebra of Relations. Its queries are concise, clear, and fast. It is implemented by shallow embedding in a host programming language: Prela operators are regular functions in the host. The implementation follows continuation-passing style which compiles to efficient columnar execution.
41 points | 12 comments
gavinray 1 hour ago|
Julian Hyde (Apache Calcite author) has a side project called Morel

Morel is an ML dialect that can compile set-producing expressions into bytecode that Calcite can execute against databases

Sort of like "If you could query anything with SQL but it's ML instead"

I bring this up because the example query looks very similar to Morel queries

Neat xample of solving a combinatorial optimization problem with a single query that he posted recently to Twitter:

https://x.com/i/status/2062066151841321370

http://blog.hydromatic.net/2026/06/02/package-queries.html

chowells 27 minutes ago||
The heading saying "Simple (SPJ)" caught my eye, because I'm not sure SPJ has ever talked about simplicity in an especially referenceable way. Were you thinking of Rich Hickey's "Simple made Easy", or did SPJ do a presentation I missed out on?
remywang 23 minutes ago|
Select-Project-Join, not Simon Peyton Jones :)
chowells 18 minutes ago||
Hah. Not sure I've ever seen relational algebra abbreviated that way, but yeah. It makes sense.
anentropic 2 hours ago||
> Prela queries are readable even to those new to the language

Not really, too many obscure symbols.

Certainly learnable but I wouldn't say immediately readable.

WorldMaker 56 minutes ago|
It seems to be assuming a familiarity with logic algebras in general. It's main operator is just the common math symbol for logical conjunction (∧) [0] and how familiar it feels versus how obscure it feels depends on your mathematical background (and how long it has been). But yeah, most programming languages tend to prefer operators like & or && or `and` for logical conjunction, so Prela chose the mathematical choice over the programming language choice. Which is perhaps easily explainable by Prela starting as trying to be a pure syntax of Relational Algebra [1] which does usually prefer the mathematical symbols, given it is the mathematical theory (underpinning things like SQL) for academic/mathematical discussion more than a working programming language. Though we live in a time of Unicode where that distinction starts to get blurry again and mathematical symbols are easier to use than prior eras without dedicated APL keyboards or things like that.

[0] https://en.wikipedia.org/wiki/Logical_conjunction

[1] https://en.wikipedia.org/wiki/Relational_algebra

cpard 1 hour ago|
SQL, JS, Excel are really hard to substitute because of how widely used they are by people. Even if something new comes up that it's objectively better, so far has always failed gaining traction because of this reality.

I wonder though, is such a dialect better for agents? Have you tried to measure if an agent performs better expressing queries in such a language instead of SQL?

remywang 1 hour ago|
Claude had no problem translating SQL into Prela, and because you have fine grained control over the query plan (a Prela query is a plan), it was able to optimize queries to be very fast
cpard 1 hour ago|||
I'm more curious about going from text to Prela instead of going from text to SQL and measuring any difference in the performance there. On one hand models have been trained on a lot of SQL on the other hand they are really good in mathematical reasoning too so thinking in Perla might be a natural fit for them.
remywang 36 minutes ago||
There are fewer foot guns in Prela in particular no NULLs which should help both humans and robots.
joelthelion 1 hour ago|||
Having control over the execution plan is super interesting ! This is a very common frustration when writing SQL.

Do you think it would be possible to offer Prela as a direct interface to a relational database?

remywang 38 minutes ago||
Yes, maybe not the language itself, but the ideas behind it. Tarski's Algebra of Relations is actually a better model for modern columns stores than the standard relational algebra, because a column is a binary relation from the primary key into its value.