yk@a.nl.cs.cmu.edu (Yasusi Kanada) (02/17/89)
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. -Yasusi Kanada yk@a.nl.cs.cmu.edu --
finin@hamlet (Tim Finin) (02/19/89)
In article <4302@pt.cs.cmu.edu>, yk@a.nl (Yasusi Kanada) writes: >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.... >...Do you know other references? Thanks in advance. 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)
novick@uoregon.uoregon.edu (David G. Novick) (02/21/89)
Yasusi Kanada has inquired about other references to forward-chaining productions systems in Prolog. 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 ==============================================================================