Re: Onto a potential relational manipulation language

From: <vadimtro_at_gmail.com>
Date: Thu, 11 Dec 2008 15:22:56 -0800 (PST)
Message-ID: <934bce99-fe7d-43a0-8678-4d7934ab6fc3_at_a26g2000prf.googlegroups.com>


On Dec 9, 11:12 am, paul c <toledobythe..._at_oohay.ac> wrote:
> If I were making up a syntax, I'd start by naming shortcuts
> for expressions based on some formal logic. The one closest to my
> thinking would be D&D Algebra but there are others, don't ask me how
> many, such as Vadim's RL.

Let me hijack this thread to plug in my program. Its primary purpose is to be able to check if an assertion is a valid theorem in RL. I hope some day a more ambitious project would extend it to fully featured general purpose programming environment.

I mentioned before that I extensively leverage Prover9/Mace4, so why bother with other assertion verification tool? Prover9 main purpose is to formally derive assertions from some assumptions. Mace4 is complementary tool which invalidates wrong assertions by finding counterexamples. However, the models in Mace4 are generic, while in database world one would like to check assertions against objects that are structured as tables (err, relations).

Meet QBQL (Quasi Boolean Query Language?): http://code.google.com/p/qbql/wiki/GettingStarted

For those who missed Neo's entertaining DbForDummies threads, here are few examples in QBQL that look strikingly similar to his:-)

R00 < Relationship.

(Max ^ Fed ^ Folly) v Time < TwoOclock.

%invalid: (Claire ^ Fed ^ Scruffy) v Time < TwoOclock.

Time v (Claire ^ At ^ Library) < Time v (Max ^ At ^ Home).

%invalid: Time v (Max ^ At ^ Home) < Time v (Claire ^ At ^ Library).

(((Peter ^ Parent) v Relationship) ^ (Max ^ Child)) v R00 = R01. Received on Fri Dec 12 2008 - 00:22:56 CET

Original text of this message