Having written my thesis about deductive DBS I cannot resist giving my 2
cent.
On Mon, May 16, 2005 at 01:42:24PM +0400, Dmitriy Letuchy wrote:
> Now some words about what must be done to realize described feature. The simple quickest way but the way without
futureis to write language handler. Other more correct way is to slightly extend DML part of SQL and more essentially
extendDDL. For example, we have relation Inheritance with two attributes ClassID and ParentID. Now we want to define
alldescendants or all ancestors. For this goal we define predicate inheritance_all with the next two rules (i.e.
inverseimplications):
>
> inheritance_all(ClassID, ParentID) :- inheritance(ClassID, ParentID);
> inheritance_all(ClassID, ParentID) :- inheritance(ClassID, X),
> inheritance_all(X, ParentID).
>
> We put this rules into database and call, for example, the next SQL commands:
>
> -- find all descendents
> SELECT * FROM ddb_name.inheritance_all(_, _)
How do you plan to execute this statement. As you mentioned above all
logic queries can be rewritten into SQL ones, but you have to find a way
to handle recursion. I would think the best way is to add recursion to
SQL and then completely rewrite the statements.
Also, and that's where it starts to become interesting, how do you plan
to handle negation inside recursion?
Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!