[comp.lang.prolog] Summary: Forward chaining production systems on Prolog

yk@a.nl.cs.cmu.edu (Yasusi Kanada) (02/26/89)

Here's the summary of the replies to my question.  Thank you for everyone
who replied to it.
-Yasusi Kanada
 yk@a.nl.cs.cmu.edu


[Question]
There are a lot of backward chaining production systems implemented in
Prolog, because they match the nature of Prolog and it's quite easy to
implement them.  On the other hand, as far as I know, there are rather
few implementation of forward chaining production systems such as OPS5
implemented in Prolog.  The following are the examples.

Coelho, H., and Cotta, J. C.: Prolog by Example, Problem 97, Springer-
Verlag, 1988.

Shintani, T.: A Fast Prolog-Based Production System KORE/IE, Proc. of
the Fifth International Conference and Symposium on Logic Programming,
pp.26-42, 1988.

I know some other references written in Japanese.  Most of them are
naiive implementation.  The second paper above is the only one that
uses RETE-like network, so it's the only one practical.  Do you know
other references?  Thanks in advance.


[Replies]
From: finin@hamlet (Tim Finin)
Date: 19 Feb 89 04:43:22 GMT
Sender: news@PRC.Unisys.COM
Reply-To: finin@hamlet (Tim Finin)

... (omitted)

We've devloped one which is described in:
  @inproceedings{Finin89a,
     AUTHOR = "Tim Finin and Rich Fritzson and Dave Matuzsek",
     TITLE = "Adding Forward Chaining and Truth Maintenance to Prolog",
     BOOKTITLE = "IEEE Conference on Artificial Intelligence Applications",
     MONTH = "March",
     YEAR = "1989"}
-- 
 Tim Finin			finin@prc.unisys.com (internet)
 Unisys Paoli Research Center	..!{psuvax1,sdcrdcf,cbmvax}!burdvax!finin (uucp)
 PO Box 517			215-648-7446 (office), 215-386-1749 (home),
 Paoli, PA 19301		215-648-7412 (fax)
-------------
From: novick@uoregon.uoregon.edu (David G. Novick)
Date: 20 Feb 89 18:55:03 GMT

... (omitted)

As noted in earlier articles, backward-chaining systems are very
straight-forward in Prolog.  Forward-chaining systems, while not
quite as directly implementable, are nevertheless fairly easy to
write in Prolog.  As part of my doctoral work, I wrote a forward-
chaining system on top of SICTStus Prolog.  A complete listing of
the system is available as an appendix in Novick, D. G. 1988. "Control
of mixed-initiative discourse through meta-locutionary acts: A
computational model,"  Tech. Rep. CIS-TR-88-18, Department of Computer
and Information Science, University of Oregon.  This work relied on 
my earlier Lisp-based contributions to the ORBS system.

Some of the nice feature of writing a rule-based system in
Prolog are that (1) conflict resolution can be described in predicate
form, so CR strategies can be domain-customized rather easily, 
(2) most of the unification chores are handled by the language, (3) it
is trivial to add control information to rules, and (4) there is a
good correspondence between "test" clauses in a rule and the idea that
something is provable.

==============================================================================
David G. Novick			  |  internet: novick@cs.uoregon.edu
Computer and Information Science  |  uucp:     {tek|hp-pcd}!uoregon!fog!novick
University of Oregon		  |  home:     (503) 687-9506
Eugene, Oregon  97403-1202	  |  office:   (503) 686-4408
==============================================================================
--------------
Date: Tue, 21 Feb 89 11:43:09 PST
From: quintus!don@Sun.COM (Don Ferguson)

The system "SunPRESS" written by Sun Microsystems implements a forward chaining
procedural reasoning system in Quintus Prolog.  The leader of this project is
Kevin Whiting, who you should be able to contact at: kwhiting@sun.com.
--------------
Date:     Wed, 22 Feb 89 10:52:08 GMT
From: Jerry Harper <mcvax!euroies!jharper@uunet.UU.NET>

BTW, your request for information on forward-chaining in Prolog
reminded me of my experience of Flex last year.  Produced by LPA, Flex
is an integrated production rules and frames system; inferencing is
primarily forward-chaining.  Versions are available for both the Mac
and IBM-compatibles, I suggest you contact your nearest LPA
expert for further information.  I must admit that it is a very well
engineered system.

Further aside: Flex is available in both object modules and as source
code.  The latter release costs considerably more.
Cheers.
--------------
From: munnari!ditsyda.oz.au!baird@uunet.UU.NET
	(from baird@ditsyda.oz for uunet!yk@a.nl.cs.cmu.edu)
 +1000
Date: Thu, 23 Feb 89 16:06:11 EST

... (omitted)

See also:

Design of a forward chaining reasoning system using content-addressable memory.
By:	Robert M. Colomb
	Charles CYC Chung
Technical Report: TR-FB-88-02

	This is available from the CSIRO here is Australia. If you want I
can send you a copy.  It is based on a content addressable memory we are
building, but may be relavent anyway.

		John Baird

-------------
CSIRO Division of Information Technology
PO BOX 1599
Macquarie Centre North Ryde
Australia 2113

--