Re: Question about Date & Darwen <OR> operator
Date: 6 Sep 2005 05:18:33 -0700
Message-ID: <1126009113.358223.26900_at_g14g2000cwa.googlegroups.com>
Marshall Spight wrote:
> VC wrote:
> > "Marshall Spight" <marshall.spight_at_gmail.com> wrote in message
> > >
> > > I would propose something like
> > >
> > > Given
> > > A:(a:Ta,ab:Tab)
> > > B:(b:Tb,ab:Tab)
> >
> > I am not sure I understand the notation. Could you clarify what '(a:Ta,
> > ab:Tab)' is ?
>
> I try to use the 'x:T' form exclusively to mean 'x has type T.'
> Above I'm trying to say, "A has the type: set of (set of attributes
> a with type(s) Ta, and set of attributes ab with types Tab.)"
>
> Ordinarily I wouldn't find it necessary to bring the types in,
> but in this case we need to name Ta and Tb specifically because
> <OR> has us doing a cross product with the entire set of values
> of the type.
>
> > > A <OR> B = { (a,ab,b) |
> > > ((a,ab) in A cross product Tb)
> > > union
> > > ((b,ab) in B cross product Ta)
> > > }
> >
OK, I see what you are doing. To rephrase:
Let A and B be relations, DA1,...,DAn attribute domains in A but not in
B,
DB1,...,DBn attribute domains in B but not in A.
Then, the body of A <OR> B =
{x union {y1} ... union {ym} | x in A, y1 in DB1,.., ym in DBk}
union {a union {y1} ... union {yn} | x in B, y1 in DA1,.., yn inDAn}
For <AND> substitute 'intersect' for 'union'.
Of course the above reflects my understanding of what is being discussed here and is completely different from TTM's quoted definition.
> Marshall
Received on Tue Sep 06 2005 - 14:18:33 CEST