From dmiles@teknowledge.com  Mon Nov 13 06:14:24 2000
Received: from teknowledge.com (pop.teknowledge.com [128.136.192.13])
	by swi.psy.uva.nl (8.9.3/8.9.3) with ESMTP id GAA17236
	for <prolog@swi.psy.uva.nl>; Mon, 13 Nov 2000 06:14:23 +0100 (MET)
Received: from Jordan [192.168.200.145] by teknowledge.com [192.168.100.10]
	with SMTP (MDaemon.v2.8.7.5.R)
	for <prolog@swi.psy.uva.nl>; Sun, 12 Nov 2000 21:11:42 -0800
From: "Douglas Miles" <dmiles@teknowledge.com>
To: "Prolog mailing list" <prolog@swi.psy.uva.nl>
Subject: Big deal about Tabling Predicates.
Date: Sun, 12 Nov 2000 21:19:00 -0800
Message-ID: <DKEMIAGOABLKKCIMBHCIOENACAAA.dmiles@teknowledge.com>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
Importance: Normal
In-Reply-To: <20001110114221.A11760@solvo.ru>
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
X-MDaemon-Deliver-To: prolog@swi.psy.uva.nl
X-Return-Path: dmiles@teknowledge.com

SWI Community,


XSB Prolog has a mechanisms called 'Tabling'
<http://xsb.sourceforge.net/manual1/node48.html> it seems to be merely a way
of optimizing partially instantiated or fully instantiated predicates. (I am
still trying to understand how it works)  XSB keeps track of each subgoal in
some kind of table. A call can have a state of complete, incomplete or
not_yet_called. Calls that do have table entries may be either "complete"
or "incomplete". A subgoal in a table is marked "complete" only after it is
determined to be completely evaluated; otherwise the subgoal is "incomplete"
. If a tabled subgoal is not present in the table, it is termed
not_yet_called.

What would we do in SWI to accomplish this kind of optimization?  As a SWI
user I would like to think we have nearly everything we could ever want.  Is
this 'Tabling' ever useful?

Somehow it is also implied that this help take care of 'Cyclic Terms' and
that was a topic discussed earlier (except the discussion was "representing
them").


Douglas


