> (pull db '[* {:team/task [* {:task/owner [*]}]}] team-id)
That's not Datalog. It's kind of a mix between a conjunctive query and a regular path query.
Datalog isn't even really a query language. It's a class of query languages with a specific expressive power.
Whereas SQL is essentially conjunctive queries with non-stratified Negation, Datalog is recursive conjunctive queries with no or only stratified negation.
Datalog also has nothing to do with triples, they are two completely orthogonal concepts.
I've been slaving away in this very space for years and this post heavily reminds my of my initial hubris. Building something truly foundational that can be universally implemented and perform in all potential target languages from Javascript, to WASM via e.g. Zig and Rust, while at the same time being both conceptually simple, and easy to implement, is really really really difficult with a lot of pain lurking in the details.