Re: Generalised approach to storing address details

From: vc <boston103_at_hotmail.com>
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 -
> 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)

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.

>
> 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.

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.

>
Received on Wed Dec 13 2006 - 18:12:07 CET

Original text of this message