Re: Rule based RDBMS design

From: Vadim Tropashko <vadimtro_at_yahoo.com>
Date: Fri, 02 Feb 2001 19:50:51 GMT
Message-ID: <95f32n$he4$1_at_nnrp1.deja.com>


In article <49bl7tspflvoqo973ei379rdmncke5svhh_at_4ax.com>,   Kresimir Fabijanic <kresimir_at_ozemail.com.au> wrote:
> Dear all
>
> Thank thank you for your response, and yes, you are right, you do need
> more information. My initial posting was more testing wether there is
> anyone interested in this area and if they knew any resources.
>
> My constraints are
>
> 1) Oracle 8i
>
> 2) Write my own rules - primarily data driven - i.e. enable users to
> configure the state engine path (easy) and rules for the validation of
> the each state transition of the object (not so easy).
>
> Scot - I agree - hard part is actually getting users to commit to the
> rules and identifying each rule type (wow - what a surprise?!?!?), but
> I did work on one project like this and user interface was a hardest
> issue, as UI was designed so that you need to be a rocket scientist
> (or sitting next to one) to be able to figure how to set up the rules.
> That set of rules were comparatively simple and represent a tiny
> subset of the rules that I need to capture now.
>
> Jan I did use Aditi (a deductive database which uses Prolog as a
> interface and query language), as you see from the two constraints, I
> have to derive information, I can not configure constraints. I could
> capture rules in the code, but the maintenance of the code would make
> this option unworkable.
>
> BTW Yes, your assumption about the Bussiness Rule book is correct, and
> no, I do not want to call them bussiness rules, the book does, so I
> have used the expression.
>
> I hope that this clarifies my situation better than my initial
> posting. Thank you for your replies, once again.
>
Kresimir,

I worked on one Rules-Based-Business-Logic project before, so I'm highly opinionated on this topic (maybe, because it failed miserably:- ).

When the project started, I was amased to compare functionally rich Forte programming environment we were working on with dumb proprietory rule engine we were using on top of it (which is not quite fair comparison, but still). In Forte they have transactions, exceptions, objects, - all the goodies that accumulated during last ~30 years of programming languages evolution. In rule engine we had global variable scope, no structured variables, and a single if-then clause expression to work with. All business rules were coded in rules engine, and as a consequence, transactional semantics and exception patterns were coded in rules as well!

Fundamentally, I was failing to understand why the whole thing is called rules engine. It was state-machine: after applying rules, state changed. This is not about declarative programming at all, if you depend on the order of rules execution, right? On contrast, just imagine that your SQL query results depend upon the execution plan optimizer chooses. I'm illiterate here, but how does prolog solves the problem of possible dependency of resolutions order? It has procedural statements, that might have sideeffects, right?

Final words against making rules engine proprietory. There is simply not that many engineers out there whom you can find knowing or willing to learn your rules engine. Your company would have to make a life-time contract to the original developers (which maybe not that bad, really:-)

Sent via Deja.com
http://www.deja.com/ Received on Fri Feb 02 2001 - 20:50:51 CET

Original text of this message