Re: Notions of Type

From: David Cressey <dcressey_at_verizon.net>
Date: Fri, 18 Aug 2006 11:33:35 GMT
Message-ID: <jAhFg.3862$v_1.100_at_trndny01>


"J M Davitt" <jdavitt_at_aeneas.net> wrote in message news:iS6Fg.55213$vl5.37756_at_tornado.ohiordc.rr.com...

> Wait a minute...
>
> PROJECT <relation> <set of attributes> -> <relation>
>
> right? And the question is, "Does this definition of
> PROJECT demonstrate lack of algebraic closure?" I think
>
> PROJECT <relation> <relation> -> <relation>
>
> is a step in the wrong direction and don't think such a
> thing is necessary for closure. I think that the fact
> that one of the operands and the result are relations is
> what provides closure.

It might well be a step in the wrong direction. I'm not going to claim to know my way around the math.
I know very little about this territory. what follows is speculation.

A projection is a mapping of all the points in one space onto another space. A relation is a subset of a space. Once you know the projection, applying it to a relation is straightforward (mathematically). However this description would make projection into a unary operator, not the binary operator Marshall is trying to work with.

Marshall's binary operator is a generalization of what I've called a projection in the above. At the same time, it's a specialization, because it applies only to relations, while projection can apply to spaces where relations aren't particularly relevant. For example, if you put your hands in some funny position between a light bulb and a wall, the shadow on the wall looks like a dog. The shadow on the wall is a projection of your hands (3D) onto the wall (2D).

It would be nice of the PROJECT operator, however it works, kept all the mathematical properties of a mathematical projection. The way I see it, you have to tear apart the original construct,

> PROJECT <relation> <set of attributes> -> <relation>

this way.

PROJECT spaceof (<relation>) spaceof(<set of attributes>) -> PROJECTION PROJECTION <relation> -> <relation>

The "spaceof" operator I've introduced above takes either a relation or a set of attributes and yields a space that the operand is contained in. I'm not happy with this definition, but that's as far as I got. Where have I gone wrong so far? Alternatively, what's the next step? Received on Fri Aug 18 2006 - 13:33:35 CEST

Original text of this message