Re: Oids

From: Mikito Harakiri <mikharakiri_nospaum_at_yahoo.com>
Date: 17 Aug 2005 20:08:59 -0700
Message-ID: <1124334539.789631.156130_at_g49g2000cwa.googlegroups.com>


Marshall Spight wrote:
> Vadim Tropashko wrote:
> > Summarising:
> >
> > header(A) = a0 = 00 join A
> > rowids(A) = Ox = 00 union A
>
> Hmmm.
>
> Let's see if I've followed along correctly.
>
> We have a terminology for some relation values, 00, 01, and the
> somewhat spooky 10. The two binary digits refer to the arity
> and the cardinality respectively.
>
> 00 join A = a0 = header(A) [ or just a in the earlier terminology ]
> 00 union A = 0x = isNonEmpty(A)
>
> 01 join A = A
> 01 union A = 01
>
> 10 join A = 10
> 10 union A = A
>
> Is that the consensus?

Not necessarily. There was a motivation why

 header(A)

is defined the way it was defined, but what if we follow the VC prescription and use a mapper

 isHeaderNonEmpty(A)

instead of the finer grained header(A)? Then

 isHeaderEmpty(A)

returns either 00 or 10, depending whether A has empty header or not.

> So far, we've been describing 10 via universal quantification.
> The type of 10 we've been using is:
> 10 = forall A, reduce union over header(A
>)
> but it would be less spooky, and more constructivist, if
> we defined it existentially:
> 10 = header(A)

I don't follow, but 10 could be alternatively defined as a join of all the header relations. It's the greatest element in the headers sublattice.

> > (Change 'rowids' to 'foo' if you like. Although I find a little comfort
> > with informal idea that header can be viewed is an additional hidden
> > row in the table, while the list of rowids is an additional hidden
> > column).
>
> This doesn't seem right to me. Instead of "foo" I'm going to go
> with "isNonEmpty". I can see the attraction of the rowids idea,
> but it doesn't feel right, because duplicates are coalesced in
> sets, and when we project over zero columns, we're left with
> only 00 or 01, this being exactly the is-it-empty-or-not distinction.

I could only handwave here. Like isHeaderNonEmpty(A) is finer grained header(A), I would speculate that the rowid(A) is finegrained of isNonEmpty(A). (Lattice homomorhism would be appropriate terminology here as well).

> > Now, it seems that you hit the nail, and the rowid maps Relational
> > Lattice into a boolean algebra with just 2 elements 00 and 01. This is
> > dual to header lattice homomorhism of Relational Lattice into a boolean
> > algebra of sets. The symmetry is sligtly broken, but who would insist
> > that rows and columns are completely symmetrical?
>
> If we define 10 existentially, does that fix the symmetry? Instead
> of a single boolean algebra, we have one-per-type-of-A.

I'm not able to follow this idea. Received on Thu Aug 18 2005 - 05:08:59 CEST

Original text of this message