# Re: Date's First Great Blunder

From: Neo <neo55592_at_hotmail.com>
Date: 23 Apr 2004 11:08:03 -0700

I would refine it to say: Boolean Logic matches reality for a certain scope. You are correct, Boolean Logic does not cover all of reality.

> 3VL and 4VL do a better job. The main reason computers depend so strongly on
> Boolean logic is that the hardware guys decades ago decided to run with the
> simple circuitry of 2VL. In the world of theory, 2VL is strong because the
> Ancient Greeks promoted it.

In the above example, I show one type of 4VL system. The initial problem is not how many different values I can conlcude, but what do X and Y represent. If X and Y represent things in reality, we can create a model/operations to match reality. The problem arises when X or Y are given a value that don't represent reality. In RDM, when X's value isn't provided by reality, RDM incurs a NULL. Even if that NULL is masked by "UNKOWN" or "UNAVAILABLE", logic/operations on it will be bogus. If I make up HAHA and HOHO and they represent nothing in the real world, one may be able to create consistent logic around them, but could one guarantee the results would match reality???

> if our modern school of thought had descended from the Incans instead of
> from the Greeks, we'd take 3VL [true, false, unknown] for granted.
> Honestly, I am not familiar with a culture that developed 4VL [true, false,
> unknown, unknowable], but I believe that such 4VL is the only complete way
> to address all possible predicates.

> NULLs are evil, because by saying *nothing* they can mean *anything*.
> However, the precision provided by 2VL is counteracted by the inconvenience
> of decomposing a database into a greater number of smaller relations to
> deal with missing information. Then, in a recomposed derived relation, you
> again have to deal with NULLs in some way or another (like with EXTEND).

This is a problem with RDM. This is not a problem with XDb1/TDM. There are no tables or NULLs in XDb1. Tables presuppose that values will exist. Reality has a way of thumbing its nose at RDM's suppositions and the penalty is NULL.

> Incidentally, the reason that UNAVAILABLE equals UNAVAILABLE by default in
> today's implementations is due to the limitations of 2VL. In proper 4VL,
> (UNKNOWN ?= UNKNOWN) = UNKNOWN
> and
> (UNAVAILABLE ?= UNAVAILABLE) = UNAVAILABLE
> so John's age is not equal to Mary's age.

The base logic is that X = Y is either TRUE or FALSE. When a logic starts making exceptions (ie unless X or Y has the special values "UNAVAILABLE/UNKOWN" or Mercury in Newton's case), it is a red flag that the model may not be entirely correct or has a limited scope (and probably every model is limited, just to different degrees).

> Granted, it is tough (impossible?) to sort on
> an attribute that has such a quaternary. However, an overriding factor is
> what you want to do with your data. In a given context, it might behoove
> you to treat UNAVAILABLE as equal to UNAVAILABLE.

I disagree. It is safer to conclude that comparision between UNAVAILABLEs is unknown rather than they are equal, otherwise sometimes 3VL's logical answer won't match reality.

> I'm not in the mood to rewrite the RM while there are bigger fish to fry
> (like dealing with the insanity of the whole computing field).

Unfortunately, the current "insanity of the computing field" is due to our lack of fully understanding the fundamentals. While RDM is better than most, thinking its mathematical consistency ensures correctness beyond the tested scope hinders our progress.

> Besides, nobody until recently had even given the RM
> a try in implementation. I'm hoping it finally catches on.

Intriguing. Received on Fri Apr 23 2004 - 20:08:03 CEST

Original text of this message