Re: RM formalism supporting partial information

From: David BL <davidbl_at_iinet.net.au>
Date: Wed, 28 Nov 2007 18:54:55 -0800 (PST)
Message-ID: <5e4f66f3-cbd8-4dde-9cae-070524c62839_at_s12g2000prg.googlegroups.com>


On Nov 29, 12:15 am, Jan Hidders <hidd..._at_gmail.com> wrote:
> On 28 nov, 01:58, David BL <davi..._at_iinet.net.au> wrote:
>
>
>
>
>
> > On Nov 27, 9:43 pm, Jan Hidders <hidd..._at_gmail.com> wrote:
>
> > > On 26 nov, 15:06, David BL <davi..._at_iinet.net.au> wrote:
> > > > On Nov 26, 7:47 pm, Jan Hidders <hidd..._at_gmail.com> wrote:
> > > > > On 26 nov, 08:52, David BL <davi..._at_iinet.net.au> wrote:
>
> > > > > > Firstly a minor nit pick: you can't say "possible answers", because
> > > > > > they don't actually represent an upper bound on the result in the
> > > > > > omniscient database.
>
> > > > > ?? They do so by definition.
>
> > > > What I meant was that unless CWA is available on an appropriate
> > > > projection there may be so much missing information (eg all
> > > > information about an entity) that the query purported to return the
> > > > "possible answers" does no such thing. ie it suffers a similar
> > > > problem to negation (it returns neither the certain nor the possible
> > > > answers).
>
> > > I'm not sure what you mean by "the query purported to return the
> > > 'possible answers'". If the user formulates a query then this will now
> > > include an indication of whether he or she wants the possible/certain
> > > answers. It is up to the DBMS to efficiently compute the answer, and
> > > this is not necessarily done by the usual translation of calculus to
> > > algebra or even one very similar to it.
>
> > Consider a query to find all the 27 year old pilots from a census
> > recorded in an RDB. If the age or occupation is missing we could
> > think of the person as a possible answer. However we cannot say the
> > query returns all possible answers unless we assume every person took
> > part in the census.
>
> Ok. Forget my other reply, for some reason I had missed something very
> simple. Whether the suggested computation gives you all possible
> answers or not depends on the query that is being asked. If it
> concerned only the persons that took part in the census and you are
> assuming the CWA for the value-unknown interpretation, then it does.
> If you really meant all persons, then it doesn't, and you need another
> computation if you want that answer.

The concept of "possible answers" isn't universally applicable, and therefore seems to represent quite a problem for any model of partial information that emphasises that concept as fundamental.

Did you read my response to Brian regarding the approach to absorb the CWA/OWA distinction into the intensional definitions?

What do you think of the suggestion that the formalism (which is concerned with extensions rather than intensions)

  1. ignores the CWA/OWA distinction;
  2. assumes the CWA applies everywhere; and
  3. null is *always* interpreted as non-existence w.r.t. the (carefully worded) intensional definitions?

This approach seems simple and self consistent. In fact I think it gives the best of both worlds - it becomes

  1. Zaniolo's interpretation of no-information when the OWA applies in the intensional definition; or else
  2. (actual) non-existence when the CWA applies in the intensional definition.

It doesn't however, attempt to model the case of "value exists but is unknown". IMO that case should be modeled *explicitly* with a different predicate. More specifically I would say a distinct base relvar is required.

As an example suppose we have the predicate owns_car(Person,Car), and we want to be able to record persons that are known to own some unknown car. That implies that the intensional definition of owns_car has an OWA. Therefore we introduce a distinct base relvar owns_some_car(Person) that must satisfy the following integrity constraint

    owns_car(Person,Car) => owns_some_car(Person)

However the converse is false because of the OWA nature of owns_car(Person,Car). As a result owns_some_car(Person) is not equal to a projection on owns_car(Person,Car).

It is interesting to note that the intensional definition of owns_some_car can itself involve an OWA. Received on Thu Nov 29 2007 - 03:54:55 CET

Original text of this message