| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Generalised approach to storing address details
JOG wrote:
> vc wrote:
>
>>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.
Seems as if I've been pondering something along that line for ages, don't know why. If this "Recursive Definition" is possible/useful without introducing new operators, I wonder if the following makes any sense:
I've been trying to reconcile this with the formal definitions starting on page 14 of ALGEBRA at http://www.dcs.warwick.ac.uk/~hugh/TTM/APPXA.pdf especially <AND>.
Haven't gotten very far except wherever "v" is mentioned, eg., in the triple <A,T,v> I treat it as a set (could be a singleton) and just to help me think in a parallel fashion, translate "conjoin" to "subjoin" (my little pun since this is all very subjunctive. Likely crazy too since I'm assuming conjoin is just a special case of subjoin).
p
>
>>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.
![]() |
![]() |