Re: Undefinedness

From: David BL <davidbl_at_iinet.net.au>
Date: Thu, 22 Nov 2007 20:17:11 -0800 (PST)
Message-ID: <14a4483d-cee9-4b13-a41f-b9e3303def2c_at_e23g2000prf.googlegroups.com>


On Nov 23, 2:39 am, JOG <j..._at_cs.nott.ac.uk> wrote:
> On Nov 21, 2:22 pm, "David Cressey" <cresse..._at_verizon.net> wrote:
>
>
>
>
>
> > "JOG" <j..._at_cs.nott.ac.uk> wrote in message
>
> >news:84c11971-6500-48e4-ba0f-b8b659f390da_at_d61g2000hsa.googlegroups.com...
>
> > > Word up CDT. How the devil are you all? Well, I return with a question
> > > that as ever highlights my complete lack of formal mathematical
> > > training, and in light of knowing no logicians in my daily life (funny
> > > that), I was hoping that one of you kind folks might be able to
> > > advise:
>
> > > Say I had a set of 3 encoded propositions:
> > > R := { {(Name, Tom), (Age, 42)}, {(Name, Dick), (Age, 16)}, {(Name,
> > > Harry)} }
>
> > > (note that Harry's Age is missing, so instead of adding a null, i've
> > > intentionally just left the attribute out. Just ride with such oddness
> > > for now if you would.)
>
> > > What if I deigned to create a simple 'adults' subset of this set of
> > > propositions, by creating a predicate that only returned the elements,
> > > p, which contained an age attribute greater than 18. Could I state
> > > this as (where E signifies set membership):
>
> > > Adults := { p E R | EXISTSx ( x > 18 && (Age, x) E p ) }
>
> > > My question obviously hinges around Harry's missing age attribute. In
> > > this case would the EXISTSx (...) part of the set's intension simply
> > > return a FALSE, or will I end up in the quagmire of 3VL with an
> > > UNDEFINED? My instinct is that I am still in 2VL given there is no
> > > null floating about, but since the recent, excellent discussions of
> > > Jan's DEF operator, and having delved into beeson's logic of partial
> > > terms, I am not at all confident.
>
> > > Any comments are much appreciated, and regards to all, Jim.
>
> > I'm no mathematician or logician, but I'll answer anyway.
>
> > To me, it dpends on whether the relationship (Name, Age) follows the open
> > world assumption or the closed world assumption.
>
> While I was only really concerned about whether my logic statements
> are sticking to 2VL internally, you've sent me off at a tangent here
> because CWA is one of my bugbears. Imho its at best silly, and at
> worst contradictory. Take relations such as:
>
> Weather_is = { condition: Hot }
> Weather_is_not = { condition: Cold }
> Domain = {Hot, Cold}
>
> Perfectly fine with full information, and a constraint that a
> condition can't appear in both. And I can happily extrapolate from CWA
> from the first relation that: !is(condition:cold)), and from the
> second !is_not(condition:hot). Nice...
>
> ...until we're faced missing information. If both relations are empty
> (because we just don't have the data say), then CWA tells me that:
> !Weather_is(condition:Hot) and !Weather_is_not(condition:Hot). It is
> both hot and not hot. Genius. I don't see how CWA based directly on
> what propositions state can ever be justified for a system working in
> the real world (TM).
>
> Equally CWA would suggest that Harry is neither a child nor an adult
> in the other example. Meh.
>
> I am hence of the opinion that we should stick to OWA, or better still
> a CWA that is aware it is only commenting on the _existence of
> propositions_ themselves, and not the underlying truth of their
> contents (preventing us asking questions with contradictory answers in
> the first place).
>
> > If it's the closed world
> > assumption, then we would have to say that Harry is not included with the
> > adults. However, if we defined another set, Children,
>
> > Children := { p E R | EXISTSx ( x < 19 && (Age, x) E p ) }
>
> > Please note that Harry is excluded from Children as well.
>
> > If we had a rule that says that every person mentioned in R is either a
> > child or an adult, that would be tantamount to requiring that the entry for
> > Harry be rejected at time of insertion.
>
> > BTW, I see nothing odd about your notation.
>
> Huzzah ;)
>
> > NULLS are not needed. Hwever,
> > your proposition R actually contains two propositions: first that the named
> > person exists, and second that the person named with an age has that age.
>
> True, and full decomposition to 6NF would be a valid approach. But one
> that can add an unpleasant amount of joins. Theoretically no problem
> of course, but who realistically fancies writing queries with n joins
> just because you don't have complete information for a single entry
> say... And lets be honest, when in the real world is any attribute
> 100% guaranteed to not going to have some missing data at some point?

This seems closely related to the recent discussion between Jan and myself. I think you're basically taking the Zaniolo approach to missing information. I agree with you (and it seems obvious) that the CWA only applies when one has complete information. Received on Fri Nov 23 2007 - 05:17:11 CET

Original text of this message