Hi Mr. Darwen,
It is a great privelege to have you joining in our conversation. Thank you for this. Let me say that I'd much rather sit and listen to you and Mr. Date lecture on this (or any other) topic for a week, than to have to offer up my relatively meager insights on topics that you more educated ones have treated at length.
However, we are sometimes called to enter the fray where someone has asked us to comment on an issue. But I knew, as soon as I'd sent it, that I'd get into trouble for that "argument based one complete lack of any comprehension" phrase. For although it really meant, "argument presented by Ken by citing Hugh Darwen", it came out like, "argument by Hugh Darwen". And of course, any idiot would know that you would have plenty of understanding of the problem of missing information. So I must again apologize for my unfortunately loose use of language.
Now, let me say I do appreciate that NULLs do put us in quite an awkward situation, with regard to logical foundations. And again, I'd prefer to listen to you guys tell us all about these issues, than keep blathering on myself. But just at the moment, I don't seem to have any option but to try, more for others than for you, to explain better where I'm coming from (and where I think Clifford is coming from).
We all acknowledge that we have a problem of "missing information" that we have to deal with. But I found a problem with Mr. Darwen's argument (as presented by Ken, that is), which problem I've yet to make perfectly clear: the problem, I think, is the assumption of a static predicate for a particular relation, one that applies both to rows where there is a null in a certain column, and to rows where that column has a non-null value. That is, when Hugh writes of "the first-order predicate that the relation is deemed to represent", I would argue that it cannot represent the same predicate, for tuples having a null for attribute X, as it represents for tuples having a non-null value for attribute X. Let me give an example to show why it's apparently incorrect to assume a static, unchanging predicate (i.e. one that applies to both the null and the non-null rows).
Let's imagine a Student table. The table has a PK column called "studentId", a mandatory column called "name", a nullable (i.e. non-mandatory) column called "gender", and a mandatory column called "birthdate": in the horizontal notation used in Halpin and Morgan's book on ORM, that would be
Student ( studentId, name, [gender], birthdate )
Now, what is the predicate, for a row where the gender is provided? It is, using mixfix notation and with attributes shown in square brackets, none other than "[student with Id] has [name] and is of [gender] and was born on [birthdate]". Notice that this proposition type is a conjunction of three smaller, atomic fact types. But is this the same predicate, with the same meaning, as is intended for a row where the gender is not provided? I would say that it is not the same predicate. Rather, the predicate intended on such a row is none other than, "[student with Id] has [name] and was born on [birthdate]". For the absence of the (non-null) gender value, indicates precisely that the conjunct, atomic fact type "[student with Id] is of [gender]" does not have a populating instance asserted on this row.
However, from what you say above, Mr. Darwen, I feel now that you understand all this perfectly. But of course I was responding to Ken's claims, not yours; and he was claiming (what you've now denied,) that introducing nulls introduces indeterminacy of the proposition's truth value. And my pro-nulls argument was, simply stated, that I've yet to see any proposal for dealing with missing information, that is not more problematical, in practice, than the "nulls" solution. Having clarified all this, I feel I've shot my wad, and now would to well to sit back and listen to the real experts solve the problem of missing information. (Hugh? Terry? Chris?) Please fill me in, I'd love to be educated on the topic. And thanks again for having contributed thus far,
Best regards,
Andy