home *** CD-ROM | disk | FTP | other *** search
- Path: bloom-beacon.mit.edu!uhog.mit.edu!nntp.club.cc.cmu.edu!cantaloupe.srv.cs.cmu.edu!mkant
- From: mkant+@cs.cmu.edu (Mark Kantrowitz)
- Newsgroups: comp.lang.prolog,comp.object.logic,news.answers,comp.answers
- Subject: FAQ: Prolog Resource Guide 1/2 [Monthly posting]
- Supersedes: <PRG_1_782031621@CS.CMU.EDU>
- Followup-To: poster
- Date: 13 Nov 1994 08:03:23 GMT
- Organization: School of Computer Science, Carnegie Mellon University
- Lines: 1672
- Approved: news-answers-request@MIT.Edu
- Distribution: world
- Expires: 25 Dec 1994 08:00:25 GMT
- Message-ID: <PRG_1_784713625@CS.CMU.EDU>
- Reply-To: mkant+prg@cs.cmu.edu
- NNTP-Posting-Host: glinda.oz.cs.cmu.edu
- Xref: bloom-beacon.mit.edu comp.lang.prolog:5387 comp.object.logic:276 news.answers:29292 comp.answers:8324
-
- Archive-name: prolog/resource-guide/part1
- Last-Modified: Thu Nov 10 22:53:52 1994 by Mark Kantrowitz
- Version: 1.24
- Maintainer: Mark Kantrowitz <mkant+prg@cs.cmu.edu>
- URL: http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
- Size: 80048 bytes, 1680 lines
-
- ;;; ****************************************************************
- ;;; Prolog Resource Guide ******************************************
- ;;; ****************************************************************
- ;;; prg_1.faq
-
- This post contains the Prolog Resource Guide.
-
- Contributions, corrections, suggestions, and comments should be sent
- to Mark Kantrowitz <mkant+prg@cs.cmu.edu>.
-
- This guide lists a variety of resources for the Prolog community,
- including books, magazines, ftp archives, and products. It is posted
- on the 13th of every month to the newsgroups comp.lang.prolog and
- comp.object.logic. The PRG is also posted to the newsgroups
- news.answers and comp.answers where they should be available at any
- time (ask your local news manager).
-
-
- *** Copyright:
-
- Copyright (c) 1992-94 by Mark Kantrowitz. All rights reserved.
-
- This FAQ may be freely redistributed in its entirety without
- modification provided that this copyright notice is not removed. It
- may not be sold for profit or incorporated in commercial documents
- (e.g., published for sale on CD-ROM, floppy disks, books, magazines,
- or other print form) without the prior written permission of the
- copyright holder. Permission is expressly granted for this document
- to be made available for file transfer from installations offering
- unrestricted anonymous file transfer on the Internet.
-
- If this FAQ is reproduced in offline media (e.g., CD-ROM, print form,
- etc.), a complimentary copy should be sent to Mark Kantrowitz, School
- of Computer Science, Carnegie Mellon University, 5000 Forbes Avenue,
- Pittsburgh, PA 15213-3891 USA.
-
- This article is provided AS IS without any express or implied warranty.
-
- *** Topics Covered:
-
- There are currently two parts to the PRG:
-
- 1. Introductory Matter and General Questions
- 2. Prolog Implementations
-
- Table of Contents (Part 1):
-
- [1-0] Introduction
- [1-1] Sources of information about Prolog
- [1-2] Prolog-related Mailing Lists
- [1-3] Books and Magazine Articles
- [1-4] Prolog and Logic Programming Associations and Journals
- [1-5] FTP Archives and Other Resources
- [1-6] Free Object-Oriented Systems for Prolog
- [1-7] Commercial Object-Oriented Systems for Prolog
- [1-8] The Prolog 1000 Database
- [1-9] X-Windows Interfaces
- [1-10] Is there a straight-forward way of compiling Prolog to C?
- [1-11] WAM emulators and tracers
- [1-12] What is the Basic Andorra Model and AKL?
- [1-13] What is Constraint Logic Programming?
- [1-14] How do you write portable programs in Prolog?
- [1-15] World-Wide Web (WWW) Resources
- [1-16] Prolog Job Postings
- [1-17] Is Prolog really used in Windows NT?
- [1-A] Acknowledgements
-
- Prolog Implementations (Part 2):
-
- [2-0] General information about Prolog Implementations
- [2-1] Free Prolog Implementations
- [2-2] Commercial Prolog Implementations
- [2-3] Free Parallel Prolog Implementations
- [2-4] Commercial Parallel Prolog Implementations
- [2-5] Free Constraint Systems
- [2-6] Commercial Constraint Systems
- [2-7] Free Logic Programming Systems
- [2-8] Commercial Logic Programming Systems
- [2-9] Other Commercial Prolog Products
- [2-10] Prolog extensions, meta-interpreters, and pre-processors
-
- Search for [#] to get to topic number # quickly. In newsreaders which
- support digests (such as rn), [CTRL]-G will page through the answers.
-
- *** Recent Changes:
-
- ;;; 1.23:
- ;;; 14-SEP-94 mk Updated Prolog by BIM entry in [2-2].
- ;;; 14-SEP-94 mk Added ClauseDB in new section [2-9] Other Commercial Prolog
- ;;; Products.
- ;;; 22-SEP-94 mk Added entry on Chris Moss's Prolog++ book to [1-3].
- ;;; 22-SEP-94 mk Updated SICStus Prolog entry in [2-2].
- ;;; 23-SEP-94 mk Removed entries for IBM SAA AD/Cycle Prolog and ICE from
- ;;; part 2, as they are no longer being actively marketed.
- ;;; 6-OCT-94 mk Added [2-10] on prolog extensions, and added ProFIT to that
- ;;; section.
- ;;; 6-OCT-94 mk ALE v2.0 now available by anon ftp [1-5].
- ;;; 7-OCT-94 mk Updated ProTCL entry.
- ;;; 7-OCT-94 mk Added Umrigar's flowchart partial evaluator to [1-5].
- ;;; 12-OCT-94 mk Updated IF/Prolog entry.
- ;;; 12-OCT-94 mk Added [1-17] Is Prolog really used in Windows NT?
- ;;;
- ;;; 1.24:
- ;;; 13-OCT-94 mk Added Hdrug to [1-5].
- ;;; 13-OCT-94 mk Added FW_Rules to [1-5].
- ;;; 14-OCT-94 mk Added KLIC entry and removed PDSS entry in [2-3].
- ;;; 14-OCT-94 mk Updated Quintus entry in [2-2].
- ;;; 20-OCT-94 mk Updated prices for books by Dennis Merritt of Amzi! Inc.
- ;;; 20-OCT-94 mk Added entry on GT-Prolog (prolog for Amiga) to [2-2].
- ;;; 28-OCT-94 mk WWW archive of articles from the LP Newsletter.
- ;;; 28-OCT-94 mk WWW page for ILOG.
- ;;; 10-NOV-94 mk Updated ESL Prolog-2 entry.
-
- ----------------------------------------------------------------
- Subject: [1-0] Introduction
-
- Certain questions and topics come up frequently in the various network
- discussion groups devoted to and related to Prolog and logic programming.
- This file/article is an attempt to gather these questions and their
- answers into a convenient reference for Prolog programmers. It (or a
- reference to it) is posted periodically. The hope is that this will
- cut down on the user time and network bandwidth used to post, read and
- respond to the same questions over and over, as well as providing
- education by answering questions some readers may not even have
- thought to ask.
-
- This guide lists Prolog and logic programming resources: archives,
- newsgroups, books, magazines, compilers, interpreters and anything
- else you can think of which has to do with the proliferation of Prolog
- and logic programming. Also included is a list of suppliers of
- products and a list of publishers. Topics can also include
- unification, backtracking search, and other aspects of logic
- programming. As Prolog has a strong historical tradition in Europe,
- we've tried to ensure that the information is relevant to all readers,
- including European and North American.
-
- This is not a Prolog tutorial, nor is it an exhaustive list of all Prolog
- intricacies. Prolog is a very powerful and expressive language, but with
- that power comes many complexities. This list attempts to address the
- ones that average Prolog programmers are likely to encounter. If you are
- new to Prolog, read one of the introductions listed in the answer to
- question [1-3].
-
- Please do not post homework questions to the comp.lang.prolog
- newsgroup. You won't learn anything if somebody else does the problem
- for you, and won't get any credit for your answer if your instructor
- reads the newsgroup.
-
- Please also avoid starting the debate on which language is better;
- Prolog or Lisp, Prolog or C, and so on. Such discussions are rarely
- productive, and nobody will change their opinion as a result of the
- debate. The usual conclusion of such debates is that the languages are
- Turing equivalent, but some languages are better suited for particular
- tasks. For Prolog, the consensus is that it is a good choice for
- problems involving logic and problems whose solution can be
- represented or characterized succinctly in logical form. Some folks
- feel Prolog is the best language for natural language processing;
- others disagree.
-
- This guide is posted regularly to comp.lang.prolog and comp.object.logic.
- It may also be obtained by anonymous ftp from
- ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/ [128.2.206.173]
- using username "anonymous" and password "name@host" (substitute your
- email address) or via AFS in the Andrew File System directory
- /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/prolog/
- as the files prg_1.faq and prg_2.faq.
-
- You can also obtain a copy of the FAQ by sending a message to
- ai+query@cs.cmu.edu with
- Send PRG
- in the message body.
-
- The FAQ postings are also archived in the periodic posting archive on
- rtfm.mit.edu:/pub/usenet/news.answers/prolog/ [18.181.0.24]
- If you do not have anonymous ftp access, you can access the archive by
- mail server as well. Send an E-mail message to
- mail-server@rtfm.mit.edu with "help" and "index" in the body on
- separate lines for more information.
-
- An automatically generated HTML version of the PRG is accessible by
- WWW as part of the AI-related FAQs Mosaic page. The URL for this
- resource is
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/top.html
- The direct URL for the PRG is
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
-
- If you need to cite the FAQ for some reason, use the following format:
- Mark Kantrowitz, "Prolog Resource Guide", comp.lang.prolog, <month>, <year>,
- ftp.cs.cmu.edu:/user/ai/pubs/faqs/prolog/prg_?.faq, mkant+prg@cs.cmu.edu.
-
- Disclaimer:
-
- We have taken great care in making the information in this document as
- accurate as possible. However we are not responsible for any problems
- which might occur from using information supplied in this guide.
-
- ----------------------------------------------------------------
- Subject: [1-1] Sources of Information about Prolog
-
- The newsgroups comp.lang.prolog, comp.object.logic, and (to a lesser
- extent) comp.ai are a source of information and discussion about Prolog.
- See also sci.logic. The newsgroup comp.constraints is for information
- about constraint processing languages and related topics.
-
- A "Frequently Asked Questions" posting is posted to comp.lang.prolog
- twice a month by Jamie Andrews <jamie@cs.sfu.ca>. The Prolog FAQ and this
- Prolog Resource Guide are intended to complement one another.
-
- The draft ISO standard for Prolog is available by anonymous ftp from
- ai.uga.edu:/pub/prolog.standard/ [128.192.12.9]
- An unofficial summary of the draft ISO Prolog standard is available
- from the same location as isoprolog.tex or isoprolog.ps.Z. Send mail
- to Michael Covington <mcovingt@ai.uga.edu> for more information about
- his summary of the standard. For more information about the ISO Prolog
- standard itself, write to Roger Scowen, ISO/IEC JTC1 SC22 WG17 (Prolog)
- convener, DITC/93, National Physical Laboratory, TEDDINGTON, Middlesex
- TW11 0LW, UNITED KINGDOM, call +44-81-943-6956, fax +44-81-977-7091,
- or send email to rss@seg.npl.co.uk.
-
- Richard O'Keefe's 1984 Prolog standard draft is available by anonymous
- FTP from
- ftp.ecrc.de:/pub/eclipse/std/plstd.doc
-
- ----------------------------------------------------------------
- Subject: [1-2] Mailing Lists
-
- Prolog and Logic Programming:
- prolog@sushi.stanford.edu (general)
- prolog-hackers@sushi.stanford.edu (nitty gritty)
-
- All requests to be added to or deleted from this list, problems,
- questions, etc., should be sent to prolog-request@sushi.stanford.edu
-
- [The host sushi.stanford.edu no longer exists, as of 11/24/92.
- Does anybody know the new location of the mailing lists?]
-
- Lambda Prolog:
- lprolog@cis.upenn.edu
-
- To subscribe, send mail to lprolog-request@cis.upenn.edu.
-
- Electronic Journal of Functional and Logic Programming (EJFLP)
-
- EJFLP is a refereed journal that will be distributed for free via e-mail.
- The aim of EJFLP is to create a new medium for research investigating the
- integration of the functional, logic and constraint programming paradigms.
-
- For instructions on submitting a paper, send an empty mail message with
- Subject: Help
- to:
- submissions@ls5.informatik.uni-dortmund.de.
- You will receive an acknowledgment of your submission within a few hours.
-
- To subscribe to the journal, send an empty mail message to the following
- address:
- subscriptions@ls5.informatik.uni-dortmund.de
- You will receive an acknowledgment of your subscription within a few days.
-
- If there are any problems with the mail-server, send mail to
- ejflp.op@ls5.informatik.uni-dortmund.de.
-
- The editorial board is: Rita Loogen (RWTH Aachen), Herbert Kuchen (RWTH
- Aachen), Michael Hanus (MPI-Saarbruecken), Manuel MT Chakravarty (TU
- Berlin), Martin Koehler (Imperial College London), Yike Guo (Imperial
- College London), Mario Rodriguez-Artalejo (Univ. Madrid), Andy Krall
- (TU Wien), Andy Mueck (LMU Muenchen), Tetsuo Ida (Univ. Tsukuba,
- Japan), Hendrik C.R. Lock (IBM Heidelberg), Andreas Hallmann (Univ.
- Dortmund), Peter Padawitz (Univ. Dortmund), Christoph Brzoska (Univ.
- Karlsruhe).
-
- PDC-L:
- PDC-L@nic.surfnet.nl is a discussion list for PDC Prolog users.
-
- To subscribe, send mail to LISTSERV@nic.surfnet.nl with
- SUBSCRIBE PDC-L <your full name>
- in the message body.
-
- Theorem Provers:
- theorem-provers@ai.mit.edu
-
- This (unmoderated) list is intended for announcements of interest to
- people interested in automated theorem proving.
-
- To subscribe, send your email address to theorem-provers-request@ai.mit.edu.
-
- Type Theory:
- types@dcs.gla.ac.uk
-
- Moderated mailing list about type theory. Archived on
- theory.lcs.mit.edu:/pub/meyer/
-
- To subscribe, send mail to types-request@dcs.gla.ac.uk.
-
- Logic:
- logic@cs.cornell.edu
-
- Moderated mailing list about logic. Archived on
- theory.lcs.mit.edu:/pub/meyer/
-
- To subscribe, send mail to logic-request@cs.cornell.edu
-
- ALP (French Chapter):
- prog-logique@irisa.fr
-
- La liste de diffusion "prog-logique" est le support electronique de
- communication de la section francaise de l'ALP (Association for Logic
- Programming), groupe de travail AFCET. Elle complete la lettre du
- groupe publiee trimestriellement.
-
- Pour vous abonner ou vous desabonner, il faut envoyer un "mail" au
- serveur de listes, a l'adresse
- listserv@irisa.fr
- sans sujet ni signature, et dont le corps du message contient
- SUB prog-logique Prenom Nom
- Un acquittement est renvoye par messagerie. Pour desabonnement, ecrit
- SIGNOFF prog-logique
- Les requetes envoyees directement a la liste ne seront pas prises en
- compte.
-
- ----------------------------------------------------------------
- Subject: [1-3] Books and Magazine Articles
-
- A BiBTeX bibliography of Logic Programming Conferences is available by
- anonymous ftp from duck.dfki.uni-sb.de. See [1-5] below.
-
- A partially annotated bibliography of work on integrating
- object-oriented and logic programming is available by anonymous ftp
- from menaik.cs.ualberta.ca:/pub/oolog/ in PostScript and BibTeX
- formats. Written by Vladimir Alexiev <vladimir@cs.ualberta.ca>.
-
- The following books are regarded as popular and widely used. Also
- included are some books about WAM. This is not intended to be a complete
- Prolog bibliography.
-
- Prolog Programming:
-
- Covington, Michael A.; Nute, D.; and Vellino, A. "Prolog
- Programming in Depth", Scott, Foresman & Co., 1987. ISBN 0-521-40984-5
- (Out of print, but new edition coming soon. Copies of the 1987
- edition are still available from the University of Georgia
- Bookstore, at 706-542-7131.)
-
- Clocksin, W.F. and Mellish, C.S: "Programming in Prolog", 3rd Ed.
- Springer Verlag, 1987. 281 pages, ISBN 0-387-17539-3 ($29).
- [Basic introduction to Prolog.]
-
- Coelho, H., and Cotta, J.C., "Prolog by Example", Springer Verlag,
- 1988. 381 pages, ISBN 0-387-18313-2 ($39.50).
-
- Cooke, Daniel E., "Logic: The Basis for Understanding Prolog",
- Ablex, Norwood, NJ, 1994. 224 pages, ISBN 1-56750-028-5 ($27.50).
- [Intro to Prolog with a review of the basic ideas underlying the language.]
-
- Conlon, Tom: "Programming in Parlog". Addison-Wesley, 1989,
- ISBN 0-201-17450-2.
-
- Dawe, C.M. and M.S. Dawe, "Prolog for Computer Science", Springer
- Verlag, 1994. 190 pages, ISBN 0-387-19811-3 paper ($35). [Intro to
- computer science using Prolog.]
-
- Dodd, Anthony, "Prolog: A logical approach", Oxford University
- Press, New York, 1990, 556 pages. ISBN 0-198-53822-7 (cloth), $52.50;
- ISBN 0-198-53821-9 (paperback), $26.00.
-
- Kluzniak and Szpakowicz: "Prolog for Programmers", Academic Press 1985
-
- G. L. Lazarev, "Why Prolog? Justifying Logic Programming for Practical
- Applications", Prentice Hall, 1989. [Software engineering bent.
- Emphasizes advantages of declarative programming.]
-
- Le, Tu Van, "Techniques of Prolog programming, with implementation
- of logical negation and quantified goals", John Wiley, New York, 1993.
- ISBN: 0-471-57175-X (American edition), 0-471-59970-O (International
- edition). LnProlog, a Prolog interpreter that supports negative
- finding queries and quantified queries is available together with
- the book.
-
- Saint-Dizier, P., "An Introduction to Programming in Prolog",
- Springer Verlag, 1990. 184 pages, ISBN 0-387-97144-0 paper ($25).
- [Tutorial introduction, with simple examples of AI programs and games.]
-
- Leon Sterling, editor, "The Practice of Prolog", MIT Press, 1990.
- 342 pages, ISBN 0-262-19301-9, $39.95.
-
- Advanced Prolog Programming:
-
- O'Keefe, Richard A., "The Craft of PROLOG", MIT Press, 1990, 410 pages.
- ISBN 0-262-15039-5, $42.50.
-
- Peter Ross, "Advanced Prolog: Techniques and Examples",
- Addison-Wesley, 1989, ISBN 0-201-17527-4.
-
- Leon Sterling and Ehud Shapiro, "The Art of Prolog: Advanced
- Programming Techniques", 2nd Edition, MIT Press, 1994. 688 pages,
- ISBN 0-262-19338-8 ($49.95).
- [Source code for the book is available in ftp.cwru.edu:/ArtOfProlog/.
- There is a subdirectory for each chapter of the book containing the
- text of the programs in that chapter.]
-
- AI and Prolog:
-
- Yoav Shoham, "Artificial Intelligence Techniques in Prolog", Morgan
- Kaufmann Publishers, 1993, 400 pages. ISBN 1-55860-167-8 (paper) $39.95.
- ISBN 1-55860-319-0 (cloth) $49.95. [Topics include search, backward
- chaining, data-driven methods, truth maintenance, constraint
- satisfaction, reasoning with uncertainty, planning, temporal
- reasoning, machine learning, and natural language processing. Prolog
- source for all the programs in the book is available by anonymous ftp
- from unix.sri.com:/pub/shoham/]
-
- Bratko, Ivan, "Programming in Prolog for Artificial Intelligence",
- 2nd Edition, Addison-Wesley, 1990. [Good introduction to Prolog and AI.
- A bit large, though, for an Intro to Prolog course. Includes
- discussion of the 8-queens problem.]
-
- Dennis Merritt, "Building Expert Systems in Prolog", Springer-Verlag, 1989.
- 358 pages, ISBN 0-387-97016-9 hardcover ($52).
- Explains how to build various expert system shells in Prolog, including
- forward/backward chaining, FOOPS, rete-network, frames, solving
- Rubik's cube and more. Includes complete source code listings.
- (Source code from the book is also sold on disk by Amzi! Inc.)
-
- Dennis Merritt: "Adventure in Prolog", Springer-Verlag, 1990.
- 186 papers, ISBN 0-387-97315-X hardcover ($38).
- Teaches Prolog by leading the reader through the construction of an
- adventure game. The exercises lead the reader through three other
- programs: an intelligent database, an expert system and an order-entry
- program. While most texts teach Prolog with fragments of interesting code,
- this book takes a more pragmatic (as opposed to theoretical approach) and
- shows the reader how to assemble complete Prolog programs.
-
- Gazdar, G. and Mellish, C., "Natural Language Processing in Prolog:
- An Introduction to Computational Linguistics", Addison-Wesley,
- Reading, Massachusetts, 1989. (There are three different editions
- of the book, one for Lisp, one for Prolog, and one for Pop-11.)
-
- Fernando C.N. Pereira and Stuart M. Shieber, "Prolog and
- Natural-Language Analysis", CSLI Lecture Notes Number 10, Stanford,
- CA, 1987. 286 pages, ISBN 0-937073-18-0.
-
- Michael A. Covington, "Natural Language Processing for Prolog
- Programmers", Prentice-Hall, Englewood Cliffs, NJ, 1994. ISBN
- 0-13-629213-5.
-
- Harvey Abramson and Veronica Dahl, "Logic Grammars", Springer-Verlag,
- New York, 1989, 234 pages, ISBN 0-387-96961-6.
-
- Peter Flach, "Simply Logical: Intelligent Reasoning by Example",
- John Wiley & Sons, 1994, 256 pages. ISBN 0-471-94152-2 paper ($31.95).
- [Covers theoretical and practical aspects of Prolog programming as well
- as AI topics like knowledge representation, search, heuristics,
- abduction, default reasoning, and induction. Every technique is
- accompanied by a Prolog program that implements it. More information
- about the book is available from
- http://machtig.kub.nl:2080/Infolab/Peter/SimplyLogical.html
- or by email from Peter.Flach@kub.nl.]
-
- Prolog and Object-Oriented Programming:
-
- Chris Moss, "Prolog++ The Power of Object-Oriented and Logic
- Programming", Addison-Wesley, 1994. 312 pages, ISBN 0-201-56507-2. UK
- price is 21.95 pounds. [This paperback includes a special offer to
- obtain a Prolog++ compiler from LPA for Windows 3.1 or Macintosh. UK
- price is 29.95 pounds (plus 17.5 percent VAT) plus 5.00 pounds postage
- and handling. Elsewhere the cost is $49.95 plus $8 p&h.]
-
- Logic Programming:
-
- Hogger, Christopher J., "Introduction to Logic Programming",
- Academic Press, 1984. 278 pages. ISBN 0-12-352090-8 (alk. paper)
- ISBN 0-12-352092-4 (pbk.).
-
- Hogger, Christopher J., "Essentials of Logic Programming",
- Clarendon Press, Oxford, 1990. ISBN 0-19-853820-0. [Covers both
- foundations and more practical material, relating it all to Prolog.
- Takes a different approach than his first intro, dividing the book
- into many short "themes" instead of chapters, and including many
- excercises (with some answers).]
-
- Kowalski, R.A.: "Logic for Problem Solving", New York 1979, Elsevier Publ.
-
- LLoyd, John: "Foundations of Logic Programming", 2nd Edition,
- Springer-Verlag, 1988. (Intro to logic programming theory.)
-
- David Maier and David S. Warren: "Computing with Logic: Logic
- Programming with Prolog", Benjamin Cummings, Menlo Park, CA, 1989.
-
- Nilsson, Ulf and Maluszynski, Jan, "Logic, Programming and Prolog",
- John Wiley & Sons, 1990, ISBN 0-471-92625-6.
-
- Subrata Kumar DAS, "Deductive Databases and Logic Programming",
- Addison-Wesley Publishing Company, July 1992, 448 pages.
- ISBN 0-201-56897-7.
-
- Constraint Logic Programming and Constraint Satisfaction:
-
- Bennaceur, Hachemi and Gerard Plateau, "An exact algorithm for the
- constraint satisfaction problem: Application to logical inference",
- Information Processing Letters 48(3):151-158, November 19, 1993.
-
- Cohen, J., "Constraint Logic Programming Languages", Communciations
- of the ACM 33(7):52-68, 1992. [Good introduction to CLP and
- includes a historical overview.]
-
- Freeman-Benson, B.N., Maloney, J., and Borning, A., "An Incremental
- Constraint Solver", Communications of the ACM 33(1):54-63, 1990.
- [Includes a good reading list on the history and applications of
- constraints.]
-
- Freuder, Eugene C., and Richard J. Wallace, "Partial constraint
- satisfaction", Artificial Intelligence 58(1-3):21-70, December 1992.
-
- Van Hentenryck, Pascal, "Constraint Satisfaction in Logic Programming",
- MIT Press, Cambridge, MA, 1989, ISBN 0-262-08181-4.
-
- Jaffar, Joxan and Jean-Louis Lassez, "Constraint Logic Programming", in
- Proceedings of the 14th ACM Symposium on Principles of Programming
- Languages (POPL), Munich, Germany, pages 111-119, 1987.
- [A longer version appears in Joxan Jaffar and Jean-Louis Lassez,
- "Constraint Logic Programming", Technical Report 86-74, Monash
- University, Victoria, Australia, June 1986.]
-
- Kumar, Vipin, "Algorithms for Constraint-Satisfaction Problems: A
- Survey", AI Magazine 13(1):32-44, 1992.
-
- Mackworth, Alan K., "The logic of constraint satisfaction", Artificial
- Intelligence 58:3-20, 1992.
-
- Meseguer, P., "Constraint Satisfaction Problems: An Overview", AICOM
- 2(1):3-17, 1989.
-
- Steele, Guy L., "The Definition and Implementation of A Computer
- Programming Language Based on Constraints", PhD thesis, MIT, 1980.
-
- Tsang, Edward, "Foundations of Constraint Satisfaction", Academic
- Press, 1993. 421 pages, ISBN 0-12-701610-4 ($75). [Good overview.]
-
- Zhang, Ying and Alan K. Mackworth, "Constraint Programming in
- Constraint Nets", in Position Papers for the First Workshop on
- Principles and Practice of Constraint Programming, pages 303-312,
- Newport, RI, April 28-30, 1993.
-
- [See also the articles on Constraint Networks (pages 276-285) and
- Constraint Satisfaction (pages 285-293) in Shapiro's Encyclopedia
- of Artificial Intelligence.]
-
- Prolog Implementations and WAMs:
-
- Ait-Kaci, Hassan, "Warren's Abstract Machine: A Tutorial Reconstruction",
- MIT Press, Cambridge, MA. 1991.
- 125 pages, ISBN 0-262-51058-8 paper ($17.50), 0-262-01123-9 cloth.
-
- Patrice Boizumault, "The Implementation of Prolog", Princeton
- University Press, Princeton, NJ, 1993. Translated by Ara M.
- Djamboulian and Jamal Fattouh. ISBN 0-691-08757-1, 357 pages ($49.50).
- [The interpreters developed in the book are available by anonymous
- ftp from cnam.cnam.fr:/pub/Boizumault/. See [2-1].]
-
- Campbell, J.A. (ed): "Implementations of Prolog", John Wiley, 1984
-
- Peter M. Kogge, "The Architecture of Symbolic Computers",
- McGraw-Hill, 1991. ISBN 0-07-035596-7.
- Includes sections on memory management, the SECD and
- Warren Abstract Machines, and overviews of the various
- Lisp Machine architectures.
-
- David H. D. Warren: "An Abstract Prolog Instruction Set", Technical Note
- No 309, SRI International, Menlo Park, CA, 1983.
-
- David H. D. Warren, "Logic Programming and Compiler Writing," in
- Software-Practice and Experience 10(2):97-125, 1980.
-
- J. Cohen and T. Hickey, "Parsing and Compiling using Prolog",
- ACM Transactions on Programming Languages and Systems (TOPLAS),
- 9(2):125-163, 1987.
-
- J. Paakki, "Prolog in practical compiler writing", The Computer
- Journal 34(1):64-72, 1991. (But see Letters to the Editor, The
- Computer Journal 35(3):313, 1992.)
-
- Jonathan P. Bowen, "From Programs to Object Code using Logic and Logic
- Programming", in R. Giegerich and S. L. Graham, editors, Code
- Generation -- Concepts, Tools, Techniques, pages 173-192,
- Springer-Verlag, 1992.
-
- Jonathan P. Bowen, "From Programs to Object Code and back again using
- Logic Programming: Compilation and Decompilation", Journal of
- Software Maintenance: Research and Practice 5(4):205-234, December 1993.
-
- Parallel Prologs:
-
- Gregory, Steve: "Parallel Logic Programming in Parlog: The Language
- and Its Implementation", Addison-Wesley, 1987, ISBN 0-201-19241-1.
-
- Tick, E.: "Parallel Logic Programming". MIT Press, 1991
-
- Miscellaneous:
-
- Deville, Yves: "Logic Programming, Systematic Program Development",
- International Series in Logic Programming, Addison-Wesley, 1990, 338 pages.
- ISBN 0-201-17576-2.
-
- Wolfram, D.A., "The Clausal Theory of Types", Cambridge Tracts in
- Theoretical Computer Science {\bf 21}, Cambridge University Press,
- 1993.
-
- Magazine Articles:
-
- PCAI Magzine, September/October 1993. Article on exploring Prolog,
- showing the first steps to four applications -- an adventure game, an
- object-oriented shell, a tax program, and an animal guessing game.
- An excerpt of this article is available from
- ftp.cs.cmu.edu:/user/ai/lang/prolog/doc/intro/explore.doc
-
- BYTE Magazine, August 1987. 5 introductory articles on Prolog.
- Applications include logic grammars and simulating a microprocessor.
-
- Uwe Schreiweis: Beredte Logik, Konzepte der 'KI-Sprache" Prolog,
- (Eloquent Logic, Concepts of the AI language Prolog), iX Magazine,
- October 1992, pages 84-90.
-
- Uwe Schreiweis: Basis der Fuenf, Die Sprache Prolog in der Public
- Domain, (Base of the Five, Prolog in the Public Domain), iX Magazine,
- October 1992, pages 92-94.
-
- Uwe Schreiweis: Fuenfte Generation, Kommerzielle Prolog-Systeme,
- (Fifth Generation, Commercial Prolog Systems), iX Magazine, October
- 1992, pages 96-102.
-
- Klaus Bothe: Weniger Raum, Speicherplatzbezogener Prolog-Benchmark,
- (Less Space, A Space Oriented Prolog Benchmark), iX Magazine, October
- 1992, pages 106-7.
-
- Magazines Related to Prolog:
-
- Logic Programming Newsletter (4 issues/yr)
- Included with membership in the Association for Logic Programming
- ($20 regular, $10 students). For membership information, write to
- Cheryl Anderson (ALP), DoC-ICSTM, 180 Queens Gate, London SW7 2BZ,
- UK, phone +44-71-589-5111 x5011, fax +44-71-589-1552, or send email
- to alp@doc.ic.ac.uk. Contributions are welcome and should be sent
- to Andrew Davidson <ad@cs.mu.oz.au>. Selected articles from the
- newsletter are available from the WWW archive
- http://www.cs.mu.oz.au/~ad/alp/archive.html
-
- AI Communications (4 issues/yr)
- "The European Journal on Artificial Intelligence" ISSN 0921-7126,
- European Coordinating Committee for Artificial Intelligence.
-
- AI Expert (issued monthly) ISSN 0888-3785, Miller Freeman Publishers
- See a copy of the magazine for list of BBS's in NA. On CompuServe: GO
- AIEXPERT. Regularly reviews Prolog interpreters and compilers.
-
- Expert Systems (issued Feb, May, Aug and Nov) ISSN 0266-4720,
- Learned Information (Europe) Ltd. Subscription: GBP 85 or USD 110
-
- IEEE Expert (issued bimonthly) ISSN 0885-9000, IEEE Computer Society
-
- The Journal of Logic Programming (issued bimonthly), (North-Holland),
- Elsevier Publishing Company, ISSN 0743-1066
-
- New Generation Computing, Springer-Verlag. (LOTS of Prolog in it.)
-
- ----------------------------------------------------------------
- Subject: [1-4] Prolog and Logic Programming Associations and Journals
-
- ASSOCIATION FOR LOGIC PROGRAMMING (ALP)
- Members receive the ALP Newsletter.
-
- For information on membership, contact
-
- Cheryl Anderson
- ALP Administrative Secretary
- Department of Computing
- Imperial College
- 180 Queen's Gate
- London, SW7 2BZ, UK
-
- Email: csa@doc.ic.ac.uk
- Fax: +44 71 589 1552
- Phone: +44 71 589 5111 x5011
-
- Newsletter submissions should be sent to
-
- Andrew Davison
- Department of Computer Science
- University of Melbourne
- Parkville
- Melbourne, Victoria 3052
- AUSTRALIA
-
- Email: ad@cs.mu.oz.au
- Fax: +61 3 348 1184
- Phone: +61 3 344 7207 / 5230
- Telex: AA 35185
-
- ----------------------------------------------------------------
- Subject: [1-5] FTP Archives and Other Resources
-
- The following are achives that contain Prolog-related material, such as
- code, interpreters, articles, etc. Most of the archives are ftp sites.
- They are listed by domain.name and [IP Address]. To access them and
- download programs type at the prompt:
-
- ftp <site name> (or IP address)
- login: "anonymous",
- password: your own return email address,
- cd <directory>, ls to see files,
- set binary,
- get <filename> to transfer file to your system
- stop with quit or exit
-
- Deviations from this general scheme may occur but the above should
- work in most cases.
-
- CMU AI Repository, Prolog Section:
-
- The Prolog Section of the CMU Artificial Intelligence Repository
- (aka "The Prolog Repository") is accessible by anonymous ftp to
- ftp.cs.cmu.edu:/user/ai/lang/prolog/ [128.2.206.173]
- through the AFS directory
- /afs/cs.cmu.edu/project/ai-repository/ai/lang/prolog/
- or by WWW from the URL
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/repository.html
- and includes more than 110 megabytes of sources and other materials
- of interest to Prolog programmers, including all freely
- distributable implementations and many programs. The contents of the
- CMU AI Repository has been keyword indexed to provide convenient
- browsing of the contents.
-
- The repository has standardized on using 'tar' for producing
- archives of files and 'gzip' for compression.
-
- To search the keyword index by mail, send a message to:
- ai+query@cs.cmu.edu
- with one or more lines containing calls to the keys command, such as:
- keys prolog gui
- in the message body. Keywords may be regular expressions and are
- compared with the index in a case-insensitive conjunctive fashion.
- You'll get a response by return mail. Do not include anything else in
- the Subject line of the message or in the message body. For help on
- the query mail server, include:
- help
- instead.
-
- A Mosaic interface to the keyword searching program is in the
- works. We also plan to make the source code (including indexes) to
- this program available, as soon as it is stable.
-
- Most of the Prolog Section of the AI Repository appears on Prime Time
- Freeware for AI, Issue 1-1, a mixed-media book/CD-ROM publication. It
- includes two ISO-9660 CD-ROMs bound into a 224 page book and sells
- (list) for US$60 plus applicable sales tax and shipping and handling
- charges. Payable through Visa, Mastercard, postal money orders in US
- funds, and checks in US funds drawn on a US bank. For more
- information write to Prime Time Freeware, 370 Altair Way, Suite 150,
- Sunnyvale, CA 94086 USA, call 408-433-9662, 408-433-0727 (fax),
- or send email to ptf@cfcl.com.
-
- Contributions of software and other materials are always welcome but
- must be accompanied by an unambiguous copyright statement that grants
- permission for free use, copying, and distribution -- either a
- declaration by the author that the materials are in the public domain,
- that the materials are subject to the GNU General Public License (cite
- version), or that the materials are subject to copyright, but the
- copyright holder grants permission for free use, copying, and
- distribution. (We will tell you if the copying permissions are too
- restrictive for us to include the materials in the repository.)
- Inclusion of materials in the repository does not modify their
- copyright status in any way. Materials may be placed in:
- ftp.cs.cmu.edu:/user/ai/new/
- When you put anything in this directory, please send mail to
- ai+contrib@cs.cmu.edu
- giving us permission to distribute the files, and state whether
- this permission is just for the AI Repository, or also includes
- publication on the CD-ROM version (Prime Time Freeware for AI).
- We would also appreciate if you would include a 0.doc file for your
- package; see /user/ai/new/package.doc for a template. (If you don't
- have the time to write your own, we can write it for you based on
- the information in your package.)
-
- The Prolog Section of the AI Repository is maintained by Mark Kantrowitz
- <AI.Repository@cs.cmu.edu>.
-
- Artificial Intelligence Programs:
- ai.uga.edu:/pub/ [128.192.12.9]
-
- The University of Georgia AI FTP Library contains public domain
- Prologs, such as Open Prolog and ESL PD Prolog, PrEd (a small text
- editor for Prolog), and some miscellaneous prolog programs in
- ai.uga.edu:/pub/prolog/
- A copy of the programs from the book by Covington, Nute, and Vellino, (see
- the section on Books below), is in
- ai.uga.edu:/pub/prolog.book/
- and the draft ISO standard for prolog is in
- ai.uga.edu:/pub/prolog.standard/
- Some technical reports with accompanying code are in
- ai.uga.edu:/pub/ai.reports/
- Other materials of interest are in
- ai.uga.edu:/pub/natural.language/
- ai.uga.edu:/pub/natural.language.book/
- Maintained by Michael Covington <mcovingt@ai.uga.edu>.
-
- ALE:
- ALE (Attribute Logic Engine), a freeware system written in
- Prolog, integrates phrase structure parsing and constraint logic
- programming with typed feature structures as terms. Types are
- arranged in an inheritance hierarchy and specified for the features
- and value types for which they are appropriate. Grammars may also
- interleave unification steps with logic program goal calls (as can be
- done in DCGs), thus allowing parsing to be interleaved with other
- system components. While ALE was developed to handle HPSG grammars,
- it can also execute PATR-II grammars, DCG grammars, Prolog, Prolog-II,
- and LOGIN programs, etc. Grammars and programs are specified with a
- version of Rounds-Kasper Attribute Value Logic with macros and
- variables. ALE supports lexical rules and empty categories for
- grammars, using a bottom-up, all-paths dynamic chart parser. ALE
- supports last call optimization, negation by failure and cuts in
- definite clauses, which may be used independently or integrated into
- grammars. The system is distributed with several sample grammars,
- including a fairly comprehensive implementation of a head-driven
- phrase structure grammar for English. Version 2.0 of ALE is
- available free for research purposes by anonymous ftp from
- j.gp.cs.cmu.edu:/usr1/carp/ftp/
- as the files ale.*, or from the CMU AI Repository in
- ftp.cs.cmu.edu:/user/ai/lang/prolog/code/parsing/ale/
- For more information write to Bob Carpenter <carp@lcl.cmu.edu> or
- Gerald Penn <penn@lcl.cmu.edu>.
-
- ALP-UK Library:
- The best Prolog library currently is the one collected by the ALP-UK
- group. It is available to members at 30 pounds sterling for a Sun
- cartridge or 2 pounds/IBM DOS disk. (non-members maybe, how much?) It
- contains MBs of Prolog systems (including SB Prolog), libraries
- (including the Edinburgh library), benchmarks, grammars, theorem provers,
- object and graphics systems etc. For more information, write to ALP-UK
- Library, Sanjay Raina, Librarian, Dept. of Computer Science, University
- of Bristol, University Walk, Bristol BS8 1TR, UK, call +44 0272 303030
- x3304, or send email to raina@compsci.bristol.ac.uk.
-
- CASLOG
- CASLOG (Complexity Analysis System for LOGic) is an experimental
- semi-automatic complexity analysis system for logic programs. It can
- perform the worst-case analysis for complexity measures: argument size
- complexity, number of solutions complexity, and time complexity.
-
- CASLOG extends the techniques developed for analyzing imperative and
- functional languages to deal with nondeterminism and generation of
- multiple solutions via backtracking in logic languages. The analyses
- for different complexity measures are implemented in a unified
- framework and share several common features. First, the predicates in
- a program are processed in an order generated by a bottom-up
- topological sorting over the call graph of the program. Second, the
- complexity function for a predicate is derived from the complexity
- function of its clauses by using the information about the mutual
- exclusion relationships between its clauses. Third, the complexity
- function for a clause is inferred based on the data dependency
- relationships between its literals. Fourth, the complexity functions
- for recursive clauses are in the form of difference equations and are
- transformed into closed form functions using difference equation
- solving techniques. This unified framework can simplify proofs of
- correctness and the implementation of the algorithms.
-
- CASLOG is available by anonymous ftp from cs.arizona.edu:/caslog/. This
- is an alpha distribution, and includes CASLOG version 1.0, a
- preliminary user manual, a paper on CASLOG, and a set of examples.
- For more information, contact Nai-Wei Lin <naiwei@cs.arizona.edu>.
-
- Constraint Programming Paper Archive:
- Aarhus University, Denmark, has established an anonymous ftp archive
- for papers on "Constraint Programming" at ftp.daimi.aau.dk:/pub/CLP/.
- For further information, contact Brian H. Mayoh <brian@daimi.aau.dk>.
-
- CSP:
-
- Some constraint-related papers by a research group at the
- University of Washington are available by anonymous ftp from
- june.cs.washington.edu:/pub/constraints/papers/
- The papers from the 1994 Principles and Practice of Constraint
- Programming Workshop are available in
- june.cs.washington.edu:/pub/constraints/papers/ppcp94/
- There are also implementations of several constraint satisfaction
- algorithms and constraint-based systems, including the DeltaBlue and
- SkyBlue algorithms, the Multi-Garnet user interface toolkit, ThingLab
- II, and CoolDraw (a constraint-based drawing system), in
- subdirectories of
- june.cs.washington.edu:/pub/constraints/code/
- The ftp archive is also accessible via WWW:
- http://web.cs.city.ac.uk/archive/constraints/constraints.html
- All the source code is in the public domain. For more information,
- write to Alan Borning <borning@geoduck.cs.washington.edu>.
-
- C implementations of a number of constraint satisfaction algorithms
- are available by anonymous ftp from
- ftp.cs.ualberta.ca:/pub/ai/csp/
- Get the files README and csplib.tar.Z. The algorithms include
- variations on backtracking (backjumping, backmarking, chronological
- backtracking, etc.), local consistency preprocessing algorithms (e.g.,
- arc consistency), and random problem generators. For more information,
- write to Peter van Beek <vanbeek@cs.ualberta.ca>.
-
- Eden:
- Eden is a Poplog-based AI microworld developed by Simon Perkins,
- Jocelyn Paine and Edmund Chattoe of the Oxford University Artificial
- Intelligence Society. It is intended to serve as a testbed for
- learning and planning programs. Programs written in Pop-11, Prolog,
- Lisp, and ML control a "bug" that lives in a 2-dimensional world. Any
- kind of algorithm may be used to control the bug, including genetic
- algorithms, neural nets, and rule-based systems. Eden consists of a
- grid of cells, each of which can contain objects such as keys, doors,
- boulders and quicksand. Bug's objective is to find and eat a piece of
- food which the simulator has placed somewhere within this grid. To do
- this, Bug must negotiate its way towards the food while dealing
- intelligently with obstacles. Eden's laws of physics allow Bug to take
- one of several different actions when it encounters an object. The
- simulator then works out the consequences of the chosen action on Bug
- and on Eden, and displays these graphically in a Ved window. Bug's
- perceptions are updated to reflect the new state of the world, and the
- cycle repeats. Eden is available by anonymous ftp from the Imperial
- College archive in
- src.doc.ic.ac.uk:/packages/prolog-pd-software/ [146.169.2.10]
- as the file eden.tar.Z. (Note: This is really a link to the
- directory computing/programming/languages/prolog/pd-software/.)
- Eden includes PopBeast, a simple Prolog bug which can read and
- parse simple commands, extract their meaning, plan how to satisfy
- these commands, and then carry out the plans.
-
- Parts of the current Eden are coded in Pop-11, so porting it to
- Prologs other than Poplog will require some effort. Most of the
- recoding needed is in the grid-world simulator and the definition of
- objects. Send mail to Jocelyn Paine <popx@vax.oxford.ac.uk> if
- you're willing to try this.
-
- FW_Rules:
-
- FW_RULES is a Sicstus Prolog library providing a compiler for forward
- chaining rules. The implementation is based on a non-state saving
- technique coupled with an indexing mechanism on the working memory
- based on C bitwise operations to achieve efficiency. The library
- supports interoperability between the forward chaining language and
- the underlying Prolog engine. Terms in the working memory are
- represented as Prolog facts and can be accessed from Prolog to perform
- deduction. It is available by anonymous FTP from
- ftp.cs.unibo.it:/pub/gaspari/fw_rules/
- as the files README and fw_rules.tar.Z. For more information,
- please write to Mauro Gaspari <gaspari@cs.unibo.it>.
-
- HDRUG:
-
- Hdrug is an environment to develop logic grammars, parsers, and
- generators for natural languages. The package comes with a number of
- example grammars, including a Categorial Grammar, a Tree Adjoining
- Grammar, a Unification Grammar in the spirit of Head-driven Phrase
- Structure Grammar, an Extraposition Grammar, a Definite Clause
- Grammar, and a port of the HPSG grammar from Bob Carpenter's ALE
- system. Each of the grammars comes with a set of parsers, such as
- Earley-like chart parsers, left-corner parsers and head-driven
- parsers. Some grammars come with variants of the head-driven
- generator. The package allows easy comparison of different
- parsers/generators, extensive possibilities of compiling feature
- equations into Prolog terms, graphical (Tk), LaTeX and ordinary Prolog
- output of trees, feature structures and Prolog terms, and plotted
- graphs and tables of statistical information. Hdrug runs in Sicstus
- Prolog and requires ProTcl and Tcl/Tk. It is available by anonymous
- FTP from
- tyr.let.rug.nl:/pub/prolog-app/Hdrug/
- or by WWW from
- http://tyr.let.rug.nl/~vannoord/prolog-app/Hdrug/
- For more information, write to Gertjan van Noord <vannoord@let.rug.nl>.
-
- Logic Programming Bibliographies:
- duck.dfki.uni-sb.de:/pub/lp-proceedings/ [134.96.188.92]
-
- The ftp server supports tar'ing on the fly, so if you type "get
- bibtex.tar" you will get a tar'ed version of the "bibtex" directory.
-
- BibTeX entries for the proceedings of the following conferences
- are included: SLP84-87,91, NACLP89-90, ILPS91, ICLP82,84,86-91,93,
- JICLP92, LP88, RTA89,93, PLILP90-92, ALPUK91, ICOT92, ALP90,92,
- CADE90,92, CTRS90,92, LICS86-91, UNIF89, EPIA89,91,93, TACS91,
- TAPSOFT93, EAIA90, FGCS92, FAC, ILPS93, PEPM91,93
- and the following journals: JLP85-93, JAR91-93, JSC91-93, IANDC82-92.
-
- The bibliography is mirrored by the Universidade Nova de Lisboa.
- In addition, the bibliography can be searched using either WAIS or
- GOPHER. To search the lp-proceedings using WAIS, use the
- lp-proceedings.src
- wais source, available from the directory of servers. To search the
- lp-proceedings using GOPHER, point the client to gopher.fct.unl.pt,
- and follow the directories
- "Research/Bibliography/Logic Programming Proceedings".
- Searching should be easier than retrieving the entire package every
- time you want to locate a particular article.
-
- Send comments and bug reports to rscheidhauer@dfki.uni-sb.de.
-
- Machine Learning Algorithms Implemented in Prolog:
-
- In 1988 the Special Interest Group on Machine Learning of the German
- Society for Computer Science (GI e.V.) decided to establish a library
- of PROLOG implementations of Machine Learning algorithms. The library
- includes - amongst others - PROLOG implementations of Winston's arch,
- Becker's AQ-PROLOG, Fisher's COBWEB, Brazdil's generation of
- discriminations from derivation trees, Quinlan's ID3, FOIL, IDT,
- substitution matching, explanation based generalization, inverse
- resolution, and Mitchell's version spaces algorithm.
- All algorithms are written in Edinburgh Prolog syntax. Most of the
- algorithms are copyleft under the GNU General Public License.
- The programs are currently available via anonymous ftp-server from
- the GMD:
-
- ftp.gmd.de:/gmd/mlt/ML-Program-Library/ [129.26.8.84]
-
- They are also available by surface mail from Thomas Hoppe,
- Projektgruppe KIT, Technische Universitaet Berlin, Franklinstr. 28/29,
- 10629 Berlin, Germany. Files will be distributed via MS-DOS formated
- 3.5 inch floppy (double, high and extra-high density), which should
- be included with your request. You can also get them by sending an email
- message to Thomas Hoppe (see below).
-
- Send additional PROLOG implementations of Machine Learning
- Algorithms, complaints about them and detected bugs or problems
- to Thomas Hoppe, <hoppet@cs.tu-berlin.de>. Send suggestions and
- complaints about the ftp library to Werner Emde, Gesellschaft
- fuer Mathematik und Datenverarbeitung, Bonn, <emde@gmd.de>.
-
-
- Natural Language Processing in Prolog:
-
- The Prolog and DCG programs from Pereira and Shieber's book, "Prolog
- and Natural Language Analysis", are available by anonymous ftp from
- das.harvard.edu:/pub/shieber/pnla/. See the file README for the
- conditions under which the material is distributed. If you retrieve
- the files, please send an email message to the authors letting them
- know how you plan to use them. For further information, write to
- Fernando Pereira <pereira@research.att.com> or Stuart Shieber
- <shieber@das.harvard.edu>.
-
- Parser:
- A parser for standard Prolog text written in C is available by
- anonymous ftp from
- trappist.elis.rug.ac.be:/pub/prolog/
- It consists of only three modules (tokenizer, parser, and display
- routine) and an interface module to integrate it with an existing
- Prolog system. It is completely deterministic and about 10 times
- faster than O'Keefe's public domain parser written in Prolog.
- For more information, write to Koen De Bosschere <kdb@elis.rug.ac.be>.
-
- Partial Evaluation:
-
- Prolog code for the partial evaluator for the flowchart language
- described in Ch. 4 of "Partial Evaluation and Automatic Program
- Generation" by Jones, Gomard and Sestoft is available for anonymous
- ftp from
- ftp.diku.dk:/pub/diku/dists/jones-book/ch4_pl.tar.Z
- All three Futamura projections are implemented. The code has been
- tested under SWI Prolog 1.5 and 1.7 and should hopefully port to other
- prologs without too many problems. For more information, please
- contact Zerksis Umrigar <umrigar@cs.binghamton.edu>.
-
- Pleuk Grammar Development System:
-
- Pleuk is intended to be a shell for grammar development, in that many
- different grammatical formalisms can be embedded within it.
- Grammatical formalisms that currently work with Pleuk include CFG (a
- simple context-free grammar system), HPSG-PL (a system for developing
- HPSG-style grammars, produced at Simon Fraser University, Canada, by
- Fred Popowich, Sandi Kodric and Carl Vogel), Mike (a simple
- graph-based unification system, enhanced with additional operations
- for the treatment of free word order proposed by Mike Reape in various
- publications), SLE (a graph-based formalism enhanced with arbitrary
- relations in the manner of Johnson & Rosner and Doerre & Eisele.
- Delayed evaluation is used to compute infinite relations. This system
- has been used for the development of several HPSG-style grammars) and
- Term (a term-based unification grammar system, originally developed
- for the support of Unification Categorial Grammar of Zeevat, Klein and
- Calder). Sample grammars are provided for all of these formalisms.
- Work continues apace on other formalisms, including Bob Carpenter's
- Ale system for typed feature structures, and Veronica Dahl's Static
- Discontinuity Grammars.
-
- Pleuk requires SICStus prolog version 2.1#6 or later, plus a variety
- of ancillary programs available free of charge from many FTP servers.
- Pleuk is available via anonymous FTP from the University of Georgia
- Artificial Intelligence FTP library
- ai.uga.edu:/pub/natural.language/
- as the files pleuk.1.0.tar.Z, pleuk.PSmanuals.tar.Z, and pleuk.README.
- Pleuk will also be available shortly from the Natural Language
- Software Registry, German Research Institute for Artificial
- Intelligence (DKFI), Saarbruecken. For more information, send email
- to pleuk@cogsci.ed.ac.uk.
-
- Prolog Repository:
- Established by Jocelyn Paine of Experimental Psychology, Oxford
- University in 1987. The current catalogue (January 1991) contains
- 30 entries. For catalogue, queries and contributions contact POPX at:
- popx%vax.ox.ac.uk@oxmail.ox.ac.uk (internet) or
- popx@uk.ac.ox.vax (janet)
-
- FTP access is available through the Imperial College archive at
- src.doc.ic.ac.uk:/packages/prolog-pd-software/ [146.169.2.10]
- This is actually a link to the directory
- /computing/programming/languages/prolog/pd-software/
-
- To access it, cd to either of the above directories via
- anonymous ftp. The file README gives a brief summary of the
- contents of the directory and CATALOGUE gives a (long!)
- description of each entry. Entries include the Logic Programming
- Tutor from Paine's book, the DEC-10 public-domain library, the
- Linger natural-language corrector, a simple object-oriented
- add-on for Prolog, graph utilities, among other things.
-
- Files in the archive are also available on MS-DOS floppies for a
- nominal fee to cover the cost of floppies, postage, and packing.
-
- Prolog to SQL Compiler:
- The Prolog to SQL Compiler translates database access requests,
- which consist of a projection term and a database goal, to the
- appropriate SQL query. The compiler is written in standard Edinburgh
- Prolog and has been ported to a number of Prologs. The code posted to
- comp.lang.prolog works in ECRC's SEPIA Prolog, but should be easily
- ported to other Prologs. A detailed tech report on the implementation
- is available by email from draxler@cis.uni-muenchen.de (include
- your full postal address). The compiler is copyright, but may be used
- free of charge for non-commercial purposes and redistributed provided
- the copyright notice is retained intact.
-
- PSI:
- PSI is a handy system for the management and retrieval of your
- personal data, be it addresses, CD collections, or bibliographic
- references. It is intended for the non-commercial user. It may not be
- as full-fledged as some data-base systems, but has some features that
- you won't find in most commercial systems. Also, you may find it
- easier to set up and faster to use. PSI is useful for a broad range of
- data. Indexing with descriptors makes searching for the data you need
- fast, and the interface to other data-base formats (import and export)
- is quite powerful. PSI was written in LPA MacProlog and is a "genuine
- 'double clickable' Mac application". PSI runs on all Macs with System
- 6 or 7 in 1MB of main memory. As LPA MacProlog isn't yet 32-bit clean,
- PSI isn't either. Extensive documentation and some examples are
- included. PSI is available by anonymous ftp from
- sumex-aim.stanford.edu:/info-mac/app/ as the file psi-23.hqx. It
- was also available on a recent Nautilus CD-ROM and will be on the
- first Info-Mac CD-ROM.
-
- Queens and Knights:
- Queens and Knights are favorite problems for Prolog programmers.
- A collection of several implementations is available by anonymous
- ftp from sics.se:/pub/muse/queensANDknights.tar.Z.uue
- Write to Roland Karlsson <roland@sics.se> for more information.
-
- Rubik's Cube:
- Amzi! Inc., the creators of Cogent Prolog, have made sources to Cube Solver
- II available from their ftp site, ftp.std.com:/vendors/amzi/. It is
- also available from the Prolog Repository at CMU, in
- ftp.cs.cmu.edu:/user/ai/lang/prolog/code/fun/rubik/. This Prolog
- program solves Rubik's Cube. The sources include a simple scrolling
- interface that should work in any Edinburgh standard Prolog. Also
- included is a ready-made executable for 386 and 486 PCs; it was
- implemented using Cogent Prolog. For more information, write to Amzi!
- Inc. (formerly Amziod) <amzi@world.std.com>, 40 Samuel Prescott Dr.,
- Stow, MA 01775, Tel: 508-897-7332. Fax: 508-897-2784.
-
- SEL:
- SEL is a declarative set processing language. Its main features are
- subset and equational program clauses, pattern matching over sets,
- support for efficient iteration and point-wise/incremental computation
- over sets, the ability to define transitive closures through circular
- constraints, meta-programming and simple higher-order programming, and
- a modest user-interface including tracing. The language seems
- well-suited to a number of problems in graph theory, program analysis,
- and discrete mathematics. The SEL compiler is written in Quintus
- Prolog and the run-time system is written in C. It generates WAM-like
- code, extended to deal with set-matching, memoization, and the novel
- control structure of the language. SEL is available by anonymous FTP
- from ftp.cs.buffalo.edu:/users/bharat/SEL2/. The FTP release comes with a
- user manual, bibliography of papers (including .dvi files), several
- sample programs, and source code. For further information, write to
- Bharat Jayaraman <bharat@cs.buffalo.edu>.
-
- A public-domain WAM emulator, written in C++ by Herve Touati, is
- available by anonymous FTP from gatekeeper.dec.com:/pub/plan/prolog/ucb/.
-
- ----------------------------------------------------------------
- Subject: [1-6] Free Object-Oriented Systems for Prolog
-
- OL(P), Object Layer for Prolog, is an object-oriented extension to
- Prolog. It provides an object-oriented structuring and reuse
- mechanism for Prolog in a manner that preserves performance and
- semantics. The object-oriented layer is compiled into Prolog without
- introducing any side-effects. OL(P) takes the view of objects as
- collections of predicates (called methods). To Prolog, OL(P) 1.1 adds
- objects with methods, data encapsulation, instances, and multiple
- inheritance. Object methods can access Prolog predicates and vice
- versa. The OL(P) incremental compiler translates OL(P) programs to
- Prolog programs that don't need runtime interpretation (e.g., no
- search is needed for inheritance). OL(P) 1.1 comes with prepared
- installation for SICStus Prolog and QUINTUS Prolog (both on UNIX),
- documentation, simple built-in project management, some libraries,
- and example programs. The source is included, so you can port OL(P)
- to different platforms, different Prolog systems, and different
- logic programming languages. OL(P) is available by anonymous ftp
- from parcftp.xerox.com:/ftp/pub/ol/ [13.1.64.94]. Written by Markus
- P.J. Fromherz <fromherz@parc.xerox.com>.
-
- See Common ESP (CESP) in [2-1] and BeBOP in [2-3].
-
- ----------------------------------------------------------------
- Subject: [1-7] Commercial Object-Oriented Systems for Prolog
-
- LAP is an object-oriented system by Elsa. For more information, write
- to Elsa Software, La Grange Dame Rose, 6 ave du Marechal Juin, 92366
- Meudon-La-Foret Cedex, France, call +33 (1) 46 30 24 55, fax +33 (1)
- 46 30 55 26, or send email to elsa!lap@uunet.uu.net.
-
- SPIRAL is an object oriented system by CRIL for Sun3 and Sun4 under
- Unix. For more information, write to CRIL, Conception et Realisation,
- Industriel de Logiciel, 146 bd de Valmy 92707, Colombes Cedex, France,
- call +33 1 47 69 53 67, or fax +33 1 47 69 53 99.
-
- See also LPA Prolog ++ in [2-2].
-
- ----------------------------------------------------------------
- Subject: [1-8] The Prolog 1000 Database
-
- The Prolog 1000 is a database of real Prolog applications being
- assembled in conjunction with the Association for Logic Programming
- (ALP) and PVG. The aim is to demonstrate how Prolog is being used in
- the real world and it already contains over 500 programs with well
- over 2 million lines of code. The database is available for research
- use in SGML format from the Imperial College archive
- src.doc.ic.ac.uk:/packages/prolog-progs-db/prolog1000.v1.gz
- If you have or know about a program that might qualify for inclusion,
- send an email message to Al Roth (alroth@cix.compulink.co.uk) for an
- electronic entry form which only takes a few minutes to complete. Or
- write to Prolog 1000, PO Box 137, Blackpool, Lancashire, FY2 0XY,
- U.K., Fax: +44 253 53811 Telephone: +44 253 58081. (Floppy disks for
- PC or Mac in text form are also welcome, and paper entries may also be
- sent). Queries may also be addressed to: Chris Moss
- (cdsm@doc.ic.ac.uk), Leon Sterling (leon@alpha.ces.cwru.edu).
-
- ----------------------------------------------------------------
- Subject: [1-9] X-Windows Interfaces
-
- PI:
- PI is an interface between Prolog applications and the X Window System
- that aims to be independent from the Prolog engine, provided that it
- has a Quintus-style foreign function interface (such as SICStus, YAP).
- It is mostly written in Prolog and is divided in two libraries: (1)
- Edipo, a low-level interface to the Xlib functions, and (2) Ytoolkit,
- a high-level user interface toolkit that allows you to create and
- manage graphical objects, define new classes of objects, and handle
- user interaction. PI is available by anonymous ftp from
- ftp.ncc.up.pt:/pub/prolog/pi_1.2.tar.gz and includes documentation
- and some demos. Also see ytoolkit.tar.Z. PI has been tested in
- Quintus Prolog 3.1.1 and SICStus 2.1 #8. Send questions, comments,
- and bug reports to Ze' Paulo Leal, Universidade de Porto, Portugal,
- <zp@ncc.up.pt>.
-
- XWIP:
- ftp.x.org:/contrib/xwip.tar.Z (formerly export.lcs.mit.edu)
- ftp.uu.net:/X/contrib/xwip.tar.Z
-
- XWIP is an X Windows interface for PROLOG.
-
- XPCE:
- XPCE is an object-oriented X-window interface toolkit for symbolic
- programming languages (Prolog and Lisp), offering a high level of
- abstraction for communication with X11, Unix processes, Unix
- networking facilities (sockets) and Unix files. XPCE's built-in
- classes (about 150) are mostly written in C. The XPCE/Prolog
- interface allows the user to create and manipulate instances of these
- classes. The user can also create new XPCE classes from Prolog.
- XPCE's window related classes provide various styles of menus,
- primitive graphical objects, compound graphical objects and Emacs
- oriented programmable text manipulation windows. The distribution
- contains several demo programs, including a diagram drawing tool
- (PceDraw), an animation demo, an Epoch-like editor, a graphical
- interface to Unix ispell, and an online hyper-text manual for XPCE
- itself. A demo version of XPCE/SWI-Prolog for Linux may be obtained
- by anonymous ftp from swi.psy.uva.nl:/pub/xpce/linux/ [145.18.114.17].
- The non-demo versions (for SWI-Prolog, SICStus Prolog, Lucid Common
- Lisp and LispWorks) require filling out a license and paying a fee
- (see the file pub/xpce/INFO). To be added to the mailing list
- xpce@swi.psy.uva.nl send mail to xpce-request@swi.psy.uva.nl. Send
- bugs to xpce-bugs@swi.psy.uva.nl.
-
- ProWindows 3 is a commercial version of XPCE for Quintus Prolog.
- For further information, write to Simon Heywood, AI International Ltd,
- The Chapel, Park View House, 1 Park View Road, Berkhamsted, Herts,
- HP4 3EY, phone +44-(0)442-876722 (Sales Hotline +44 (0)442 876448),
- fax +44-(0)442-877997, or send email to sheywood@aiil.co.uk.
-
- ProTcl:
-
- ProTcl (pronounced pro-tickle) is a Prolog interface to Tcl/Tk. It has
- a very simple and lightweight interface, which allows one to evaluate
- Tcl expressions from Prolog. It defines the tcl_eval/1,2 predicate
- which passes the Tcl expressions to the Tcl interpreter. It has been
- tested on ECLiPSe and SICStus, on a Sparc 10. ProTcl is available
- by anonymous ftp from
- ftp.ecrc.de:/pub/eclipse/progs/protcl/
- The ProTCL home page is
- http://www.ecrc.de/eclipse/html/protcl.html
- Send comments and suggestions to Micha Meier <micha@ecrc.de>.
-
- ----------------------------------------------------------------
- Subject: [1-10] Is there a straight-forward way of compiling Prolog to C?
-
- Two methods of compiling Prolog to C have been reported in the
- literature:
- - WAM-based approaches
- - Continuation-based approaches
-
- The WAM-based approach compiles Prolog programs into a sequence of C
- function or macro calls to WAM instructions. A brief description of
- this method and some results are given in the paper:
-
- Michael R. Levy and R. Nigel Horspool, "Translating Prolog to C: a
- WAM-based Approach", in Proceedings of the Second Compulog Network
- Area Meeting on Programming Languages, and the Workshop on Logic
- Languages in Pisa, May 1993. (Available by anonymous ftp from
- csr.uvic.ca:/pub/mlevy/.)
-
- The best tutorial for writing a WAM-based compiler or WAM emulator is
- Hassan Ait-Kaci's book, "Warren's Abstract Machine: A Tutorial
- Reconstruction" (see [1-3] above).
-
- A "quick-and-dirty" method is to implement the WAM functions as described
- in Ait-Kaci's tutorial, to label each call with a C case label, and then throw
- a giant switch(P) statement around the entire sequence of calls, where P
- is the WAM program counter. On return from any instruction that modifies
- P, a "goto Start" must be inserted. (This method was posted by Rob
- Scott, <rbs@aisb.ed.ac.uk>, based on the JANUS papers by Saraswat.)
-
- This strategy will work, but does not allow you to modularize your
- prolog program. Predicates in prolog seem to generate 8 to 15 WAM
- instructions per clause, so (assuming very roughly a clause per
- line)you might expect your 1,000 line program to expand to a switch
- statement containing up to 15,000 lines. Some C compilers can't handle
- such a big switch statement.
-
- Levy and Horspool solve this problem by compiling each Prolog
- predicate to a seperate C function. A dispatch loop mechanism is used
- to call the C functions. C switch statements are used only inside the
- functions. A predicate that calls another predicate sets P to contain
- the address of the C function that implements the called predicate,
- (and sets another register called W in their scheme) and then returns
- to the dispatcher instead of calling the predicate. This bypasses the
- C run-time stack. This lets one exploit WAM optimizations (like LCO)
- and yet retain the ability to create many modules. Their system
- performs well when compared with byte-code compilers, but translated
- code runs slower than code produced by native code compilers. On the
- other hand, it outputs portable ANSI C that can run on any machine
- with a C compiler.
-
- Other approaches to translating to C use continuations. The idea here
- is to translate every Prolog predicate to a C function that has
- an additional argument, namely a continuation function. If the function
- fails, it simply returns, but if it succeeds, it executes the continuation.
- When the function regains control from the continuation, it can then try
- to generate a new solution. Here are two references
- that describe systems built using continuations:
-
- J. L. Weiner and S. Ramakrishnan, "A Piggy-Back Compiler for Prolog",
- in Proceedings of SIGPLAN T88 Conference on Programming Language
- Design and Implementation, Atlanta, Georgia, 1988, pages 288-296.
-
- J. L. Boyd and G. M. Karam, "Prolog in C", Carleton University,
- Ottawa, 1988.
-
- Oliver Ridoux <Olivier.Ridoux@irisa.fr> reports that a
- continuation-based approach works well when used to compile
- LambdaProlog. His scheme translates every predicate into a function
- that uses and modifies the success and failure continuations, with
- recursion in the predicate becoming iteration in the continuation
- passing mechanism. Inside the function one uses whichever intermediate
- machine one fancies. Clauses within the function can be either the
- branches of a switch statement or simply labelled when using a C
- system that can store labels. This approach can still generate
- monstrous C programs that blow up the C compiler, but the C programs
- aren't as large as those generated by a one module to a function
- scheme. Approaches that replace recursion in a predicate with
- recursion in a function tend to overload the C stack and lead to
- sloppy memory management. Two technical reports describing Ridoux's
- approach are available by anonymous ftp from
- ftp.irisa.fr:/
- as pm/*.ps.Z and mailv06/*.ps.Z.
-
- Michael Covington <mcovingt@ai.uga.edu> points out that a very simple
- approach is to write a Prolog interpreter in C, then store the Prolog
- program in that program's data! This will, of course, execute slowly.
- One might imagine all sorts of other schemes. For example, a query
- could be treated as a stack of "suspensions" (with the left-most goal
- on top). The top suspension is executed by selecting the appropriate
- clause (possibly using indexing), and then, if necessary, pushing new
- suspensions on the stack (the body of the clause whose head unified
- with the current suspension).
-
- Another question to ask is this: Is there any reason why you should want to
- convert Prolog to C at all? George Saab of Quintus Corp. pointed out that,
- with Quintus Prolog, you can create a standard .o file from a Prolog file,
- which can then be linked with your other .o files to create an executable.
- What's more, your Prolog code can be called from C code and vice versa.
-
- On ther hand, the advantage of distributing "Prolog objects" as C rather than
- .o files is portability.
-
- M. Gaspari and G. Attardi describe an approach to translating Prolog to C
- based on the provision of a common runtime architecture. This is
- described in
-
- G. Attardi and M. Gaspari, "Multilanguage Interoperability", in
- Proceedings of The 3rd International Symposium, PLILP 91,
- Springer Verlag, LNCS #528, 1991.
-
- [Note: Thanks to Michael Levy, Department of Computer Science,
- University of Victoria, <mlevy@csr.uvic.ca>, for writing this section.]
-
- ----------------------------------------------------------------
- Subject: [1-11] WAM emulators and tracers
-
- Johan Bevemyr's Luther-based WAM-tracer is available by anonymous ftp
- from Uppsala University in Sweden. It includes a simple compiler from
- Prolog to WAM code and a low-level WAM code tracer written in
- emacs-lisp. The tracer splits the screen into regions to show
- data-areas, registers, and so on. You can then step through running
- the code. The tracer is available by anonymous ftp from
- ftp.csd.uu.se:/pub/WAM-tracer/luther.tar.Z
- Documentation on the tracer is included in the distribution. The
- emulator is in the /pub/WAM-emulator/ directory (and runs in SICStus
- Prolog). For more information, contact Johan Bevemyr
- <bevemyr@csd.uu.se> or <bevemyr@sics.se>.
-
- ----------------------------------------------------------------
- Subject: [1-12] What is the Basic Andorra Model and AKL?
-
- The Basic Andorra Model is a way to execute definite clause programs
- that allows dependent and-parallelism to be exploited transparently.
- It also supports nice programming techniques for search programs. The
- idea is to first reduce all goals that match at most one clause. When
- no such goal exists, any goal (e.g., the left-most) may be chosen.
- The BAM was proposed by David H. D. Warren, and his group at Bristol
- has developed an AND-OR parallel implementation called Andorra-I,
- which also supports full Prolog. See, for example,
-
- Seif Haridi and Per Brand, "Andorra Prolog, an integration of Prolog
- and committed choice languages", in Proceedings of the FGCS 1988,
- ICOT, Tokyo, 1988.
-
- Vitor Santos Costa, David H. D. Warren, and Rong Yang, "Two papers on
- the Andorra-I engine and preprocessor", in Proceedings of the 8th
- ICLP. MIT Press, 1991.
-
- Steve Gregory and Rong Yang, "Parallel Constraint Solving in
- Andorra-I", in Proceedings of FGCS'92. ICOT, Tokyo, 1992.
-
- AKL (Andorra Kernel Language) is a concurrent constraint programming
- language that supports both Prolog-style programming and committed
- choice programming. Its control of don't-know nondeterminism is based
- on the Andorra model, which has been generalised to also deal with
- nondeterminism encapsulated in guards and aggregates (such as bagof)
- in a concurrent setting. See, for example,
-
- Sverker Janson and Seif Haridi, "Programming Paradigms of the Andorra
- Kernel Language", in Proceedings of ILPS'91. MIT Press, 1991.
-
- Torkel Franzen, "Logical Aspects of the Andorra Kernel Language", SICS
- Research Report R91:12, Swedish Institute of Computer Science, 1991.
-
- Torkel Franzen, Seif Haridi, and Sverker Janson, "An Overview of the
- Andorra Kernel Language", In LNAI (LNCS) 596, Springer-Verlag, 1992.
-
- Sverker Janson, Johan Montelius, and Seif Haridi, "Ports for Objects
- in Concurrent Logic Programs", in Research Directions in Concurrent
- Object-Oriented Programming, MIT Press, 1993 (forthcoming).
-
- The above papers on AKL are available by anonymous ftp from
- sics.se:/pub/ccp/papers/
- An (as yet non-released) prototype implementation of AKL is available
- for research purposes (contact sverker@sics.se).
-
- ----------------------------------------------------------------
- Subject: [1-13] What is Constraint Logic Programming?
-
- Constraint Logic Programming (CLP) augments Prolog by adding
- constraints to the clauses. The CLP implementation solves goals in the
- same manner as Prolog, but also merges the constraints associated with
- each rule. If the merge succeeds, the successful goal and the
- corresponding constraints are returned. If, however, the constraints
- are mutually exclusive, the solution fails.
-
- ----------------------------------------------------------------
- Subject: [1-14] How do you write portable programs in Prolog?
-
- The de-facto standard syntax for Prolog is known as the Edinburgh
- standard. It is based on the syntax of DEC-10 Prolog, an early Prolog
- implementation developed at the University of Edinburgh.
- See question [1-1] for information on the draft ISO standard for
- Prolog.
-
- Unfortunately, not every Prolog implementation is Edinburgh compatible.
- There also isn't any notion of read-conditionalization, like #+ and #-
- *features* in Common Lisp.
-
- One option is to use the C preprocessor on Prolog code before loading
- it into Prolog. Or you could use term-expansion to roll your own
- conditional compilation system. Term expanding a clause to []
- effectively discards it.
-
- Another possibility is to conditionalize the execution instead of the
- compilation. The user would have to uncomment a line like one of the
- following,
- % this_is(quintus).
- % this_is(sicstus).
- and the code would have to test for the proper literal
- a :- this_is(quintus), blah, blah, blah.
- a :- this_is(sicstus), blah, blah, blah.
- at a slight cost in efficiency. (If you first feed the program through
- a general partial evaluator, you'll get an equivalent program without
- the inefficiency. Partial evaluation is in some sense a more powerful
- and semantically cleaner form of source preprocessing. Given
- <head> :- <condition>, <rest of body>.
- If <condition> is always false, we can safely drop the clause. If
- <condition> is always true, we can drop it from any clauses that
- include it.)
-
- Another possibility is Richard O'Keefe's environment package for
- Prolog. It was posted to comp.lang.prolog on 1-SEP-94; a copy can be
- found in
- ftp.cs.cmu.edu:/user/ai/lang/prolog/code/ext/env/env.pl
-
- ----------------------------------------------------------------
- Subject: [1-15] World-Wide Web (WWW) Resources
-
- The World Wide Web (WWW) is a hypermedia document that spans the
- Internet. It uses the http (HyperText Transfer Protocol) for the
- light-weight exchange of files over the Internet. NCSA Mosaic is a
- World Wide Web browser developed at the National Center for
- Supercomputing Applications (NCSA).
-
- Mosaic's popularity derives, in part, from its ability to communicate
- using more traditional Internet protocols like FTP, Gopher, WAIS, and
- NNTP, in addition to http. Mosaic can display text, hypertext links,
- and inlined graphics directly. When Mosaic encounters a file type it
- can't handle internally, such as Postscript documents, mpeg movies,
- sound files, and JPEG images, it uses an external viewer (or player)
- like Ghostscript to handle the file. Mosaic also includes facilities
- for exploring the Internet. In other words, Mosaic is an multimedia
- interface to the Internet.
-
- The hypertext documents viewed with Mosaic are written in HTML
- (HyperText Markup Language), which is a subset of SGML (Standard
- Generalized Markup Language). All that is needed is just a few more
- improvements, such as the ability to format tables and mathematics,
- and a WYSIWYG editor, for HTML to greatly facilitate electronic
- journals and other publications.
-
- NCSA Mosaic for the X Window System is available by anonymous ftp from
- ftp.ncsa.uiuc.edu:/Mosaic/
- as source code and binaries for Sun, SGI, IBM RS/6000, DEC Alpha OSF/1, DEC
- Ultrix, and HP-UX. Questions about NCSA Mosaic should be directed to
- mosaic-x@ncsa.uiuc.edu (X-Windows version), mosaic-mac@ncsa.uiuc.edu
- (Macintosh), and mosaic-win@ncsa.uiuc.edu (Microsoft Windows).
-
- An automatically generated HTML version of the PRG is accessible by
- WWW as part of the AI-related FAQs Mosaic page. The URL for this
- resource is
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/top.html
- The direct URL for the PRG is
- http://www.cs.cmu.edu:8001/Web/Groups/AI/html/faqs/lang/prolog/prg/top.html
-
- The remainder of this section lists WWW resources of interest to Prolog
- and logic programming researchers, students, and practitioners.
-
- Constraints:
-
- The newsgroup comp.constraints has an ftp archive and WWW home page:
- ftp.cs.city.ac.uk:/pub/constraints
- http://web.cs.city.ac.uk/archive/constraints/constraints.html
-
- Logic Programming:
-
- http://www.comlab.ox.ac.uk/archive/logic-prog.html
- Jonathan Bowen <Jonathan.Bowen@comlab.ox.ac.uk>
-
- http://www.watson.ibm.com/watson/logicpgm/
- [Logic Programming at IBM Research]
- Peter Reintjes <reintjes@watson.ibm.com>
-
- http://ps-www.dfki.uni-sb.de/~vanroy/impltalk.html
- ["Issues in Implementing Logic Languages" -- overview of
- state-of-art in Prolog implementation.]
- Peter Van Roy <vanroy@dfki.uni-sb.de>
-
- Abstract Interpretation for LP Bibliography:
-
- http://www.labri.u-bordeaux.fr/~corsini/Public/Reports/abint-biblio.ps
- 200 entries so far.
- Marc-Michel Corsini <corsini@labri.u-bordeaux.fr>
-
- ----------------------------------------------------------------
- Subject: [1-16] Prolog Job Postings
-
- The PROLOG-JOBS mailing list exists to help programmers find Prolog
- programming positions, and to help companies with Prolog programming
- positions find capable Prolog programmers. (Prolog here means Prolog-like
- languages, including logic programming languages.)
-
- Material appropriate for the list includes Prolog job announcements and
- should be sent to ai+prolog-jobs@cs.cmu.edu. Resumes should NOT be sent to
- the list.
-
- [Note: The 'ai+' part of the mailing list name is used for directing
- submissions to the appropriate mail-server. The list is NOT restricted
- to AI-related Prolog jobs -- all Prolog job announcements are welcome.]
-
- As a matter of policy, the contents of this mailing list is
- considered confidential and will not be disclosed to anybody.
-
- To subscribe, send a message to ai+query@cs.cmu.edu with
- subscribe prolog-jobs <First Name> <Last Name>, <Affiliation/Organization>
- in the message body.
-
- (If your mailer objects to the "+", send subscription requests to
- "ai+query"@cs.cmu.edu, job announcements to "ai+prolog-jobs"@cs.cmu.edu,
- etc.)
-
- For help on using the query server, send mail to ai+query@cs.cmu.edu with
- help
- in the message body.
-
- If you have any other questions, please send them to ai+@cs.cmu.edu
-
- ----------------------------------------------------------------
- Subject: [1-17] Is Prolog really used in Windows NT?
-
- Yes.
-
- For more information, see
-
- Dennis Merritt, "Extending C with Prolog", Dr Dobb's Journal,
- August 1994, pages 78-82 and 102, 104.
-
- D. Hovel, "Small Prolog and Windows NT Networking", Dr Dobb's Journal,
- August 1994, page 80.
-
- ----------------------------------------------------------------
- Subject: [1-A] Acknowledgements
-
- The original version of this guide (Version 0.6, Dec 11, 1991) was
- compiled by Dag Wahlberg, Uppsala University, Sweden
- <dagwag@csd.uu.se>, and published in the 5(1) issue of the ALP
- Newsletter (February 1992). Other people who helped with the
- compilation include Chris Moss <cdsm@doc.ic.ac.uk>, Mats Carlsson,
- SICS <matsc@sics.se>, Michael A. Covington <mcovingt@ai.uga.edu>,
- Jocelyn Paine <popx@vax.ox.ac.uk>, Per G. Bilse, PDC <pdev@pdc.dk>,
- David Cohen, BIM Systems Inc <dc@bim.com>, Mark Korsloot
- <mark@logic.et.tudelft.nl>, and David W. Talmage
- <talmage@luvthang.aquin.ori-cal.com>.
-
- Thanks also to Jamie Andrews <jamie@cs.sfu.ca>.
-
- ----------------------------------------------------------------
- ;;; *EOF*
-