Re: Generalised approach to storing address details
Date: 13 Dec 2006 09:12:07 -0800
Message-ID: <1166029927.189576.81680_at_80g2000cwy.googlegroups.com>
JOG wrote:
 
> True, but parents and ancestors are two completely separate relations -
 
If read as a first-order logic implication,  the above does not
uniquely define the Ancestor relation.  Consider Ancestor(X,Y) = true.
If read as a Prolog program,  the above is more expressive than any
relational algebra query because Prolog has recursion(resolution)  and
r.a. does not.
 
>
 
It has been known for quite a while that the ancestor relation cannot
be expressed in f.o.l. and r.a.   See "EF - games" in any finite model
theory textbook.
 
>
> ancestry is transitive, parentage is not for example (my parent's
> parent is not in turn my parent too. Well lets hope not eh.). If we
> just have a parentage heirarchy, we externally know a semantic
> relationship between parentage and ancestry that allows us to infer who
> ancestors are - but vitally we are applying two extra inference rule
> from our external knowledge:
>
> 1) Parent(x,y) => Ancestor(x,y)
> 2) Ancestor(x,y) & Ancestor(y,z) => Ancestor(x,z)
> These rules could still be encoded and applied relationally. The tools
> do not currently exist to do this without recursive querying, but
> (without thinking to hard about it ) I don't envisage a theoretical
> reason why they could not be encoded as part of the predicate for a
> virtual table, generated from the parentage table itself. Good idea for
> a research paper maybe.
Received on Wed Dec 13 2006 - 18:12:07 CET
