From geoff@sover.net Wed Oct 31 17:03:42 2001
Received: from mailgate1.sover.net (mailgate1.sover.net [209.198.87.60])
	by swi.psy.uva.nl (8.11.2/8.11.2) with ESMTP id f9VG3ft26209;
	Wed, 31 Oct 2001 17:03:42 +0100 (MET)
Received: from GSC866 (arc1a208.bf.sover.net [209.198.113.209])
	by mailgate1.sover.net (8.11.5/8.11.6) with SMTP id f9VG3cv03299;
	Wed, 31 Oct 2001 11:03:38 -0500 (EST)
Message-ID: <005d01c16225$283d42e0$0400a8c0@GSC866>
From: "Geoff Chappell" <geoff@sover.net>
To: "Jan Wielemaker" <jan@swi.psy.uva.nl>, "Wolfram Conen" <conen@gmx.de>,
   <prolog@swi.psy.uva.nl>
References: <3BDFC851.4AAD3C1D@gmx.de> <01103114033503.29951@gollem>
Subject: Re: [SWIPL] Q: Meta-Interpreter for Bottom-Up eval of Datalog+Neg? Tabling plans for SWI?
Date: Wed, 31 Oct 2001 11:00:25 -0500
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700

I ran into this same need a while back. We'd built an RDF query and
inference component on top of SWI and were having performance problems with
common classes of queries against rdf. Tabling seemed like a possible
answer. I looked at XSB but initial tests didn't seem to indicate any huge
gains. I admit that I likely did something wrong in my tests but had a hard
time figuring out exactly what I needed to do to take advantage of tabling
from the documentation (I'd been spoiled by SWI's excellent docs and foreign
interface).

In the end, we ended up building a custom deductive database tailored to rdf
that gave us the performance we needed for what we were doing. I've vaguely
considered trying to merge the two systems in some way - it would be great
to have the best of both worlds (tuple-at-a-time for some things,
set-at-a-time for others).

I can't say I fully understand tabling in prolog systems, but I've become a
firm believer of the benefits of set-at-a-time processing for some tasks (as
long as you can live with stratification issues). It would be great to see
some form of tabling in SWI at some point.

Regards,

Geoff Chappell

----- Original Message -----
From: "Jan Wielemaker" <jan@swi.psy.uva.nl>
To: "Wolfram Conen" <conen@gmx.de>; <prolog@swi.psy.uva.nl>
Sent: Wednesday, October 31, 2001 7:56 AM
Subject: Re: [SWIPL] Q: Meta-Interpreter for Bottom-Up eval of Datalog+Neg?
Tabling plans for SWI?


> On Wed, 31 Oct 2001, Wolfram Conen wrote:
> >Hello out there!
> >
> >Allow the following 3 questions. I would appreciate any answer/hint.
> >
> >(1) I am looking for a simple meta-interpreter implementing bottom-up
> >evaluation of "pure" datalog (w/ negation)
> >
> >(2) Jan, do you have any plans to implement TABLING sooner or later?
>
> Not really.  `Later' is a long time, so it is always possible that
> I come accross a situation where demands and available resources
> allow for the implementation of it.  Sofar I've always worked with
> hand-coded tabling in situations where I thought it to be useful.
> Didn't I see the announcement of a preprocessing based implementation
> recently?
>
> >(3) Would it be straightforward to port the SGML/RDF parser to XSB
> >(libwww, brrr... ;) or would that require much effort?
>
> I've had this request (for Eclipse though) a couple of weeks ago as
> well.  The big thing is to get an XML parser that emits code like the
> SWI-Prolog one.   For this particular problem the guy decided to use
> the SWI-Prolog RDF parser and load the triples into Eclipse ...
>
> Best option is to write a layer emulating the SWI-Prolog foreign
> interface in XSB.  No clue whether this is possible.
>
> Regards --- Jan
>
>
> ----------------
> * To UNSUBSCRIBE, please use the HTML form at
>
>     http://www.swi.psy.uva.nl/projects/SWI-Prolog/index.html#mailinglist
>
> or send mail to prolog-request@swi.psy.uva.nl using the Subject:
"unsubscribe"
> (without the quotes) and *no* message body.
>
> ** An ARCHIVE of this list is maintained at
>
>     http://www.swi.psy.uva.nl/projects/SWI-Prolog/mailinglist/archive/

