Re: Interpretation of Relations

From: JOG <jog_at_cs.nott.ac.uk>
Date: 19 Jan 2007 17:49:20 -0800
Message-ID: <1169257760.381232.22880_at_51g2000cwl.googlegroups.com>


Joe Thurbon wrote:
> I'm very new to this databases game, and am not even sure I'm using the
> terminology in the right way. I'd like some feedback as to whether I'm
> even in the right ballpark. Most of my understanding of the terminology
> comes from reading this group, and the definitions on Wikipedia.
>
> I've been wrestling with the correct interpretation of a relation. I'm
> currently working under the assumption that a relation comprises both a
> Type (or header) and a Body (or values).
>
> I'm going to start small.
>
> Consider modelling a situation in which there are people, and they have
> eye colour. I'm going to define some very small domains, so that I can
> enumerate the facts that I believe a given relation represents. I'm
> sorry if the notation is non-standard, but here it is.
>
> Domain D_People = {Joe}
> Domain D_Hair = {Red, Blond}
>
> Relation R_People = <<D_People>: {{Joe}}>
> Relation R_Hair Colour = <<D_People X D_Hair>: {{Joe, Blond}}>
>
> (The bit in the <> is the relation header, the subsequent sets are the
> relation body).
>
> So, I should interpret this to mean that "Joes hair is blond".
> But that is not all, because the closed world assumption means that I
> have another fact (just one, because the domains are so small). This
> second fact is "NOT Joes hair is red".
>
> And, in particular, it would be wrong to state that
>
> R_Hair Colour: <<D_People X D_Hair>: {}>
>
> indicates that I don't know the colour of Joe's hair. It really means
>
> NOT Joes hair is Red
> NOT Joes hair is Blond
>
> Is this right?

I see nothing wrong with your logic. What you are saying via an empty relation is that there is no proposition for which Joe has a hair colour. In fact I think from it you can infer: Joe has no hair colour. (which given my external knowledge --> Joe has no hair).

> If so, it leads me to a question about modelling missing
> information. (And a lot of other questions, too). If not, is there a
> simple thing that I've missed?

My current understanding is that:

  • If an attribute is Inapplicable then simply stating no proposition containing it is sufficient for that fact to be inferred.
  • If the attribute is Applicable but we do not have value for it, then we must state this propositionally to avoid inferring it as inapplicable under the CWA.
  • Alternatively if the attribute is 'possible' (we don't know if it is missing or inapplicable) then we must also state a proposition reflecting this in order to avoid the inapplicability inference.

It is worth noting that many view db-query results as coming with the caveat "as far as I, poor naive database, know". Jim.

>
> Thanks,
> Joe
Received on Sat Jan 20 2007 - 02:49:20 CET

Original text of this message